# generated from XKB map ru include common map 0x419 exclam 0x02 shift at 0x03 shift quotedbl 0x03 shift altgr numbersign 0x04 shift dollar 0x05 shift asterisk 0x05 shift altgr percent 0x06 shift colon 0x06 shift altgr asciicircum 0x07 shift comma 0x07 shift altgr ampersand 0x08 shift period 0x08 shift altgr asterisk 0x09 shift semicolon 0x09 shift altgr parenleft 0x0a shift parenright 0x0b shift minus 0x0c underscore 0x0c shift equal 0x0d plus 0x0d shift Cyrillic_shorti 0x10 altgr Cyrillic_SHORTI 0x10 shift altgr Cyrillic_tse 0x11 altgr Cyrillic_TSE 0x11 shift altgr Cyrillic_u 0x12 altgr Cyrillic_U 0x12 shift altgr Cyrillic_ka 0x13 altgr Cyrillic_KA 0x13 shift altgr Cyrillic_ie 0x14 altgr Cyrillic_IE 0x14 shift altgr Cyrillic_en 0x15 altgr Cyrillic_EN 0x15 shift altgr Cyrillic_ghe 0x16 altgr Cyrillic_GHE 0x16 shift altgr Cyrillic_sha 0x17 altgr Cyrillic_SHA 0x17 shift altgr Cyrillic_shcha 0x18 altgr Cyrillic_SHCHA 0x18 shift altgr Cyrillic_ze 0x19 altgr Cyrillic_ZE 0x19 shift altgr bracketleft 0x1a braceleft 0x1a shift Cyrillic_ha 0x1a altgr Cyrillic_HA 0x1a shift altgr bracketright 0x1b braceright 0x1b shift Cyrillic_hardsign 0x1b altgr Cyrillic_HARDSIGN 0x1b shift altgr Cyrillic_ef 0x1e altgr Cyrillic_EF 0x1e shift altgr Cyrillic_yeru 0x1f altgr Cyrillic_YERU 0x1f shift altgr Cyrillic_ve 0x20 altgr Cyrillic_VE 0x20 shift altgr Cyrillic_a 0x21 altgr Cyrillic_A 0x21 shift altgr Cyrillic_pe 0x22 altgr Cyrillic_PE 0x22 shift altgr Cyrillic_er 0x23 altgr Cyrillic_ER 0x23 shift altgr Cyrillic_o 0x24 altgr Cyrillic_O 0x24 shift altgr Cyrillic_el 0x25 altgr Cyrillic_EL 0x25 shift altgr Cyrillic_de 0x26 altgr Cyrillic_DE 0x26 shift altgr semicolon 0x27 colon 0x27 shift Cyrillic_zhe 0x27 altgr Cyrillic_ZHE 0x27 shift altgr apostrophe 0x28 quotedbl 0x28 shift Cyrillic_e 0x28 altgr Cyrillic_E 0x28 shift altgr grave 0x29 asciitilde 0x29 shift Cyrillic_io 0x29 altgr Cyrillic_IO 0x29 shift altgr backslash 0x2b bar 0x2b shift Cyrillic_ya 0x2c altgr Cyrillic_YA 0x2c shift altgr Cyrillic_che 0x2d altgr Cyrillic_CHE 0x2d shift altgr Cyrillic_es 0x2e altgr Cyrillic_ES 0x2e shift altgr Cyrillic_em 0x2f altgr Cyrillic_EM 0x2f shift altgr Cyrillic_i 0x30 altgr Cyrillic_I 0x30 shift altgr Cyrillic_te 0x31 altgr Cyrillic_TE 0x31 shift altgr Cyrillic_softsign 0x32 altgr Cyrillic_SOFTSIGN 0x32 shift altgr comma 0x33 less 0x33 shift Cyrillic_be 0x33 altgr Cyrillic_BE 0x33 shift altgr period 0x34 greater 0x34 shift Cyrillic_yu 0x34 altgr Cyrillic_YU 0x34 shift altgr slash 0x35 question 0x35 shift slash 0x56 altgr bar 0x56 shift altgr f='/cgit.cgi/avr/qmk/lufa/tree/?id=13c2d91d27cc00959b3214fab606a9a9c97bd007'>root/Projects/Webserver/Lib/HTTPServerApp.h
blob: 40475d874b4f63d2f59bc5f6690e2040328819bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
             LUFA Library
     Copyright (C) Dean Camera, 2015.

  dean [at] fourwalledcubicle [dot] com
           www.lufa-lib.org
*/

/*
  Copyright 2015  Dean Camera (dean [at] fourwalledcubicle [dot] com)

  Permission to use, copy, modify, distribute, and sell this
  software and its documentation for any purpose is hereby granted
  without fee, provided that the above copyright notice appear in
  all copies and that both that the copyright notice and this
  permission notice and warranty disclaimer appear in supporting
  documentation, and that the name of the author not be used in
  advertising or publicity pertaining to distribution of the
  software without specific, written prior permission.

  The author disclaims all warranties with regard to this
  software, including all implied warranties of merchantability
  and fitness.  In no event shall the author be liable for any
  special, indirect or consequential damages or any damages
  whatsoever resulting from loss of use, data or profits, whether
  in an action of contract, negligence or other tortious action,
  arising out of or in connection with the use or performance of
  this software.
*/

/** \file
 *
 *  Header file for HTTPServerApp.c.
 */

#ifndef _HTTPSERVER_APP_H_
#define _HTTPSERVER_APP_H_

	/* Includes: */
		#include <avr/pgmspace.h>
		#include <string.h>

		#include <LUFA/Version.h>

		#include "Config/AppConfig.h"

		#include <uip.h>
		#include <ff.h>

	/* Enums: */
		/** States for each HTTP connection to the webserver. */
		enum Webserver_States_t
		{
			WEBSERVER_STATE_OpenRequestedFile, /**< Currently opening requested file */
			WEBSERVER_STATE_SendResponseHeader, /**< Currently sending HTTP response headers to the client */
			WEBSERVER_STATE_SendData, /**< Currently sending HTTP page data to the client */
			WEBSERVER_STATE_Closing, /**< Ready to close the connection to the client */
			WEBSERVER_STATE_Closed, /**< Connection closed after all data sent */
		};

	/* Type Defines: */
		/** Type define for a MIME type handler. */
		typedef struct
		{
			char* Extension; /**< File extension (no leading '.' character) */
			char* MIMEType;  /**< Appropriate MIME type to send when the extension is encountered */
		} MIME_Type_t;

	/* Macros: */
		/** TCP listen port for incoming HTTP traffic. */
		#define HTTP_SERVER_PORT  80

	/* Function Prototypes: */
		void HTTPServerApp_Init(void);
		void HTTPServerApp_Callback(void);

		#if defined(INCLUDE_FROM_HTTPSERVERAPP_C)
			static void HTTPServerApp_OpenRequestedFile(void);
			static void HTTPServerApp_SendResponseHeader(void);
			static void HTTPServerApp_SendData(void);
		#endif

#endif