Crazy Eddie's GUI System  ${CEGUI_VERSION}
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
sdl_scancode_to_dinput_mappings.h
1 /*
2  * Maps SDL2 scancodes to directinput keynums/scancodes.
3  * Useful if you're porting a game that uses dinput scancodes internally
4  * (for key bindings etc) or any other lib (like CEGUI) that uses them.
5  *
6  * (C) 2015 Daniel Gibson, do whatever you want with this.
7  *
8  * No warranty is offered or implied; use this code at your own risk.
9  *
10  * Released to the Public Domain, do whatever you want with this: use it,
11  * modify it, copy it into your own code, ...
12  * No need to mention me or this "license" in your code or docs, even though
13  * it would be appreciated, of course.
14  */
15 
16 
17 #ifndef _SDL2_SCANCODE_TO_DINPUT_MAPPINGS_H_
18 #define _SDL2_SCANCODE_TO_DINPUT_MAPPINGS_H_
19 
20  // TODO: map the following keys, if possible:
21  // #define DIK_UNDERLINE 0x93 /* (NEC PC98) */
22  // #define DIK_KANJI 0x94 /* (Japanese keyboard) */
23  // #define DIK_AX 0x96 /* (Japan AX) */
24  // #define DIK_UNLABELED 0x97 /* (J3100) */
25  //
26  // #define DIK_WAKE 0xE3 /* System Wake */
27  //
28  // (#define DIK_ABNT_C2 0x7E /* Numpad . on Brazilian keyboard */ - system should map this to KP_COMMA or something,
29  // according to USB doc, so probably it doesn't need mapping here)
30 
31 // maps SDL2 scancodes to directinput keynums/scancodes - dinput_key = scanCodeToKeyNum[(int)your_sdl2_scancode];
32 static int scanCodeToKeyNum[SDL_NUM_SCANCODES] = {
33  0x0, // SDL_SCANCODE_UNKNOWN = 0, => 0 should also work for dinput codes as "not assigned/unknown"
34  0x0, // // 1 (unused)
35  0x0, // // 2 (unused)
36  0x0, // // 3 (unused)
37  0x1E, // SDL_SCANCODE_A = 4, - DIK_A
38  0x30, // SDL_SCANCODE_B = 5, - DIK_B
39  0x2E, // SDL_SCANCODE_C = 6, - DIK_C
40  0x20, // SDL_SCANCODE_D = 7, - DIK_D
41  0x12, // SDL_SCANCODE_E = 8, - DIK_E
42  0x21, // SDL_SCANCODE_F = 9, - DIK_F
43  0x22, // SDL_SCANCODE_G = 10, - DIK_G
44  0x23, // SDL_SCANCODE_H = 11, - DIK_H
45  0x17, // SDL_SCANCODE_I = 12, - DIK_I
46  0x24, // SDL_SCANCODE_J = 13, - DIK_J
47  0x25, // SDL_SCANCODE_K = 14, - DIK_K
48  0x26, // SDL_SCANCODE_L = 15, - DIK_L
49  0x32, // SDL_SCANCODE_M = 16, - DIK_M
50  0x31, // SDL_SCANCODE_N = 17, - DIK_N
51  0x18, // SDL_SCANCODE_O = 18, - DIK_O
52  0x19, // SDL_SCANCODE_P = 19, - DIK_P
53  0x10, // SDL_SCANCODE_Q = 20, - DIK_Q
54  0x13, // SDL_SCANCODE_R = 21, - DIK_R
55  0x1F, // SDL_SCANCODE_S = 22, - DIK_S
56  0x14, // SDL_SCANCODE_T = 23, - DIK_T
57  0x16, // SDL_SCANCODE_U = 24, - DIK_U
58  0x2F, // SDL_SCANCODE_V = 25, - DIK_V
59  0x11, // SDL_SCANCODE_W = 26, - DIK_W
60  0x2D, // SDL_SCANCODE_X = 27, - DIK_X
61  0x15, // SDL_SCANCODE_Y = 28, - DIK_Y
62  0x2C, // SDL_SCANCODE_Z = 29, - DIK_Z
63 
64  0x02, // SDL_SCANCODE_1 = 30, - DIK_1
65  0x03, // SDL_SCANCODE_2 = 31, - DIK_2
66  0x04, // SDL_SCANCODE_3 = 32, - DIK_3
67  0x05, // SDL_SCANCODE_4 = 33, - DIK_4
68  0x06, // SDL_SCANCODE_5 = 34, - DIK_5
69  0x07, // SDL_SCANCODE_6 = 35, - DIK_6
70  0x08, // SDL_SCANCODE_7 = 36, - DIK_7
71  0x09, // SDL_SCANCODE_8 = 37, - DIK_8
72  0x0A, // SDL_SCANCODE_9 = 38, - DIK_9
73  0x0B, // SDL_SCANCODE_0 = 39, - DIK_0
74 
75  0x1C, // SDL_SCANCODE_RETURN = 40, - DIK_RETURN
76  0x01, // SDL_SCANCODE_ESCAPE = 41, - DIK_ESCAPE
77  0x0E, // SDL_SCANCODE_BACKSPACE = 42, - DIK_BACK
78  0x0F, // SDL_SCANCODE_TAB = 43, - DIK_TAB
79  0x39, // SDL_SCANCODE_SPACE = 44, - DIK_SPACE
80 
81  0x0C, // SDL_SCANCODE_MINUS = 45, - DIK_MINUS
82  0x0D, // SDL_SCANCODE_EQUALS = 46, - DIK_EQUALS
83  0x1A, // SDL_SCANCODE_LEFTBRACKET = 47, - DIK_LBRACKET
84  0x1B, // SDL_SCANCODE_RIGHTBRACKET = 48, - DIK_RBRACKET
85  0x2B, // SDL_SCANCODE_BACKSLASH = 49, // next to enter, US: [\|] DE: [#'] UK: [#~] - DIK_BACKSLASH
86  0x2B, // SDL_SCANCODE_NONUSHASH = 50, // same key as before actually on some layouts, systems should map this to SDL_SCANCODE_BACKSLASH - DIK_BACKSLASH
87  0x27, // SDL_SCANCODE_SEMICOLON = 51, - DIK_SEMICOLON
88  0x28, // SDL_SCANCODE_APOSTROPHE = 52, - DIK_APOSTROPHE
89  0x29, // SDL_SCANCODE_GRAVE = 53, // "quake/doom3 console key" - DIK_GRAVE
90  0x33, // SDL_SCANCODE_COMMA = 54, - DIK_COMMA
91  0x34, // SDL_SCANCODE_PERIOD = 55, - DIK_PERIOD
92  0x35, // SDL_SCANCODE_SLASH = 56, - DIK_SLASH
93 
94  0x3A, // SDL_SCANCODE_CAPSLOCK = 57, - DIK_CAPITAL
95 
96  0x3B, // SDL_SCANCODE_F1 = 58, - DIK_F1
97  0x3C, // SDL_SCANCODE_F2 = 59, - DIK_F2
98  0x3D, // SDL_SCANCODE_F3 = 60, - DIK_F3
99  0x3E, // SDL_SCANCODE_F4 = 61, - DIK_F4
100  0x3F, // SDL_SCANCODE_F5 = 62, - DIK_F5
101  0x40, // SDL_SCANCODE_F6 = 63, - DIK_F6
102  0x41, // SDL_SCANCODE_F7 = 64, - DIK_F7
103  0x42, // SDL_SCANCODE_F8 = 65, - DIK_F8
104  0x43, // SDL_SCANCODE_F9 = 66, - DIK_F9
105  0x44, // SDL_SCANCODE_F10 = 67, - DIK_F10
106  0x57, // SDL_SCANCODE_F11 = 68, - DIK_F11
107  0x58, // SDL_SCANCODE_F12 = 69, - DIK_F12
108 
109  0xB7, // SDL_SCANCODE_PRINTSCREEN = 70, // - DIK_SYSRQ; SDL_SCANCODE_SYSREQ also maps to this!
110 
111  0x46, // SDL_SCANCODE_SCROLLLOCK = 71, - DIK_SCROLL
112  0xC5, // SDL_SCANCODE_PAUSE = 72, - DIK_PAUSE
113  0xD2, // SDL_SCANCODE_INSERT = 73, // insert on PC, help on some Mac keyboards (but does send code 73, not 117) - DIK_INSERT
114  0xC7, // SDL_SCANCODE_HOME = 74, - DIK_HOME
115  0xC9, // SDL_SCANCODE_PAGEUP = 75, - DIK_PRIOR
116  0xD3, // SDL_SCANCODE_DELETE = 76, - DIK_DELETE
117  0xCF, // SDL_SCANCODE_END = 77, - DIK_END
118  0xD1, // SDL_SCANCODE_PAGEDOWN = 78, - DIK_NEXT
119  0xCD, // SDL_SCANCODE_RIGHT = 79, - DIK_RIGHT
120  0xCB, // SDL_SCANCODE_LEFT = 80, - DIK_LEFT
121  0xD0, // SDL_SCANCODE_DOWN = 81, - DIK_DOWN
122  0xC8, // SDL_SCANCODE_UP = 82, - DIK_UP
123 
124  0x45, // SDL_SCANCODE_NUMLOCKCLEAR = 83, // num lock on PC, clear on Mac keyboards - DIK_NUMLOCK
125 
126  0xB5, // SDL_SCANCODE_KP_DIVIDE = 84, - DIK_DIVIDE
127  0x37, // SDL_SCANCODE_KP_MULTIPLY = 85, - DIK_MULTIPLY
128  0x4A, // SDL_SCANCODE_KP_MINUS = 86, - DIK_SUBTRACT
129  0x4E, // SDL_SCANCODE_KP_PLUS = 87, - DIK_ADD
130  0x9C, // SDL_SCANCODE_KP_ENTER = 88, - DIK_NUMPADENTER
131  0x4F, // SDL_SCANCODE_KP_1 = 89, - DIK_NUMPAD1
132  0x50, // SDL_SCANCODE_KP_2 = 90, - DIK_NUMPAD2
133  0x51, // SDL_SCANCODE_KP_3 = 91, - DIK_NUMPAD3
134  0x4B, // SDL_SCANCODE_KP_4 = 92, - DIK_NUMPAD4
135  0x4C, // SDL_SCANCODE_KP_5 = 93, - DIK_NUMPAD5
136  0x4D, // SDL_SCANCODE_KP_6 = 94, - DIK_NUMPAD6
137  0x47, // SDL_SCANCODE_KP_7 = 95, - DIK_NUMPAD7
138  0x48, // SDL_SCANCODE_KP_8 = 96, - DIK_NUMPAD8
139  0x49, // SDL_SCANCODE_KP_9 = 97, - DIK_NUMPAD9
140  0x52, // SDL_SCANCODE_KP_0 = 98, - DIK_NUMPAD0
141  0x53, // SDL_SCANCODE_KP_PERIOD = 99, - DIK_DECIMAL
142 
143  0x56, // SDL_SCANCODE_NONUSBACKSLASH = 100, // [<>|] on german keyboard, next to left shift - DIK_OEM_102
144  0xDD, // SDL_SCANCODE_APPLICATION = 101, // windows contextual menu, compose - DIK_APPS
145  0xDE, // SDL_SCANCODE_POWER = 102, // should be a status flag, but some mac keyboards have a power key - DIK_POWER
146 
147  0x8D, // SDL_SCANCODE_KP_EQUALS = 103, - DIK_NUMPADEQUALS
148  0x64, // SDL_SCANCODE_F13 = 104, - DIK_F13
149  0x65, // SDL_SCANCODE_F14 = 105, - DIK_F14
150  0x66, // SDL_SCANCODE_F15 = 106, - DIK_F15
151  0x67, // SDL_SCANCODE_F16 = 107, // TODO: F16 and up don't have DIK_ constants! is this right?
152  0x68, // SDL_SCANCODE_F17 = 108, // (at least 0x67-0x6F have no DIK_constants at all)
153  0x69, // SDL_SCANCODE_F18 = 109,
154  0x6A, // SDL_SCANCODE_F19 = 110,
155  0x6B, // SDL_SCANCODE_F20 = 111,
156  0x6C, // SDL_SCANCODE_F21 = 112,
157  0x6D, // SDL_SCANCODE_F22 = 113,
158  0x6E, // SDL_SCANCODE_F23 = 114,
159  0x6F, // SDL_SCANCODE_F24 = 115,
160 
161  0x0, // SDL_SCANCODE_EXECUTE = 116,
162  0x0, // SDL_SCANCODE_HELP = 117,
163  0x0, // SDL_SCANCODE_MENU = 118,
164  0x0, // SDL_SCANCODE_SELECT = 119,
165 
166  0x95, // SDL_SCANCODE_STOP = 120, - DIK_STOP
167 
168  0x0, // SDL_SCANCODE_AGAIN = 121, // redo
169  0x0, // SDL_SCANCODE_UNDO = 122,
170  0x0, // SDL_SCANCODE_CUT = 123,
171  0x0, // SDL_SCANCODE_COPY = 124,
172  0x0, // SDL_SCANCODE_PASTE = 125,
173  0x0, // SDL_SCANCODE_FIND = 126,
174  0x0, // SDL_SCANCODE_MUTE = 127,
175 
176  0xB0, // SDL_SCANCODE_VOLUMEUP = 128, - DIK_VOLUMEUP
177  0xAE, // SDL_SCANCODE_VOLUMEDOWN = 129, - DIK_VOLUMEDOWN
178 
179  // /* not sure whether there's a reason to enable these */
180  0x0, // /* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */
181  0x0, // /* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */
182  0x0, // /* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */
183 
184  0xB3, // SDL_SCANCODE_KP_COMMA = 133, - DIK_NUMPADCOMMA
185 
186  0x0, // SDL_SCANCODE_KP_EQUALSAS400 = 134,
187 
188  0x73, // SDL_SCANCODE_INTERNATIONAL1 = 135, // this is really brazilian / and ? - DIK_ABNT_C1
189  0x0, // SDL_SCANCODE_INTERNATIONAL2 = 136, // TODO: Hut1_12v2.pdf page 60, footnote 16
190  0x7D, // SDL_SCANCODE_INTERNATIONAL3 = 137, - DIK_YEN
191  0x79, // SDL_SCANCODE_INTERNATIONAL4 = 138, // Japan: XFER/"convert kana -> kanji", right of space - DIK_CONVERT
192  0x7B, // SDL_SCANCODE_INTERNATIONAL5 = 139, // Japan: NFER/"don't convert kana -> kanji", left of space - DIK_NOCONVERT
193  0x0, // SDL_SCANCODE_INTERNATIONAL6 = 140, // TODO: Hut1_12v2.pdf page 60, footnote 20
194  0x0, // SDL_SCANCODE_INTERNATIONAL7 = 141, // Toggle Double-Byte/Single-Byte mode.
195  0x0, // SDL_SCANCODE_INTERNATIONAL8 = 142, // Undefined, available for other Front End Language Processors
196  0x0, // SDL_SCANCODE_INTERNATIONAL9 = 143, // Undefined, available for other Front End Language Processors
197  0x0, // SDL_SCANCODE_LANG1 = 144, // Hangul/English toggle (Korea)
198  0x0, // SDL_SCANCODE_LANG2 = 145, // Hanja conversion (Korea)
199  0x70, // SDL_SCANCODE_LANG3 = 146, // Katakana (Japan) - DIK_KANA
200  0x0, // SDL_SCANCODE_LANG4 = 147, // Hiragana (Japan)
201  0x0, // SDL_SCANCODE_LANG5 = 148, // Zenkaku/Hankaku (Japan)
202  0x0, // SDL_SCANCODE_LANG6 = 149, // reserved
203  0x0, // SDL_SCANCODE_LANG7 = 150, // reserved
204  0x0, // SDL_SCANCODE_LANG8 = 151, // reserved
205  0x0, // SDL_SCANCODE_LANG9 = 152, // reserved
206 
207  0x0, // SDL_SCANCODE_ALTERASE = 153, // Erase-Eaze
208 
209  0xB7, // SDL_SCANCODE_SYSREQ = 154, - DIK_SYSRQ; SDL_SCANCODE_PRINTSCREEN also maps to this!
210 
211  0x0, // SDL_SCANCODE_CANCEL = 155,
212  0x0, // SDL_SCANCODE_CLEAR = 156,
213  0x0, // SDL_SCANCODE_PRIOR = 157,
214  0x0, // SDL_SCANCODE_RETURN2 = 158,
215  0x0, // SDL_SCANCODE_SEPARATOR = 159,
216  0x0, // SDL_SCANCODE_OUT = 160,
217  0x0, // SDL_SCANCODE_OPER = 161,
218  0x0, // SDL_SCANCODE_CLEARAGAIN = 162,
219  0x0, // SDL_SCANCODE_CRSEL = 163,
220  0x0, // SDL_SCANCODE_EXSEL = 164,
221 
222  0x0, // 165 (unused)
223  0x0, // 166 (unused)
224  0x0, // 167 (unused)
225  0x0, // 168 (unused)
226  0x0, // 169 (unused)
227  0x0, // 170 (unused)
228  0x0, // 171 (unused)
229  0x0, // 172 (unused)
230  0x0, // 173 (unused)
231  0x0, // 174 (unused)
232  0x0, // 175 (unused)
233 
234  0x0, // SDL_SCANCODE_KP_00 = 176,
235  0x0, // SDL_SCANCODE_KP_000 = 177,
236  0x0, // SDL_SCANCODE_THOUSANDSSEPARATOR = 178,
237  0x0, // SDL_SCANCODE_DECIMALSEPARATOR = 179,
238  0x0, // SDL_SCANCODE_CURRENCYUNIT = 180,
239  0x0, // SDL_SCANCODE_CURRENCYSUBUNIT = 181,
240  0x0, // SDL_SCANCODE_KP_LEFTPAREN = 182,
241  0x0, // SDL_SCANCODE_KP_RIGHTPAREN = 183,
242  0x0, // SDL_SCANCODE_KP_LEFTBRACE = 184,
243  0x0, // SDL_SCANCODE_KP_RIGHTBRACE = 185,
244  0x0, // SDL_SCANCODE_KP_TAB = 186,
245  0x0, // SDL_SCANCODE_KP_BACKSPACE = 187,
246  0x0, // SDL_SCANCODE_KP_A = 188,
247  0x0, // SDL_SCANCODE_KP_B = 189,
248  0x0, // SDL_SCANCODE_KP_C = 190,
249  0x0, // SDL_SCANCODE_KP_D = 191,
250  0x0, // SDL_SCANCODE_KP_E = 192,
251  0x0, // SDL_SCANCODE_KP_F = 193,
252  0x0, // SDL_SCANCODE_KP_XOR = 194,
253  0x0, // SDL_SCANCODE_KP_POWER = 195,
254  0x0, // SDL_SCANCODE_KP_PERCENT = 196,
255  0x0, // SDL_SCANCODE_KP_LESS = 197,
256  0x0, // SDL_SCANCODE_KP_GREATER = 198,
257  0x0, // SDL_SCANCODE_KP_AMPERSAND = 199,
258  0x0, // SDL_SCANCODE_KP_DBLAMPERSAND = 200,
259  0x0, // SDL_SCANCODE_KP_VERTICALBAR = 201,
260  0x0, // SDL_SCANCODE_KP_DBLVERTICALBAR = 202,
261 
262  0x92, // SDL_SCANCODE_KP_COLON = 203, - DIK_COLON
263 
264  0x0, // SDL_SCANCODE_KP_HASH = 204,
265  0x0, // SDL_SCANCODE_KP_SPACE = 205,
266 
267  0x91, // SDL_SCANCODE_KP_AT = 206, - DIK_AT
268 
269  0x0, // SDL_SCANCODE_KP_EXCLAM = 207,
270  0x0, // SDL_SCANCODE_KP_MEMSTORE = 208,
271  0x0, // SDL_SCANCODE_KP_MEMRECALL = 209,
272  0x0, // SDL_SCANCODE_KP_MEMCLEAR = 210,
273  0x0, // SDL_SCANCODE_KP_MEMADD = 211,
274  0x0, // SDL_SCANCODE_KP_MEMSUBTRACT = 212,
275  0x0, // SDL_SCANCODE_KP_MEMMULTIPLY = 213,
276  0x0, // SDL_SCANCODE_KP_MEMDIVIDE = 214,
277  0x0, // SDL_SCANCODE_KP_PLUSMINUS = 215,
278  0x0, // SDL_SCANCODE_KP_CLEAR = 216,
279  0x0, // SDL_SCANCODE_KP_CLEARENTRY = 217,
280  0x0, // SDL_SCANCODE_KP_BINARY = 218,
281  0x0, // SDL_SCANCODE_KP_OCTAL = 219,
282  0x0, // SDL_SCANCODE_KP_DECIMAL = 220,
283  0x0, // SDL_SCANCODE_KP_HEXADECIMAL = 221,
284 
285  0x0, // 222 (unused)
286  0x0, // 223 (unused)
287 
288  0x1D, // SDL_SCANCODE_LCTRL = 224, - DIK_LCONTROL
289  0x2A, // SDL_SCANCODE_LSHIFT = 225, - DIK_LSHIFT
290  0x38, // SDL_SCANCODE_LALT = 226, // left Alt, option - DIK_LMENU
291  0xDB, // SDL_SCANCODE_LGUI = 227, // left windows, command (apple), meta - DIK_LWIN
292  0x9D, // SDL_SCANCODE_RCTRL = 228, - DIK_RCONTROL
293  0x36, // SDL_SCANCODE_RSHIFT = 229, - DIK_RSHIFT
294  0xB8, // SDL_SCANCODE_RALT = 230, // right Alt/AltGr, option - DIK_RMENU, also used for SDL_SCANCODE_MODE!
295  0xDC, // SDL_SCANCODE_RGUI = 231, // left windows, command (apple), meta - DIK_RWIN
296 
297  // 232 - 256 unused
298  0, 0, 0, 0, 0, 0, 0, 0, 0, // 232 - 240 unused
299  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 241-250 unused
300  0, 0, 0, 0, 0, 0, // 251-256 unused
301 
302  0xB8, // SDL_SCANCODE_MODE = 257, // this seems to be the AltGr Key? - DIK_RMENU (right alt)
303 
304  // These values are mapped from usage page 0x0C (USB consumer page).
305  0x99, // SDL_SCANCODE_AUDIONEXT = 258, - DIK_NEXTTRACK
306  0x90, // SDL_SCANCODE_AUDIOPREV = 259, - DIK_PREVTRACK, which is DIK_CIRCUMFLEX on japanese keyboards
307  0xA4, // SDL_SCANCODE_AUDIOSTOP = 260, - DIK_MEDIASTOP
308  0xA2, // SDL_SCANCODE_AUDIOPLAY = 261, - DIK_PLAYPAUSE
309  0xA0, // SDL_SCANCODE_AUDIOMUTE = 262, - DIK_MUTE
310  0xED, // SDL_SCANCODE_MEDIASELECT = 263, - DIK_MEDIASELECT
311 
312  0x0, // SDL_SCANCODE_WWW = 264,
313 
314  0xEC, // SDL_SCANCODE_MAIL = 265, - DIK_MAIL
315  0xA1, // SDL_SCANCODE_CALCULATOR = 266, - DIK_CALCULATOR
316  0xEB, // SDL_SCANCODE_COMPUTER = 267, - DIK_MYCOMPUTER
317  0xE5, // SDL_SCANCODE_AC_SEARCH = 268, - DIK_WEBSEARCH
318  0xB2, // SDL_SCANCODE_AC_HOME = 269, - DIK_WEBHOME
319  0xEA, // SDL_SCANCODE_AC_BACK = 270, - DIK_WEBBACK
320  0xE9, // SDL_SCANCODE_AC_FORWARD = 271, - DIK_WEBFORWARD
321  0xE8, // SDL_SCANCODE_AC_STOP = 272, - DIK_WEBSTOP
322  0xE7, // SDL_SCANCODE_AC_REFRESH = 273, - DIK_WEBREFRESH
323  0xE6, // SDL_SCANCODE_AC_BOOKMARKS = 274, - DIK_WEBFAVORITES
324 
325  // These are values that Christian Walther added (for mac keyboard?).
326  0x0, // SDL_SCANCODE_BRIGHTNESSDOWN = 275,
327  0x0, // SDL_SCANCODE_BRIGHTNESSUP = 276,
328  0x0, // SDL_SCANCODE_DISPLAYSWITCH = 277, // display mirroring/dual display switch, video mode switch
329  0x0, // SDL_SCANCODE_KBDILLUMTOGGLE = 278,
330  0x0, // SDL_SCANCODE_KBDILLUMDOWN = 279,
331  0x0, // SDL_SCANCODE_KBDILLUMUP = 280,
332  0x0, // SDL_SCANCODE_EJECT = 281,
333 
334  0xDF, // SDL_SCANCODE_SLEEP = 282, - DIK_SLEEP
335 
336  0x0, // SDL_SCANCODE_APP1 = 283,
337  0x0, // SDL_SCANCODE_APP2 = 284,
338  // end of Walther-keys
339 
340  // the rest up to 511 are currently not named in SDL
341 
342  0, 0, 0, 0, 0, 0, // 285-290 unused
343  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 291-300 unused
344 
345  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 301-320 unused
346  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 321-340 unused
347  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 341-360 unused
348  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 361-380 unused
349  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 381-400 unused
350 
351  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 401-420 unused
352  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 421-440 unused
353  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 441-460 unused
354  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 461-480 unused
355  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 481-500 unused
356 
357  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // 501-511 unused
358 };
359 
360 
361 #endif /* _SDL2_SCANCODE_TO_DINPUT_MAPPINGS_H_ */