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