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