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