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
|
/*
* 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, do whatever you want with this.
*
* No warranty is offered or implied; use this code at your own risk.
*
* Released to the Public Domain, do whatever you want with this: use it,
* modify it, copy it into your own code, ...
* No need to mention me or this "license" in your code or docs, even though
* it would be appreciated, of course.
*/
#ifndef _SDL2_SCANCODE_TO_DINPUT_MAPPINGS_H_
#define _SDL2_SCANCODE_TO_DINPUT_MAPPINGS_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_MAPPINGS_H_ */
|