1 #pragma once
2 
3 #include "Common/Data/Collections/ConstMap.h"
4 #include <map>
5 
6 // TODO: Add any missing keys
7 static const std::map<int, int> KeyMapRawSDLtoNative = InitConstMap<int, int>
8 	(SDLK_UNKNOWN, NKCODE_UNKNOWN)
9 	(SDLK_p, NKCODE_P)
10 	(SDLK_o, NKCODE_O)
11 	(SDLK_i, NKCODE_I)
12 	(SDLK_u, NKCODE_U)
13 	(SDLK_y, NKCODE_Y)
14 	(SDLK_t, NKCODE_T)
15 	(SDLK_r, NKCODE_R)
16 	(SDLK_e, NKCODE_E)
17 	(SDLK_w, NKCODE_W)
18 	(SDLK_q, NKCODE_Q)
19 	(SDLK_l, NKCODE_L)
20 	(SDLK_k, NKCODE_K)
21 	(SDLK_j, NKCODE_J)
22 	(SDLK_h, NKCODE_H)
23 	(SDLK_g, NKCODE_G)
24 	(SDLK_f, NKCODE_F)
25 	(SDLK_d, NKCODE_D)
26 	(SDLK_s, NKCODE_S)
27 	(SDLK_a, NKCODE_A)
28 	(SDLK_m, NKCODE_M)
29 	(SDLK_n, NKCODE_N)
30 	(SDLK_b, NKCODE_B)
31 	(SDLK_v, NKCODE_V)
32 	(SDLK_c, NKCODE_C)
33 	(SDLK_x, NKCODE_X)
34 	(SDLK_z, NKCODE_Z)
35 	(SDLK_COMMA, NKCODE_COMMA)
36 	(SDLK_PERIOD, NKCODE_PERIOD)
37 	(SDLK_LALT, NKCODE_ALT_LEFT)
38 	(SDLK_RALT, NKCODE_ALT_RIGHT)
39 	(SDLK_LSHIFT, NKCODE_SHIFT_LEFT)
40 	(SDLK_RSHIFT, NKCODE_SHIFT_RIGHT)
41 	(SDLK_TAB, NKCODE_TAB)
42 	(SDLK_SPACE, NKCODE_SPACE)
43 	(SDLK_RETURN, NKCODE_ENTER)
44 	(SDLK_MINUS, NKCODE_MINUS)
45 	(SDLK_EQUALS, NKCODE_EQUALS)
46 	(SDLK_LEFTBRACKET, NKCODE_LEFT_BRACKET)
47 	(SDLK_RIGHTBRACKET, NKCODE_RIGHT_BRACKET)
48 	(SDLK_BACKSLASH, NKCODE_BACKSLASH)
49 	(SDLK_SEMICOLON, NKCODE_SEMICOLON)
50 	(SDLK_QUOTE, NKCODE_APOSTROPHE)
51 	(SDLK_SLASH, NKCODE_SLASH)
52 	(SDLK_AT, NKCODE_AT)
53 	(SDLK_PLUS, NKCODE_PLUS)
54 	(SDLK_PAGEUP, NKCODE_PAGE_UP)
55 	(SDLK_PAGEDOWN, NKCODE_PAGE_DOWN)
56 	(SDLK_ESCAPE, NKCODE_ESCAPE)
57 	(SDLK_BACKSPACE, NKCODE_DEL)
58 	(SDLK_DELETE, NKCODE_FORWARD_DEL)
59 	(SDLK_LCTRL, NKCODE_CTRL_LEFT)
60 	(SDLK_RCTRL, NKCODE_CTRL_RIGHT)
61 	(SDLK_CAPSLOCK, NKCODE_CAPS_LOCK)
62 	(SDLK_HOME, NKCODE_MOVE_HOME)
63 	(SDLK_END, NKCODE_MOVE_END)
64 	(SDLK_INSERT, NKCODE_INSERT)
65 	(SDLK_KP_0, NKCODE_NUMPAD_0)
66 	(SDLK_KP_1, NKCODE_NUMPAD_1)
67 	(SDLK_KP_2, NKCODE_NUMPAD_2)
68 	(SDLK_KP_3, NKCODE_NUMPAD_3)
69 	(SDLK_KP_4, NKCODE_NUMPAD_4)
70 	(SDLK_KP_5, NKCODE_NUMPAD_5)
71 	(SDLK_KP_6, NKCODE_NUMPAD_6)
72 	(SDLK_KP_7, NKCODE_NUMPAD_7)
73 	(SDLK_KP_8, NKCODE_NUMPAD_8)
74 	(SDLK_KP_9, NKCODE_NUMPAD_9)
75 	(SDLK_KP_DIVIDE, NKCODE_NUMPAD_DIVIDE)
76 	(SDLK_KP_MULTIPLY, NKCODE_NUMPAD_MULTIPLY)
77 	(SDLK_KP_MINUS, NKCODE_NUMPAD_SUBTRACT)
78 	(SDLK_KP_PLUS, NKCODE_NUMPAD_ADD)
79 	(SDLK_KP_PERIOD, NKCODE_NUMPAD_DOT)
80 	(SDLK_KP_ENTER, NKCODE_NUMPAD_ENTER)
81 	(SDLK_KP_EQUALS, NKCODE_NUMPAD_EQUALS)
82 	(SDLK_BACKQUOTE, NKCODE_GRAVE)
83 	(SDLK_1, NKCODE_1)
84 	(SDLK_2, NKCODE_2)
85 	(SDLK_3, NKCODE_3)
86 	(SDLK_4, NKCODE_4)
87 	(SDLK_5, NKCODE_5)
88 	(SDLK_6, NKCODE_6)
89 	(SDLK_7, NKCODE_7)
90 	(SDLK_8, NKCODE_8)
91 	(SDLK_9, NKCODE_9)
92 	(SDLK_0, NKCODE_0)
93 	(SDLK_F1, NKCODE_F1)
94 	(SDLK_F2, NKCODE_F2)
95 	(SDLK_F3, NKCODE_F3)
96 	(SDLK_F4, NKCODE_F4)
97 	(SDLK_F5, NKCODE_F5)
98 	(SDLK_F6, NKCODE_F6)
99 	(SDLK_F7, NKCODE_F7)
100 	(SDLK_F8, NKCODE_F8)
101 	(SDLK_F9, NKCODE_F9)
102 	(SDLK_F10, NKCODE_F10)
103 	(SDLK_F11, NKCODE_F11)
104 	(SDLK_F12, NKCODE_F12)
105 	(SDLK_LEFT, NKCODE_DPAD_LEFT)
106 	(SDLK_UP, NKCODE_DPAD_UP)
107 	(SDLK_RIGHT, NKCODE_DPAD_RIGHT)
108 	(SDLK_DOWN, NKCODE_DPAD_DOWN)
109 	(SDLK_PAUSE, NKCODE_BREAK)
110 	('|', NKCODE_EXT_PIPE)
111 	('{', NKCODE_LEFTBRACE)
112 	('}', NKCODE_RIGHTBRACE)
113 	(191, NKCODE_START_QUESTION)
114 	(SDLK_APPLICATION, NKCODE_MENU);
115 
116