1 #ifdef HAVE_CONFIG_H 2 #include "config.h" 3 #endif 4 5 #include <fs/ml.h> 6 static uint32_t g_sdl2_keys[] = { 7 0, 0, 0, 0, 8 FS_ML_KEY_A, // 4 SDL_SCANCODE_A 9 FS_ML_KEY_B, // 5 SDL_SCANCODE_B 10 FS_ML_KEY_C, // 6 SDL_SCANCODE_C 11 FS_ML_KEY_D, // 7 SDL_SCANCODE_D 12 FS_ML_KEY_E, // 8 SDL_SCANCODE_E 13 FS_ML_KEY_F, // 9 SDL_SCANCODE_F 14 FS_ML_KEY_G, // 10 SDL_SCANCODE_G 15 FS_ML_KEY_H, // 11 SDL_SCANCODE_H 16 FS_ML_KEY_I, // 12 SDL_SCANCODE_I 17 FS_ML_KEY_J, // 13 SDL_SCANCODE_J 18 FS_ML_KEY_K, // 14 SDL_SCANCODE_K 19 FS_ML_KEY_L, // 15 SDL_SCANCODE_L 20 FS_ML_KEY_M, // 16 SDL_SCANCODE_M 21 FS_ML_KEY_N, // 17 SDL_SCANCODE_N 22 FS_ML_KEY_O, // 18 SDL_SCANCODE_O 23 FS_ML_KEY_P, // 19 SDL_SCANCODE_P 24 FS_ML_KEY_Q, // 20 SDL_SCANCODE_Q 25 FS_ML_KEY_R, // 21 SDL_SCANCODE_R 26 FS_ML_KEY_S, // 22 SDL_SCANCODE_S 27 FS_ML_KEY_T, // 23 SDL_SCANCODE_T 28 FS_ML_KEY_U, // 24 SDL_SCANCODE_U 29 FS_ML_KEY_V, // 25 SDL_SCANCODE_V 30 FS_ML_KEY_W, // 26 SDL_SCANCODE_W 31 FS_ML_KEY_X, // 27 SDL_SCANCODE_X 32 FS_ML_KEY_Y, // 28 SDL_SCANCODE_Y 33 FS_ML_KEY_Z, // 29 SDL_SCANCODE_Z 34 FS_ML_KEY_1, // 30 SDL_SCANCODE_1 35 FS_ML_KEY_2, // 31 SDL_SCANCODE_2 36 FS_ML_KEY_3, // 32 SDL_SCANCODE_3 37 FS_ML_KEY_4, // 33 SDL_SCANCODE_4 38 FS_ML_KEY_5, // 34 SDL_SCANCODE_5 39 FS_ML_KEY_6, // 35 SDL_SCANCODE_6 40 FS_ML_KEY_7, // 36 SDL_SCANCODE_7 41 FS_ML_KEY_8, // 37 SDL_SCANCODE_8 42 FS_ML_KEY_9, // 38 SDL_SCANCODE_9 43 FS_ML_KEY_0, // 39 SDL_SCANCODE_0 44 FS_ML_KEY_RETURN, // 40 SDL_SCANCODE_RETURN 45 FS_ML_KEY_ESCAPE, // 41 SDL_SCANCODE_ESCAPE 46 FS_ML_KEY_BACKSPACE, // 42 SDL_SCANCODE_BACKSPACE 47 FS_ML_KEY_TAB, // 43 SDL_SCANCODE_TAB 48 FS_ML_KEY_SPACE, // 44 SDL_SCANCODE_SPACE 49 FS_ML_KEY_MINUS, // 45 SDL_SCANCODE_MINUS 50 FS_ML_KEY_EQUALS, // 46 SDL_SCANCODE_EQUALS 51 FS_ML_KEY_LEFTBRACKET, // 47 SDL_SCANCODE_LEFTBRACKET 52 FS_ML_KEY_RIGHTBRACKET, // 48 SDL_SCANCODE_RIGHTBRACKET 53 FS_ML_KEY_BACKSLASH, // 49 SDL_SCANCODE_BACKSLASH 54 0, // 50 SDL_SCANCODE_NONUSHASH 55 FS_ML_KEY_SEMICOLON, // 51 SDL_SCANCODE_SEMICOLON 56 FS_ML_KEY_QUOTE, // 52 SDL_SCANCODE_APOSTROPHE 57 FS_ML_KEY_BACKQUOTE, // 53 SDL_SCANCODE_GRAVE 58 FS_ML_KEY_COMMA, // 54 SDL_SCANCODE_COMMA 59 FS_ML_KEY_PERIOD, // 55 SDL_SCANCODE_PERIOD 60 FS_ML_KEY_SLASH, // 56 SDL_SCANCODE_SLASH 61 FS_ML_KEY_CAPSLOCK, // 57 SDL_SCANCODE_CAPSLOCK 62 FS_ML_KEY_F1, // 58 SDL_SCANCODE_F1 63 FS_ML_KEY_F2, // 59 SDL_SCANCODE_F2 64 FS_ML_KEY_F3, // 60 SDL_SCANCODE_F3 65 FS_ML_KEY_F4, // 61 SDL_SCANCODE_F4 66 FS_ML_KEY_F5, // 62 SDL_SCANCODE_F5 67 FS_ML_KEY_F6, // 63 SDL_SCANCODE_F6 68 FS_ML_KEY_F7, // 64 SDL_SCANCODE_F7 69 FS_ML_KEY_F8, // 65 SDL_SCANCODE_F8 70 FS_ML_KEY_F9, // 66 SDL_SCANCODE_F9 71 FS_ML_KEY_F10, // 67 SDL_SCANCODE_F10 72 FS_ML_KEY_F11, // 68 SDL_SCANCODE_F11 73 FS_ML_KEY_F12, // 69 SDL_SCANCODE_F12 74 FS_ML_KEY_PRINT, // 70 SDL_SCANCODE_PRINTSCREEN 75 FS_ML_KEY_SCROLLOCK, // 71 SDL_SCANCODE_SCROLLLOCK 76 FS_ML_KEY_PAUSE, // 72 SDL_SCANCODE_PAUSE 77 FS_ML_KEY_INSERT, // 73 SDL_SCANCODE_INSERT 78 FS_ML_KEY_HOME, // 74 SDL_SCANCODE_HOME 79 FS_ML_KEY_PAGEUP, // 75 SDL_SCANCODE_PAGEUP 80 FS_ML_KEY_DELETE, // 76 SDL_SCANCODE_DELETE 81 FS_ML_KEY_END, // 77 SDL_SCANCODE_END 82 FS_ML_KEY_PAGEDOWN, // 78 SDL_SCANCODE_PAGEDOWN 83 FS_ML_KEY_RIGHT, // 79 SDL_SCANCODE_RIGHT 84 FS_ML_KEY_LEFT, // 80 SDL_SCANCODE_LEFT 85 FS_ML_KEY_DOWN, // 81 SDL_SCANCODE_DOWN 86 FS_ML_KEY_UP, // 82 SDL_SCANCODE_UP 87 FS_ML_KEY_NUMLOCK, // 83 SDL_SCANCODE_NUMLOCKCLEAR 88 FS_ML_KEY_KP_DIVIDE, // 84 SDL_SCANCODE_KP_DIVIDE 89 FS_ML_KEY_KP_MULTIPLY, // 85 SDL_SCANCODE_KP_MULTIPLY 90 FS_ML_KEY_KP_MINUS, // 86 SDL_SCANCODE_KP_MINUS 91 FS_ML_KEY_KP_PLUS, // 87 SDL_SCANCODE_KP_PLUS 92 FS_ML_KEY_KP_ENTER, // 88 SDL_SCANCODE_KP_ENTER 93 FS_ML_KEY_KP1, // 89 SDL_SCANCODE_KP_1 94 FS_ML_KEY_KP2, // 90 SDL_SCANCODE_KP_2 95 FS_ML_KEY_KP3, // 91 SDL_SCANCODE_KP_3 96 FS_ML_KEY_KP4, // 92 SDL_SCANCODE_KP_4 97 FS_ML_KEY_KP5, // 93 SDL_SCANCODE_KP_5 98 FS_ML_KEY_KP6, // 94 SDL_SCANCODE_KP_6 99 FS_ML_KEY_KP7, // 95 SDL_SCANCODE_KP_7 100 FS_ML_KEY_KP8, // 96 SDL_SCANCODE_KP_8 101 FS_ML_KEY_KP9, // 97 SDL_SCANCODE_KP_9 102 FS_ML_KEY_KP0, // 98 SDL_SCANCODE_KP_0 103 FS_ML_KEY_KP_PERIOD, // 99 SDL_SCANCODE_KP_PERIOD 104 FS_ML_KEY_LESS, // 100 SDL_SCANCODE_NONUSBACKSLASH 105 FS_ML_KEY_MENU, // 101 SDL_SCANCODE_APPLICATION 106 0, // 102 SDL_SCANCODE_POWER 107 0, // 103 SDL_SCANCODE_KP_EQUALS 108 0, // 104 SDL_SCANCODE_F13 109 0, // 105 SDL_SCANCODE_F14 110 0, // 106 SDL_SCANCODE_F15 111 0, // 107 SDL_SCANCODE_F16 112 0, // 108 SDL_SCANCODE_F17 113 0, // 109 SDL_SCANCODE_F18 114 0, // 110 SDL_SCANCODE_F19 115 0, // 111 SDL_SCANCODE_F20 116 0, // 112 SDL_SCANCODE_F21 117 0, // 113 SDL_SCANCODE_F22 118 0, // 114 SDL_SCANCODE_F23 119 0, // 115 SDL_SCANCODE_F24 120 0, // 116 SDL_SCANCODE_EXECUTE 121 0, // 117 SDL_SCANCODE_HELP 122 0, // 118 SDL_SCANCODE_MENU 123 0, // 119 SDL_SCANCODE_SELECT 124 0, // 120 SDL_SCANCODE_STOP 125 0, // 121 SDL_SCANCODE_AGAIN 126 0, // 122 SDL_SCANCODE_UNDO 127 0, // 123 SDL_SCANCODE_CUT 128 0, // 124 SDL_SCANCODE_COPY 129 0, // 125 SDL_SCANCODE_PASTE 130 0, // 126 SDL_SCANCODE_FIND 131 FS_ML_KEY_MUTE, // 127 SDL_SCANCODE_MUTE 132 FS_ML_KEY_VOLUMEUP, // 128 SDL_SCANCODE_VOLUMEUP 133 FS_ML_KEY_VOLUMEDOWN, // 129 SDL_SCANCODE_VOLUMEDOWN 134 0, // 130 SDL_SCANCODE_LOCKINGCAPSLOCK 135 0, // 131 SDL_SCANCODE_LOCKINGNUMLOCK 136 0, // 132 SDL_SCANCODE_LOCKINGSCROLLLOCK 137 0, // 133 SDL_SCANCODE_KP_COMMA 138 0, // 134 SDL_SCANCODE_KP_EQUALSAS400 139 0, // 135 SDL_SCANCODE_INTERNATIONAL1 140 0, // 136 SDL_SCANCODE_INTERNATIONAL2 141 0, // 137 SDL_SCANCODE_INTERNATIONAL3 142 0, // 138 SDL_SCANCODE_INTERNATIONAL4 143 0, // 139 SDL_SCANCODE_INTERNATIONAL5 144 0, // 140 SDL_SCANCODE_INTERNATIONAL6 145 0, // 141 SDL_SCANCODE_INTERNATIONAL7 146 0, // 142 SDL_SCANCODE_INTERNATIONAL8 147 0, // 143 SDL_SCANCODE_INTERNATIONAL9 148 0, // 144 SDL_SCANCODE_LANG1 149 0, // 145 SDL_SCANCODE_LANG2 150 0, // 146 SDL_SCANCODE_LANG3 151 0, // 147 SDL_SCANCODE_LANG4 152 0, // 148 SDL_SCANCODE_LANG5 153 0, // 149 SDL_SCANCODE_LANG6 154 0, // 150 SDL_SCANCODE_LANG7 155 0, // 151 SDL_SCANCODE_LANG8 156 0, // 152 SDL_SCANCODE_LANG9 157 0, // 153 SDL_SCANCODE_ALTERASE 158 FS_ML_KEY_SYSREQ, // 154 SDL_SCANCODE_SYSREQ 159 0, // 155 SDL_SCANCODE_CANCEL 160 0, // 156 SDL_SCANCODE_CLEAR 161 0, // 157 SDL_SCANCODE_PRIOR 162 0, // 158 SDL_SCANCODE_RETURN2 163 0, // 159 SDL_SCANCODE_SEPARATOR 164 0, // 160 SDL_SCANCODE_OUT 165 0, // 161 SDL_SCANCODE_OPER 166 0, // 162 SDL_SCANCODE_CLEARAGAIN 167 0, // 163 SDL_SCANCODE_CRSEL 168 0, // 164 SDL_SCANCODE_EXSEL 169 0, 170 0, 171 0, 172 0, 173 0, 174 0, 175 0, 176 0, 177 0, 178 0, 179 0, 180 0, // 176 SDL_SCANCODE_KP_00 181 0, // 177 SDL_SCANCODE_KP_000 182 0, // 178 SDL_SCANCODE_THOUSANDSSEPARATOR 183 0, // 179 SDL_SCANCODE_DECIMALSEPARATOR 184 0, // 180 SDL_SCANCODE_CURRENCYUNIT 185 0, // 181 SDL_SCANCODE_CURRENCYSUBUNIT 186 0, // 182 SDL_SCANCODE_KP_LEFTPAREN 187 0, // 183 SDL_SCANCODE_KP_RIGHTPAREN 188 0, // 184 SDL_SCANCODE_KP_LEFTBRACE 189 0, // 185 SDL_SCANCODE_KP_RIGHTBRACE 190 0, // 186 SDL_SCANCODE_KP_TAB 191 0, // 187 SDL_SCANCODE_KP_BACKSPACE 192 0, // 188 SDL_SCANCODE_KP_A 193 0, // 189 SDL_SCANCODE_KP_B 194 0, // 190 SDL_SCANCODE_KP_C 195 0, // 191 SDL_SCANCODE_KP_D 196 0, // 192 SDL_SCANCODE_KP_E 197 0, // 193 SDL_SCANCODE_KP_F 198 0, // 194 SDL_SCANCODE_KP_XOR 199 0, // 195 SDL_SCANCODE_KP_POWER 200 0, // 196 SDL_SCANCODE_KP_PERCENT 201 0, // 197 SDL_SCANCODE_KP_LESS 202 0, // 198 SDL_SCANCODE_KP_GREATER 203 0, // 199 SDL_SCANCODE_KP_AMPERSAND 204 0, // 200 SDL_SCANCODE_KP_DBLAMPERSAND 205 0, // 201 SDL_SCANCODE_KP_VERTICALBAR 206 0, // 202 SDL_SCANCODE_KP_DBLVERTICALBAR 207 0, // 203 SDL_SCANCODE_KP_COLON 208 0, // 204 SDL_SCANCODE_KP_HASH 209 0, // 205 SDL_SCANCODE_KP_SPACE 210 0, // 206 SDL_SCANCODE_KP_AT 211 0, // 207 SDL_SCANCODE_KP_EXCLAM 212 0, // 208 SDL_SCANCODE_KP_MEMSTORE 213 0, // 209 SDL_SCANCODE_KP_MEMRECALL 214 0, // 210 SDL_SCANCODE_KP_MEMCLEAR 215 0, // 211 SDL_SCANCODE_KP_MEMADD 216 0, // 212 SDL_SCANCODE_KP_MEMSUBTRACT 217 0, // 213 SDL_SCANCODE_KP_MEMMULTIPLY 218 0, // 214 SDL_SCANCODE_KP_MEMDIVIDE 219 0, // 215 SDL_SCANCODE_KP_PLUSMINUS 220 0, // 216 SDL_SCANCODE_KP_CLEAR 221 0, // 217 SDL_SCANCODE_KP_CLEARENTRY 222 0, // 218 SDL_SCANCODE_KP_BINARY 223 0, // 219 SDL_SCANCODE_KP_OCTAL 224 0, // 220 SDL_SCANCODE_KP_DECIMAL 225 0, // 221 SDL_SCANCODE_KP_HEXADECIMAL 226 0, 227 0, 228 FS_ML_KEY_LCTRL, // 224 SDL_SCANCODE_LCTRL 229 FS_ML_KEY_LSHIFT, // 225 SDL_SCANCODE_LSHIFT 230 FS_ML_KEY_LALT, // 226 SDL_SCANCODE_LALT 231 FS_ML_KEY_LSUPER, // 227 SDL_SCANCODE_LGUI 232 FS_ML_KEY_RCTRL, // 228 SDL_SCANCODE_RCTRL 233 FS_ML_KEY_RSHIFT, // 229 SDL_SCANCODE_RSHIFT 234 FS_ML_KEY_RALT, // 230 SDL_SCANCODE_RALT 235 FS_ML_KEY_RSUPER, // 231 SDL_SCANCODE_RGUI 236 0, 237 0, 238 0, 239 0, 240 0, 241 0, 242 0, 243 0, 244 0, 245 0, 246 0, 247 0, 248 0, 249 0, 250 0, 251 0, 252 0, 253 0, 254 0, 255 0, 256 0, 257 0, 258 0, 259 0, 260 0, 261 0, // 257 SDL_SCANCODE_MODE 262 FS_ML_KEY_AUDIONEXT, // 258 SDL_SCANCODE_AUDIONEXT 263 FS_ML_KEY_AUDIOPREV, // 259 SDL_SCANCODE_AUDIOPREV 264 FS_ML_KEY_AUDIOSTOP, // 260 SDL_SCANCODE_AUDIOSTOP 265 FS_ML_KEY_AUDIOPLAY, // 261 SDL_SCANCODE_AUDIOPLAY 266 /* Mapped to same FS_ML_KEY as SDL_SCANMODE_MUTE. */ 267 FS_ML_KEY_MUTE, // 262 SDL_SCANCODE_AUDIOMUTE 268 0, // 263 SDL_SCANCODE_MEDIASELECT 269 0, // 264 SDL_SCANCODE_WWW 270 0, // 265 SDL_SCANCODE_MAIL 271 0, // 266 SDL_SCANCODE_CALCULATOR 272 0, // 267 SDL_SCANCODE_COMPUTER 273 0, // 268 SDL_SCANCODE_AC_SEARCH 274 0, // 269 SDL_SCANCODE_AC_HOME 275 0, // 270 SDL_SCANCODE_AC_BACK 276 0, // 271 SDL_SCANCODE_AC_FORWARD 277 0, // 272 SDL_SCANCODE_AC_STOP 278 0, // 273 SDL_SCANCODE_AC_REFRESH 279 0, // 274 SDL_SCANCODE_AC_BOOKMARKS 280 0, // 275 SDL_SCANCODE_BRIGHTNESSDOWN 281 0, // 276 SDL_SCANCODE_BRIGHTNESSUP 282 0, // 277 SDL_SCANCODE_DISPLAYSWITCH 283 0, // 278 SDL_SCANCODE_KBDILLUMTOGGLE 284 0, // 279 SDL_SCANCODE_KBDILLUMDOWN 285 0, // 280 SDL_SCANCODE_KBDILLUMUP 286 0, // 281 SDL_SCANCODE_EJECT 287 0, // 282 SDL_SCANCODE_SLEEP 288 FS_ML_KEY_APP1, // SDL_SCANCODE_APP1 = 283, 289 FS_ML_KEY_APP2, // SDL_SCANCODE_APP2 = 284, 290 }; 291 292 #define LAST_SDL2_SCANCODE 282 293