1/*
2 Simple DirectMedia Layer
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
4
5 This software is provided 'as-is', without any express or implied
6 warranty. In no event will the authors be held liable for any damages
7 arising from the use of this software.
8
9 Permission is granted to anyone to use this software for any purpose,
10 including commercial applications, and to alter it and redistribute it
11 freely, subject to the following restrictions:
12
13 1. The origin of this software must not be misrepresented; you must not
14 claim that you wrote the original software. If you use this software
15 in a product, an acknowledgment in the product documentation would be
16 appreciated but is not required.
17 2. Altered source versions must be plainly marked as such, and must not be
18 misrepresented as being the original software.
19 3. This notice may not be removed or altered from any source distribution.
20*/
21#include "SDL_internal.h"
22
23/* Linux virtual key code to SDL_Keycode mapping table
24 Sources:
25 - Linux kernel source input.h
26*/
27/* *INDENT-OFF* */ // clang-format off
28static SDL_Scancode const linux_scancode_table[] = {
29 /* 0, 0x000 */ SDL_SCANCODE_UNKNOWN, // KEY_RESERVED
30 /* 1, 0x001 */ SDL_SCANCODE_ESCAPE, // KEY_ESC
31 /* 2, 0x002 */ SDL_SCANCODE_1, // KEY_1
32 /* 3, 0x003 */ SDL_SCANCODE_2, // KEY_2
33 /* 4, 0x004 */ SDL_SCANCODE_3, // KEY_3
34 /* 5, 0x005 */ SDL_SCANCODE_4, // KEY_4
35 /* 6, 0x006 */ SDL_SCANCODE_5, // KEY_5
36 /* 7, 0x007 */ SDL_SCANCODE_6, // KEY_6
37 /* 8, 0x008 */ SDL_SCANCODE_7, // KEY_7
38 /* 9, 0x009 */ SDL_SCANCODE_8, // KEY_8
39 /* 10, 0x00a */ SDL_SCANCODE_9, // KEY_9
40 /* 11, 0x00b */ SDL_SCANCODE_0, // KEY_0
41 /* 12, 0x00c */ SDL_SCANCODE_MINUS, // KEY_MINUS
42 /* 13, 0x00d */ SDL_SCANCODE_EQUALS, // KEY_EQUAL
43 /* 14, 0x00e */ SDL_SCANCODE_BACKSPACE, // KEY_BACKSPACE
44 /* 15, 0x00f */ SDL_SCANCODE_TAB, // KEY_TAB
45 /* 16, 0x010 */ SDL_SCANCODE_Q, // KEY_Q
46 /* 17, 0x011 */ SDL_SCANCODE_W, // KEY_W
47 /* 18, 0x012 */ SDL_SCANCODE_E, // KEY_E
48 /* 19, 0x013 */ SDL_SCANCODE_R, // KEY_R
49 /* 20, 0x014 */ SDL_SCANCODE_T, // KEY_T
50 /* 21, 0x015 */ SDL_SCANCODE_Y, // KEY_Y
51 /* 22, 0x016 */ SDL_SCANCODE_U, // KEY_U
52 /* 23, 0x017 */ SDL_SCANCODE_I, // KEY_I
53 /* 24, 0x018 */ SDL_SCANCODE_O, // KEY_O
54 /* 25, 0x019 */ SDL_SCANCODE_P, // KEY_P
55 /* 26, 0x01a */ SDL_SCANCODE_LEFTBRACKET, // KEY_LEFTBRACE
56 /* 27, 0x01b */ SDL_SCANCODE_RIGHTBRACKET, // KEY_RIGHTBRACE
57 /* 28, 0x01c */ SDL_SCANCODE_RETURN, // KEY_ENTER
58 /* 29, 0x01d */ SDL_SCANCODE_LCTRL, // KEY_LEFTCTRL
59 /* 30, 0x01e */ SDL_SCANCODE_A, // KEY_A
60 /* 31, 0x01f */ SDL_SCANCODE_S, // KEY_S
61 /* 32, 0x020 */ SDL_SCANCODE_D, // KEY_D
62 /* 33, 0x021 */ SDL_SCANCODE_F, // KEY_F
63 /* 34, 0x022 */ SDL_SCANCODE_G, // KEY_G
64 /* 35, 0x023 */ SDL_SCANCODE_H, // KEY_H
65 /* 36, 0x024 */ SDL_SCANCODE_J, // KEY_J
66 /* 37, 0x025 */ SDL_SCANCODE_K, // KEY_K
67 /* 38, 0x026 */ SDL_SCANCODE_L, // KEY_L
68 /* 39, 0x027 */ SDL_SCANCODE_SEMICOLON, // KEY_SEMICOLON
69 /* 40, 0x028 */ SDL_SCANCODE_APOSTROPHE, // KEY_APOSTROPHE
70 /* 41, 0x029 */ SDL_SCANCODE_GRAVE, // KEY_GRAVE
71 /* 42, 0x02a */ SDL_SCANCODE_LSHIFT, // KEY_LEFTSHIFT
72 /* 43, 0x02b */ SDL_SCANCODE_BACKSLASH, // KEY_BACKSLASH
73 /* 44, 0x02c */ SDL_SCANCODE_Z, // KEY_Z
74 /* 45, 0x02d */ SDL_SCANCODE_X, // KEY_X
75 /* 46, 0x02e */ SDL_SCANCODE_C, // KEY_C
76 /* 47, 0x02f */ SDL_SCANCODE_V, // KEY_V
77 /* 48, 0x030 */ SDL_SCANCODE_B, // KEY_B
78 /* 49, 0x031 */ SDL_SCANCODE_N, // KEY_N
79 /* 50, 0x032 */ SDL_SCANCODE_M, // KEY_M
80 /* 51, 0x033 */ SDL_SCANCODE_COMMA, // KEY_COMMA
81 /* 52, 0x034 */ SDL_SCANCODE_PERIOD, // KEY_DOT
82 /* 53, 0x035 */ SDL_SCANCODE_SLASH, // KEY_SLASH
83 /* 54, 0x036 */ SDL_SCANCODE_RSHIFT, // KEY_RIGHTSHIFT
84 /* 55, 0x037 */ SDL_SCANCODE_KP_MULTIPLY, // KEY_KPASTERISK
85 /* 56, 0x038 */ SDL_SCANCODE_LALT, // KEY_LEFTALT
86 /* 57, 0x039 */ SDL_SCANCODE_SPACE, // KEY_SPACE
87 /* 58, 0x03a */ SDL_SCANCODE_CAPSLOCK, // KEY_CAPSLOCK
88 /* 59, 0x03b */ SDL_SCANCODE_F1, // KEY_F1
89 /* 60, 0x03c */ SDL_SCANCODE_F2, // KEY_F2
90 /* 61, 0x03d */ SDL_SCANCODE_F3, // KEY_F3
91 /* 62, 0x03e */ SDL_SCANCODE_F4, // KEY_F4
92 /* 63, 0x03f */ SDL_SCANCODE_F5, // KEY_F5
93 /* 64, 0x040 */ SDL_SCANCODE_F6, // KEY_F6
94 /* 65, 0x041 */ SDL_SCANCODE_F7, // KEY_F7
95 /* 66, 0x042 */ SDL_SCANCODE_F8, // KEY_F8
96 /* 67, 0x043 */ SDL_SCANCODE_F9, // KEY_F9
97 /* 68, 0x044 */ SDL_SCANCODE_F10, // KEY_F10
98 /* 69, 0x045 */ SDL_SCANCODE_NUMLOCKCLEAR, // KEY_NUMLOCK
99 /* 70, 0x046 */ SDL_SCANCODE_SCROLLLOCK, // KEY_SCROLLLOCK
100 /* 71, 0x047 */ SDL_SCANCODE_KP_7, // KEY_KP7
101 /* 72, 0x048 */ SDL_SCANCODE_KP_8, // KEY_KP8
102 /* 73, 0x049 */ SDL_SCANCODE_KP_9, // KEY_KP9
103 /* 74, 0x04a */ SDL_SCANCODE_KP_MINUS, // KEY_KPMINUS
104 /* 75, 0x04b */ SDL_SCANCODE_KP_4, // KEY_KP4
105 /* 76, 0x04c */ SDL_SCANCODE_KP_5, // KEY_KP5
106 /* 77, 0x04d */ SDL_SCANCODE_KP_6, // KEY_KP6
107 /* 78, 0x04e */ SDL_SCANCODE_KP_PLUS, // KEY_KPPLUS
108 /* 79, 0x04f */ SDL_SCANCODE_KP_1, // KEY_KP1
109 /* 80, 0x050 */ SDL_SCANCODE_KP_2, // KEY_KP2
110 /* 81, 0x051 */ SDL_SCANCODE_KP_3, // KEY_KP3
111 /* 82, 0x052 */ SDL_SCANCODE_KP_0, // KEY_KP0
112 /* 83, 0x053 */ SDL_SCANCODE_KP_PERIOD, // KEY_KPDOT
113 /* 84, 0x054 */ SDL_SCANCODE_UNKNOWN,
114 /* 85, 0x055 */ SDL_SCANCODE_LANG5, // KEY_ZENKAKUHANKAKU
115 /* 86, 0x056 */ SDL_SCANCODE_NONUSBACKSLASH, // KEY_102ND
116 /* 87, 0x057 */ SDL_SCANCODE_F11, // KEY_F11
117 /* 88, 0x058 */ SDL_SCANCODE_F12, // KEY_F12
118 /* 89, 0x059 */ SDL_SCANCODE_INTERNATIONAL1, // KEY_RO
119 /* 90, 0x05a */ SDL_SCANCODE_LANG3, // KEY_KATAKANA
120 /* 91, 0x05b */ SDL_SCANCODE_LANG4, // KEY_HIRAGANA
121 /* 92, 0x05c */ SDL_SCANCODE_INTERNATIONAL4, // KEY_HENKAN
122 /* 93, 0x05d */ SDL_SCANCODE_INTERNATIONAL2, // KEY_KATAKANAHIRAGANA
123 /* 94, 0x05e */ SDL_SCANCODE_INTERNATIONAL5, // KEY_MUHENKAN
124 /* 95, 0x05f */ SDL_SCANCODE_INTERNATIONAL5, // KEY_KPJPCOMMA
125 /* 96, 0x060 */ SDL_SCANCODE_KP_ENTER, // KEY_KPENTER
126 /* 97, 0x061 */ SDL_SCANCODE_RCTRL, // KEY_RIGHTCTRL
127 /* 98, 0x062 */ SDL_SCANCODE_KP_DIVIDE, // KEY_KPSLASH
128 /* 99, 0x063 */ SDL_SCANCODE_SYSREQ, // KEY_SYSRQ
129 /* 100, 0x064 */ SDL_SCANCODE_RALT, // KEY_RIGHTALT
130 /* 101, 0x065 */ SDL_SCANCODE_UNKNOWN, // KEY_LINEFEED
131 /* 102, 0x066 */ SDL_SCANCODE_HOME, // KEY_HOME
132 /* 103, 0x067 */ SDL_SCANCODE_UP, // KEY_UP
133 /* 104, 0x068 */ SDL_SCANCODE_PAGEUP, // KEY_PAGEUP
134 /* 105, 0x069 */ SDL_SCANCODE_LEFT, // KEY_LEFT
135 /* 106, 0x06a */ SDL_SCANCODE_RIGHT, // KEY_RIGHT
136 /* 107, 0x06b */ SDL_SCANCODE_END, // KEY_END
137 /* 108, 0x06c */ SDL_SCANCODE_DOWN, // KEY_DOWN
138 /* 109, 0x06d */ SDL_SCANCODE_PAGEDOWN, // KEY_PAGEDOWN
139 /* 110, 0x06e */ SDL_SCANCODE_INSERT, // KEY_INSERT
140 /* 111, 0x06f */ SDL_SCANCODE_DELETE, // KEY_DELETE
141 /* 112, 0x070 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO
142 /* 113, 0x071 */ SDL_SCANCODE_MUTE, // KEY_MUTE
143 /* 114, 0x072 */ SDL_SCANCODE_VOLUMEDOWN, // KEY_VOLUMEDOWN
144 /* 115, 0x073 */ SDL_SCANCODE_VOLUMEUP, // KEY_VOLUMEUP
145 /* 116, 0x074 */ SDL_SCANCODE_POWER, // KEY_POWER
146 /* 117, 0x075 */ SDL_SCANCODE_KP_EQUALS, // KEY_KPEQUAL
147 /* 118, 0x076 */ SDL_SCANCODE_KP_PLUSMINUS, // KEY_KPPLUSMINUS
148 /* 119, 0x077 */ SDL_SCANCODE_PAUSE, // KEY_PAUSE
149 /* 120, 0x078 */ SDL_SCANCODE_UNKNOWN, // KEY_SCALE
150 /* 121, 0x079 */ SDL_SCANCODE_KP_COMMA, // KEY_KPCOMMA
151 /* 122, 0x07a */ SDL_SCANCODE_LANG1, // KEY_HANGEUL
152 /* 123, 0x07b */ SDL_SCANCODE_LANG2, // KEY_HANJA
153 /* 124, 0x07c */ SDL_SCANCODE_INTERNATIONAL3, // KEY_YEN
154 /* 125, 0x07d */ SDL_SCANCODE_LGUI, // KEY_LEFTMETA
155 /* 126, 0x07e */ SDL_SCANCODE_RGUI, // KEY_RIGHTMETA
156 /* 127, 0x07f */ SDL_SCANCODE_APPLICATION, // KEY_COMPOSE
157 /* 128, 0x080 */ SDL_SCANCODE_STOP, // KEY_STOP
158 /* 129, 0x081 */ SDL_SCANCODE_AGAIN, // KEY_AGAIN
159 /* 130, 0x082 */ SDL_SCANCODE_AC_PROPERTIES, // KEY_PROPS
160 /* 131, 0x083 */ SDL_SCANCODE_UNDO, // KEY_UNDO
161 /* 132, 0x084 */ SDL_SCANCODE_UNKNOWN, // KEY_FRONT
162 /* 133, 0x085 */ SDL_SCANCODE_COPY, // KEY_COPY
163 /* 134, 0x086 */ SDL_SCANCODE_AC_OPEN, // KEY_OPEN
164 /* 135, 0x087 */ SDL_SCANCODE_PASTE, // KEY_PASTE
165 /* 136, 0x088 */ SDL_SCANCODE_FIND, // KEY_FIND
166 /* 137, 0x089 */ SDL_SCANCODE_CUT, // KEY_CUT
167 /* 138, 0x08a */ SDL_SCANCODE_HELP, // KEY_HELP
168 /* 139, 0x08b */ SDL_SCANCODE_MENU, // KEY_MENU
169 /* 140, 0x08c */ SDL_SCANCODE_UNKNOWN, // KEY_CALC
170 /* 141, 0x08d */ SDL_SCANCODE_UNKNOWN, // KEY_SETUP
171 /* 142, 0x08e */ SDL_SCANCODE_SLEEP, // KEY_SLEEP
172 /* 143, 0x08f */ SDL_SCANCODE_WAKE, // KEY_WAKEUP
173 /* 144, 0x090 */ SDL_SCANCODE_UNKNOWN, // KEY_FILE
174 /* 145, 0x091 */ SDL_SCANCODE_UNKNOWN, // KEY_SENDFILE
175 /* 146, 0x092 */ SDL_SCANCODE_UNKNOWN, // KEY_DELETEFILE
176 /* 147, 0x093 */ SDL_SCANCODE_UNKNOWN, // KEY_XFER
177 /* 148, 0x094 */ SDL_SCANCODE_UNKNOWN, // KEY_PROG1
178 /* 149, 0x095 */ SDL_SCANCODE_UNKNOWN, // KEY_PROG2
179 /* 150, 0x096 */ SDL_SCANCODE_UNKNOWN, // KEY_WWW
180 /* 151, 0x097 */ SDL_SCANCODE_UNKNOWN, // KEY_MSDOS
181 /* 152, 0x098 */ SDL_SCANCODE_UNKNOWN, // KEY_COFFEE
182 /* 153, 0x099 */ SDL_SCANCODE_UNKNOWN, // KEY_ROTATE_DISPLAY
183 /* 154, 0x09a */ SDL_SCANCODE_UNKNOWN, // KEY_CYCLEWINDOWS
184 /* 155, 0x09b */ SDL_SCANCODE_UNKNOWN, // KEY_MAIL
185 /* 156, 0x09c */ SDL_SCANCODE_AC_BOOKMARKS, // KEY_BOOKMARKS
186 /* 157, 0x09d */ SDL_SCANCODE_UNKNOWN, // KEY_COMPUTER
187 /* 158, 0x09e */ SDL_SCANCODE_AC_BACK, // KEY_BACK
188 /* 159, 0x09f */ SDL_SCANCODE_AC_FORWARD, // KEY_FORWARD
189 /* 160, 0x0a0 */ SDL_SCANCODE_UNKNOWN, // KEY_CLOSECD
190 /* 161, 0x0a1 */ SDL_SCANCODE_MEDIA_EJECT, // KEY_EJECTCD
191 /* 162, 0x0a2 */ SDL_SCANCODE_MEDIA_EJECT, // KEY_EJECTCLOSECD
192 /* 163, 0x0a3 */ SDL_SCANCODE_MEDIA_NEXT_TRACK, // KEY_NEXTSONG
193 /* 164, 0x0a4 */ SDL_SCANCODE_MEDIA_PLAY_PAUSE, // KEY_PLAYPAUSE
194 /* 165, 0x0a5 */ SDL_SCANCODE_MEDIA_PREVIOUS_TRACK, // KEY_PREVIOUSSONG
195 /* 166, 0x0a6 */ SDL_SCANCODE_MEDIA_STOP, // KEY_STOPCD
196 /* 167, 0x0a7 */ SDL_SCANCODE_MEDIA_RECORD, // KEY_RECORD
197 /* 168, 0x0a8 */ SDL_SCANCODE_MEDIA_REWIND, // KEY_REWIND
198 /* 169, 0x0a9 */ SDL_SCANCODE_UNKNOWN, // KEY_PHONE
199 /* 170, 0x0aa */ SDL_SCANCODE_UNKNOWN, // KEY_ISO
200 /* 171, 0x0ab */ SDL_SCANCODE_UNKNOWN, // KEY_CONFIG
201 /* 172, 0x0ac */ SDL_SCANCODE_AC_HOME, // KEY_HOMEPAGE
202 /* 173, 0x0ad */ SDL_SCANCODE_AC_REFRESH, // KEY_REFRESH
203 /* 174, 0x0ae */ SDL_SCANCODE_AC_EXIT, // KEY_EXIT
204 /* 175, 0x0af */ SDL_SCANCODE_UNKNOWN, // KEY_MOVE
205 /* 176, 0x0b0 */ SDL_SCANCODE_UNKNOWN, // KEY_EDIT
206 /* 177, 0x0b1 */ SDL_SCANCODE_UNKNOWN, // KEY_SCROLLUP
207 /* 178, 0x0b2 */ SDL_SCANCODE_UNKNOWN, // KEY_SCROLLDOWN
208 /* 179, 0x0b3 */ SDL_SCANCODE_KP_LEFTPAREN, // KEY_KPLEFTPAREN
209 /* 180, 0x0b4 */ SDL_SCANCODE_KP_RIGHTPAREN, // KEY_KPRIGHTPAREN
210 /* 181, 0x0b5 */ SDL_SCANCODE_AC_NEW, // KEY_NEW
211 /* 182, 0x0b6 */ SDL_SCANCODE_AGAIN, // KEY_REDO
212 /* 183, 0x0b7 */ SDL_SCANCODE_F13, // KEY_F13
213 /* 184, 0x0b8 */ SDL_SCANCODE_F14, // KEY_F14
214 /* 185, 0x0b9 */ SDL_SCANCODE_F15, // KEY_F15
215 /* 186, 0x0ba */ SDL_SCANCODE_F16, // KEY_F16
216 /* 187, 0x0bb */ SDL_SCANCODE_F17, // KEY_F17
217 /* 188, 0x0bc */ SDL_SCANCODE_F18, // KEY_F18
218 /* 189, 0x0bd */ SDL_SCANCODE_F19, // KEY_F19
219 /* 190, 0x0be */ SDL_SCANCODE_F20, // KEY_F20
220 /* 191, 0x0bf */ SDL_SCANCODE_F21, // KEY_F21
221 /* 192, 0x0c0 */ SDL_SCANCODE_F22, // KEY_F22
222 /* 193, 0x0c1 */ SDL_SCANCODE_F23, // KEY_F23
223 /* 194, 0x0c2 */ SDL_SCANCODE_F24, // KEY_F24
224 /* 195, 0x0c3 */ SDL_SCANCODE_UNKNOWN,
225 /* 196, 0x0c4 */ SDL_SCANCODE_UNKNOWN,
226 /* 197, 0x0c5 */ SDL_SCANCODE_UNKNOWN,
227 /* 198, 0x0c6 */ SDL_SCANCODE_UNKNOWN,
228 /* 199, 0x0c7 */ SDL_SCANCODE_UNKNOWN,
229 /* 200, 0x0c8 */ SDL_SCANCODE_MEDIA_PLAY, // KEY_PLAYCD
230 /* 201, 0x0c9 */ SDL_SCANCODE_MEDIA_PAUSE, // KEY_PAUSECD
231 /* 202, 0x0ca */ SDL_SCANCODE_UNKNOWN, // KEY_PROG3
232 /* 203, 0x0cb */ SDL_SCANCODE_UNKNOWN, // KEY_PROG4
233 /* 204, 0x0cc */ SDL_SCANCODE_UNKNOWN, // KEY_ALL_APPLICATIONS
234 /* 205, 0x0cd */ SDL_SCANCODE_UNKNOWN, // KEY_SUSPEND
235 /* 206, 0x0ce */ SDL_SCANCODE_AC_CLOSE, // KEY_CLOSE
236 /* 207, 0x0cf */ SDL_SCANCODE_MEDIA_PLAY, // KEY_PLAY
237 /* 208, 0x0d0 */ SDL_SCANCODE_MEDIA_FAST_FORWARD, // KEY_FASTFORWARD
238 /* 209, 0x0d1 */ SDL_SCANCODE_UNKNOWN, // KEY_BASSBOOST
239 /* 210, 0x0d2 */ SDL_SCANCODE_PRINTSCREEN, // KEY_PRINT
240 /* 211, 0x0d3 */ SDL_SCANCODE_UNKNOWN, // KEY_HP
241 /* 212, 0x0d4 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA
242 /* 213, 0x0d5 */ SDL_SCANCODE_UNKNOWN, // KEY_SOUND
243 /* 214, 0x0d6 */ SDL_SCANCODE_UNKNOWN, // KEY_QUESTION
244 /* 215, 0x0d7 */ SDL_SCANCODE_UNKNOWN, // KEY_EMAIL
245 /* 216, 0x0d8 */ SDL_SCANCODE_UNKNOWN, // KEY_CHAT
246 /* 217, 0x0d9 */ SDL_SCANCODE_AC_SEARCH, // KEY_SEARCH
247 /* 218, 0x0da */ SDL_SCANCODE_UNKNOWN, // KEY_CONNECT
248 /* 219, 0x0db */ SDL_SCANCODE_UNKNOWN, // KEY_FINANCE
249 /* 220, 0x0dc */ SDL_SCANCODE_UNKNOWN, // KEY_SPORT
250 /* 221, 0x0dd */ SDL_SCANCODE_UNKNOWN, // KEY_SHOP
251 /* 222, 0x0de */ SDL_SCANCODE_ALTERASE, // KEY_ALTERASE
252 /* 223, 0x0df */ SDL_SCANCODE_CANCEL, // KEY_CANCEL
253 /* 224, 0x0e0 */ SDL_SCANCODE_UNKNOWN, // KEY_BRIGHTNESSDOWN
254 /* 225, 0x0e1 */ SDL_SCANCODE_UNKNOWN, // KEY_BRIGHTNESSUP
255 /* 226, 0x0e2 */ SDL_SCANCODE_MEDIA_SELECT, // KEY_MEDIA
256 /* 227, 0x0e3 */ SDL_SCANCODE_UNKNOWN, // KEY_SWITCHVIDEOMODE
257 /* 228, 0x0e4 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDILLUMTOGGLE
258 /* 229, 0x0e5 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDILLUMDOWN
259 /* 230, 0x0e6 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDILLUMUP
260 /* 231, 0x0e7 */ SDL_SCANCODE_UNKNOWN, // KEY_SEND
261 /* 232, 0x0e8 */ SDL_SCANCODE_UNKNOWN, // KEY_REPLY
262 /* 233, 0x0e9 */ SDL_SCANCODE_UNKNOWN, // KEY_FORWARDMAIL
263 /* 234, 0x0ea */ SDL_SCANCODE_AC_SAVE, // KEY_SAVE
264 /* 235, 0x0eb */ SDL_SCANCODE_UNKNOWN, // KEY_DOCUMENTS
265 /* 236, 0x0ec */ SDL_SCANCODE_UNKNOWN, // KEY_BATTERY
266 /* 237, 0x0ed */ SDL_SCANCODE_UNKNOWN, // KEY_BLUETOOTH
267 /* 238, 0x0ee */ SDL_SCANCODE_UNKNOWN, // KEY_WLAN
268 /* 239, 0x0ef */ SDL_SCANCODE_UNKNOWN, // KEY_UWB
269 /* 240, 0x0f0 */ SDL_SCANCODE_UNKNOWN, // KEY_UNKNOWN
270 /* 241, 0x0f1 */ SDL_SCANCODE_UNKNOWN, // KEY_VIDEO_NEXT
271 /* 242, 0x0f2 */ SDL_SCANCODE_UNKNOWN, // KEY_VIDEO_PREV
272 /* 243, 0x0f3 */ SDL_SCANCODE_UNKNOWN, // KEY_BRIGHTNESS_CYCLE
273 /* 244, 0x0f4 */ SDL_SCANCODE_UNKNOWN, // KEY_BRIGHTNESS_AUTO
274 /* 245, 0x0f5 */ SDL_SCANCODE_UNKNOWN, // KEY_DISPLAY_OFF
275 /* 246, 0x0f6 */ SDL_SCANCODE_UNKNOWN, // KEY_WWAN
276 /* 247, 0x0f7 */ SDL_SCANCODE_UNKNOWN, // KEY_RFKILL
277 /* 248, 0x0f8 */ SDL_SCANCODE_UNKNOWN, // KEY_MICMUTE
278 /* 249, 0x0f9 */ SDL_SCANCODE_UNKNOWN,
279 /* 250, 0x0fa */ SDL_SCANCODE_UNKNOWN,
280 /* 251, 0x0fb */ SDL_SCANCODE_UNKNOWN,
281 /* 252, 0x0fc */ SDL_SCANCODE_UNKNOWN,
282 /* 253, 0x0fd */ SDL_SCANCODE_UNKNOWN,
283 /* 254, 0x0fe */ SDL_SCANCODE_UNKNOWN,
284 /* 255, 0x0ff */ SDL_SCANCODE_UNKNOWN,
285 /* 256, 0x100 */ SDL_SCANCODE_UNKNOWN,
286 /* 257, 0x101 */ SDL_SCANCODE_UNKNOWN,
287 /* 258, 0x102 */ SDL_SCANCODE_UNKNOWN,
288 /* 259, 0x103 */ SDL_SCANCODE_UNKNOWN,
289 /* 260, 0x104 */ SDL_SCANCODE_UNKNOWN,
290 /* 261, 0x105 */ SDL_SCANCODE_UNKNOWN,
291 /* 262, 0x106 */ SDL_SCANCODE_UNKNOWN,
292 /* 263, 0x107 */ SDL_SCANCODE_UNKNOWN,
293 /* 264, 0x108 */ SDL_SCANCODE_UNKNOWN,
294 /* 265, 0x109 */ SDL_SCANCODE_UNKNOWN,
295 /* 266, 0x10a */ SDL_SCANCODE_UNKNOWN,
296 /* 267, 0x10b */ SDL_SCANCODE_UNKNOWN,
297 /* 268, 0x10c */ SDL_SCANCODE_UNKNOWN,
298 /* 269, 0x10d */ SDL_SCANCODE_UNKNOWN,
299 /* 270, 0x10e */ SDL_SCANCODE_UNKNOWN,
300 /* 271, 0x10f */ SDL_SCANCODE_UNKNOWN,
301 /* 272, 0x110 */ SDL_SCANCODE_UNKNOWN,
302 /* 273, 0x111 */ SDL_SCANCODE_UNKNOWN,
303 /* 274, 0x112 */ SDL_SCANCODE_UNKNOWN,
304 /* 275, 0x113 */ SDL_SCANCODE_UNKNOWN,
305 /* 276, 0x114 */ SDL_SCANCODE_UNKNOWN,
306 /* 277, 0x115 */ SDL_SCANCODE_UNKNOWN,
307 /* 278, 0x116 */ SDL_SCANCODE_UNKNOWN,
308 /* 279, 0x117 */ SDL_SCANCODE_UNKNOWN,
309 /* 280, 0x118 */ SDL_SCANCODE_UNKNOWN,
310 /* 281, 0x119 */ SDL_SCANCODE_UNKNOWN,
311 /* 282, 0x11a */ SDL_SCANCODE_UNKNOWN,
312 /* 283, 0x11b */ SDL_SCANCODE_UNKNOWN,
313 /* 284, 0x11c */ SDL_SCANCODE_UNKNOWN,
314 /* 285, 0x11d */ SDL_SCANCODE_UNKNOWN,
315 /* 286, 0x11e */ SDL_SCANCODE_UNKNOWN,
316 /* 287, 0x11f */ SDL_SCANCODE_UNKNOWN,
317 /* 288, 0x120 */ SDL_SCANCODE_UNKNOWN,
318 /* 289, 0x121 */ SDL_SCANCODE_UNKNOWN,
319 /* 290, 0x122 */ SDL_SCANCODE_UNKNOWN,
320 /* 291, 0x123 */ SDL_SCANCODE_UNKNOWN,
321 /* 292, 0x124 */ SDL_SCANCODE_UNKNOWN,
322 /* 293, 0x125 */ SDL_SCANCODE_UNKNOWN,
323 /* 294, 0x126 */ SDL_SCANCODE_UNKNOWN,
324 /* 295, 0x127 */ SDL_SCANCODE_UNKNOWN,
325 /* 296, 0x128 */ SDL_SCANCODE_UNKNOWN,
326 /* 297, 0x129 */ SDL_SCANCODE_UNKNOWN,
327 /* 298, 0x12a */ SDL_SCANCODE_UNKNOWN,
328 /* 299, 0x12b */ SDL_SCANCODE_UNKNOWN,
329 /* 300, 0x12c */ SDL_SCANCODE_UNKNOWN,
330 /* 301, 0x12d */ SDL_SCANCODE_UNKNOWN,
331 /* 302, 0x12e */ SDL_SCANCODE_UNKNOWN,
332 /* 303, 0x12f */ SDL_SCANCODE_UNKNOWN,
333 /* 304, 0x130 */ SDL_SCANCODE_UNKNOWN,
334 /* 305, 0x131 */ SDL_SCANCODE_UNKNOWN,
335 /* 306, 0x132 */ SDL_SCANCODE_UNKNOWN,
336 /* 307, 0x133 */ SDL_SCANCODE_UNKNOWN,
337 /* 308, 0x134 */ SDL_SCANCODE_UNKNOWN,
338 /* 309, 0x135 */ SDL_SCANCODE_UNKNOWN,
339 /* 310, 0x136 */ SDL_SCANCODE_UNKNOWN,
340 /* 311, 0x137 */ SDL_SCANCODE_UNKNOWN,
341 /* 312, 0x138 */ SDL_SCANCODE_UNKNOWN,
342 /* 313, 0x139 */ SDL_SCANCODE_UNKNOWN,
343 /* 314, 0x13a */ SDL_SCANCODE_UNKNOWN,
344 /* 315, 0x13b */ SDL_SCANCODE_UNKNOWN,
345 /* 316, 0x13c */ SDL_SCANCODE_UNKNOWN,
346 /* 317, 0x13d */ SDL_SCANCODE_UNKNOWN,
347 /* 318, 0x13e */ SDL_SCANCODE_UNKNOWN,
348 /* 319, 0x13f */ SDL_SCANCODE_UNKNOWN,
349 /* 320, 0x140 */ SDL_SCANCODE_UNKNOWN,
350 /* 321, 0x141 */ SDL_SCANCODE_UNKNOWN,
351 /* 322, 0x142 */ SDL_SCANCODE_UNKNOWN,
352 /* 323, 0x143 */ SDL_SCANCODE_UNKNOWN,
353 /* 324, 0x144 */ SDL_SCANCODE_UNKNOWN,
354 /* 325, 0x145 */ SDL_SCANCODE_UNKNOWN,
355 /* 326, 0x146 */ SDL_SCANCODE_UNKNOWN,
356 /* 327, 0x147 */ SDL_SCANCODE_UNKNOWN,
357 /* 328, 0x148 */ SDL_SCANCODE_UNKNOWN,
358 /* 329, 0x149 */ SDL_SCANCODE_UNKNOWN,
359 /* 330, 0x14a */ SDL_SCANCODE_UNKNOWN,
360 /* 331, 0x14b */ SDL_SCANCODE_UNKNOWN,
361 /* 332, 0x14c */ SDL_SCANCODE_UNKNOWN,
362 /* 333, 0x14d */ SDL_SCANCODE_UNKNOWN,
363 /* 334, 0x14e */ SDL_SCANCODE_UNKNOWN,
364 /* 335, 0x14f */ SDL_SCANCODE_UNKNOWN,
365 /* 336, 0x150 */ SDL_SCANCODE_UNKNOWN,
366 /* 337, 0x151 */ SDL_SCANCODE_UNKNOWN,
367 /* 338, 0x152 */ SDL_SCANCODE_UNKNOWN,
368 /* 339, 0x153 */ SDL_SCANCODE_UNKNOWN,
369 /* 340, 0x154 */ SDL_SCANCODE_UNKNOWN,
370 /* 341, 0x155 */ SDL_SCANCODE_UNKNOWN,
371 /* 342, 0x156 */ SDL_SCANCODE_UNKNOWN,
372 /* 343, 0x157 */ SDL_SCANCODE_UNKNOWN,
373 /* 344, 0x158 */ SDL_SCANCODE_UNKNOWN,
374 /* 345, 0x159 */ SDL_SCANCODE_UNKNOWN,
375 /* 346, 0x15a */ SDL_SCANCODE_UNKNOWN,
376 /* 347, 0x15b */ SDL_SCANCODE_UNKNOWN,
377 /* 348, 0x15c */ SDL_SCANCODE_UNKNOWN,
378 /* 349, 0x15d */ SDL_SCANCODE_UNKNOWN,
379 /* 350, 0x15e */ SDL_SCANCODE_UNKNOWN,
380 /* 351, 0x15f */ SDL_SCANCODE_UNKNOWN,
381 /* 352, 0x160 */ SDL_SCANCODE_UNKNOWN, // KEY_OK
382 /* 353, 0x161 */ SDL_SCANCODE_SELECT, // KEY_SELECT
383 /* 354, 0x162 */ SDL_SCANCODE_UNKNOWN, // KEY_GOTO
384 /* 355, 0x163 */ SDL_SCANCODE_CLEAR, // KEY_CLEAR
385 /* 356, 0x164 */ SDL_SCANCODE_UNKNOWN, // KEY_POWER2
386 /* 357, 0x165 */ SDL_SCANCODE_UNKNOWN, // KEY_OPTION
387 /* 358, 0x166 */ SDL_SCANCODE_UNKNOWN, // KEY_INFO
388 /* 359, 0x167 */ SDL_SCANCODE_UNKNOWN, // KEY_TIME
389 /* 360, 0x168 */ SDL_SCANCODE_UNKNOWN, // KEY_VENDOR
390 /* 361, 0x169 */ SDL_SCANCODE_UNKNOWN, // KEY_ARCHIVE
391 /* 362, 0x16a */ SDL_SCANCODE_UNKNOWN, // KEY_PROGRAM
392 /* 363, 0x16b */ SDL_SCANCODE_UNKNOWN, // KEY_CHANNEL
393 /* 364, 0x16c */ SDL_SCANCODE_UNKNOWN, // KEY_FAVORITES
394 /* 365, 0x16d */ SDL_SCANCODE_UNKNOWN, // KEY_EPG
395 /* 366, 0x16e */ SDL_SCANCODE_UNKNOWN, // KEY_PVR
396 /* 367, 0x16f */ SDL_SCANCODE_UNKNOWN, // KEY_MHP
397 /* 368, 0x170 */ SDL_SCANCODE_UNKNOWN, // KEY_LANGUAGE
398 /* 369, 0x171 */ SDL_SCANCODE_UNKNOWN, // KEY_TITLE
399 /* 370, 0x172 */ SDL_SCANCODE_UNKNOWN, // KEY_SUBTITLE
400 /* 371, 0x173 */ SDL_SCANCODE_UNKNOWN, // KEY_ANGLE
401 /* 372, 0x174 */ SDL_SCANCODE_UNKNOWN, // KEY_FULL_SCREEN
402 /* 373, 0x175 */ SDL_SCANCODE_MODE, // KEY_MODE
403 /* 374, 0x176 */ SDL_SCANCODE_UNKNOWN, // KEY_KEYBOARD
404 /* 375, 0x177 */ SDL_SCANCODE_UNKNOWN, // KEY_ASPECT_RATIO
405 /* 376, 0x178 */ SDL_SCANCODE_UNKNOWN, // KEY_PC
406 /* 377, 0x179 */ SDL_SCANCODE_UNKNOWN, // KEY_TV
407 /* 378, 0x17a */ SDL_SCANCODE_UNKNOWN, // KEY_TV2
408 /* 379, 0x17b */ SDL_SCANCODE_UNKNOWN, // KEY_VCR
409 /* 380, 0x17c */ SDL_SCANCODE_UNKNOWN, // KEY_VCR2
410 /* 381, 0x17d */ SDL_SCANCODE_UNKNOWN, // KEY_SAT
411 /* 382, 0x17e */ SDL_SCANCODE_UNKNOWN, // KEY_SAT2
412 /* 383, 0x17f */ SDL_SCANCODE_UNKNOWN, // KEY_CD
413 /* 384, 0x180 */ SDL_SCANCODE_UNKNOWN, // KEY_TAPE
414 /* 385, 0x181 */ SDL_SCANCODE_UNKNOWN, // KEY_RADIO
415 /* 386, 0x182 */ SDL_SCANCODE_UNKNOWN, // KEY_TUNER
416 /* 387, 0x183 */ SDL_SCANCODE_UNKNOWN, // KEY_PLAYER
417 /* 388, 0x184 */ SDL_SCANCODE_UNKNOWN, // KEY_TEXT
418 /* 389, 0x185 */ SDL_SCANCODE_UNKNOWN, // KEY_DVD
419 /* 390, 0x186 */ SDL_SCANCODE_UNKNOWN, // KEY_AUX
420 /* 391, 0x187 */ SDL_SCANCODE_UNKNOWN, // KEY_MP3
421 /* 392, 0x188 */ SDL_SCANCODE_UNKNOWN, // KEY_AUDIO
422 /* 393, 0x189 */ SDL_SCANCODE_UNKNOWN, // KEY_VIDEO
423 /* 394, 0x18a */ SDL_SCANCODE_UNKNOWN, // KEY_DIRECTORY
424 /* 395, 0x18b */ SDL_SCANCODE_UNKNOWN, // KEY_LIST
425 /* 396, 0x18c */ SDL_SCANCODE_UNKNOWN, // KEY_MEMO
426 /* 397, 0x18d */ SDL_SCANCODE_UNKNOWN, // KEY_CALENDAR
427 /* 398, 0x18e */ SDL_SCANCODE_UNKNOWN, // KEY_RED
428 /* 399, 0x18f */ SDL_SCANCODE_UNKNOWN, // KEY_GREEN
429 /* 400, 0x190 */ SDL_SCANCODE_UNKNOWN, // KEY_YELLOW
430 /* 401, 0x191 */ SDL_SCANCODE_UNKNOWN, // KEY_BLUE
431 /* 402, 0x192 */ SDL_SCANCODE_CHANNEL_INCREMENT, // KEY_CHANNELUP
432 /* 403, 0x193 */ SDL_SCANCODE_CHANNEL_DECREMENT, // KEY_CHANNELDOWN
433#if 0 // We don't have any mapped scancodes after this point (yet)
434 /* 404, 0x194 */ SDL_SCANCODE_UNKNOWN, // KEY_FIRST
435 /* 405, 0x195 */ SDL_SCANCODE_UNKNOWN, // KEY_LAST
436 /* 406, 0x196 */ SDL_SCANCODE_UNKNOWN, // KEY_AB
437 /* 407, 0x197 */ SDL_SCANCODE_UNKNOWN, // KEY_NEXT
438 /* 408, 0x198 */ SDL_SCANCODE_UNKNOWN, // KEY_RESTART
439 /* 409, 0x199 */ SDL_SCANCODE_UNKNOWN, // KEY_SLOW
440 /* 410, 0x19a */ SDL_SCANCODE_UNKNOWN, // KEY_SHUFFLE
441 /* 411, 0x19b */ SDL_SCANCODE_UNKNOWN, // KEY_BREAK
442 /* 412, 0x19c */ SDL_SCANCODE_UNKNOWN, // KEY_PREVIOUS
443 /* 413, 0x19d */ SDL_SCANCODE_UNKNOWN, // KEY_DIGITS
444 /* 414, 0x19e */ SDL_SCANCODE_UNKNOWN, // KEY_TEEN
445 /* 415, 0x19f */ SDL_SCANCODE_UNKNOWN, // KEY_TWEN
446 /* 416, 0x1a0 */ SDL_SCANCODE_UNKNOWN, // KEY_VIDEOPHONE
447 /* 417, 0x1a1 */ SDL_SCANCODE_UNKNOWN, // KEY_GAMES
448 /* 418, 0x1a2 */ SDL_SCANCODE_UNKNOWN, // KEY_ZOOMIN
449 /* 419, 0x1a3 */ SDL_SCANCODE_UNKNOWN, // KEY_ZOOMOUT
450 /* 420, 0x1a4 */ SDL_SCANCODE_UNKNOWN, // KEY_ZOOMRESET
451 /* 421, 0x1a5 */ SDL_SCANCODE_UNKNOWN, // KEY_WORDPROCESSOR
452 /* 422, 0x1a6 */ SDL_SCANCODE_UNKNOWN, // KEY_EDITOR
453 /* 423, 0x1a7 */ SDL_SCANCODE_UNKNOWN, // KEY_SPREADSHEET
454 /* 424, 0x1a8 */ SDL_SCANCODE_UNKNOWN, // KEY_GRAPHICSEDITOR
455 /* 425, 0x1a9 */ SDL_SCANCODE_UNKNOWN, // KEY_PRESENTATION
456 /* 426, 0x1aa */ SDL_SCANCODE_UNKNOWN, // KEY_DATABASE
457 /* 427, 0x1ab */ SDL_SCANCODE_UNKNOWN, // KEY_NEWS
458 /* 428, 0x1ac */ SDL_SCANCODE_UNKNOWN, // KEY_VOICEMAIL
459 /* 429, 0x1ad */ SDL_SCANCODE_UNKNOWN, // KEY_ADDRESSBOOK
460 /* 430, 0x1ae */ SDL_SCANCODE_UNKNOWN, // KEY_MESSENGER
461 /* 431, 0x1af */ SDL_SCANCODE_UNKNOWN, // KEY_DISPLAYTOGGLE
462 /* 432, 0x1b0 */ SDL_SCANCODE_UNKNOWN, // KEY_SPELLCHECK
463 /* 433, 0x1b1 */ SDL_SCANCODE_UNKNOWN, // KEY_LOGOFF
464 /* 434, 0x1b2 */ SDL_SCANCODE_UNKNOWN, // KEY_DOLLAR
465 /* 435, 0x1b3 */ SDL_SCANCODE_UNKNOWN, // KEY_EURO
466 /* 436, 0x1b4 */ SDL_SCANCODE_UNKNOWN, // KEY_FRAMEBACK
467 /* 437, 0x1b5 */ SDL_SCANCODE_UNKNOWN, // KEY_FRAMEFORWARD
468 /* 438, 0x1b6 */ SDL_SCANCODE_UNKNOWN, // KEY_CONTEXT_MENU
469 /* 439, 0x1b7 */ SDL_SCANCODE_UNKNOWN, // KEY_MEDIA_REPEAT
470 /* 440, 0x1b8 */ SDL_SCANCODE_UNKNOWN, // KEY_10CHANNELSUP
471 /* 441, 0x1b9 */ SDL_SCANCODE_UNKNOWN, // KEY_10CHANNELSDOWN
472 /* 442, 0x1ba */ SDL_SCANCODE_UNKNOWN, // KEY_IMAGES
473 /* 443, 0x1bb */ SDL_SCANCODE_UNKNOWN,
474 /* 444, 0x1bc */ SDL_SCANCODE_UNKNOWN, // KEY_NOTIFICATION_CENTER
475 /* 445, 0x1bd */ SDL_SCANCODE_UNKNOWN, // KEY_PICKUP_PHONE
476 /* 446, 0x1be */ SDL_SCANCODE_UNKNOWN, // KEY_HANGUP_PHONE
477 /* 447, 0x1bf */ SDL_SCANCODE_UNKNOWN,
478 /* 448, 0x1c0 */ SDL_SCANCODE_UNKNOWN, // KEY_DEL_EOL
479 /* 449, 0x1c1 */ SDL_SCANCODE_UNKNOWN, // KEY_DEL_EOS
480 /* 450, 0x1c2 */ SDL_SCANCODE_UNKNOWN, // KEY_INS_LINE
481 /* 451, 0x1c3 */ SDL_SCANCODE_UNKNOWN, // KEY_DEL_LINE
482 /* 452, 0x1c4 */ SDL_SCANCODE_UNKNOWN,
483 /* 453, 0x1c5 */ SDL_SCANCODE_UNKNOWN,
484 /* 454, 0x1c6 */ SDL_SCANCODE_UNKNOWN,
485 /* 455, 0x1c7 */ SDL_SCANCODE_UNKNOWN,
486 /* 456, 0x1c8 */ SDL_SCANCODE_UNKNOWN,
487 /* 457, 0x1c9 */ SDL_SCANCODE_UNKNOWN,
488 /* 458, 0x1ca */ SDL_SCANCODE_UNKNOWN,
489 /* 459, 0x1cb */ SDL_SCANCODE_UNKNOWN,
490 /* 460, 0x1cc */ SDL_SCANCODE_UNKNOWN,
491 /* 461, 0x1cd */ SDL_SCANCODE_UNKNOWN,
492 /* 462, 0x1ce */ SDL_SCANCODE_UNKNOWN,
493 /* 463, 0x1cf */ SDL_SCANCODE_UNKNOWN,
494 /* 464, 0x1d0 */ SDL_SCANCODE_UNKNOWN, // KEY_FN
495 /* 465, 0x1d1 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_ESC
496 /* 466, 0x1d2 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F1
497 /* 467, 0x1d3 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F2
498 /* 468, 0x1d4 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F3
499 /* 469, 0x1d5 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F4
500 /* 470, 0x1d6 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F5
501 /* 471, 0x1d7 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F6
502 /* 472, 0x1d8 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F7
503 /* 473, 0x1d9 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F8
504 /* 474, 0x1da */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F9
505 /* 475, 0x1db */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F10
506 /* 476, 0x1dc */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F11
507 /* 477, 0x1dd */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F12
508 /* 478, 0x1de */ SDL_SCANCODE_UNKNOWN, // KEY_FN_1
509 /* 479, 0x1df */ SDL_SCANCODE_UNKNOWN, // KEY_FN_2
510 /* 480, 0x1e0 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_D
511 /* 481, 0x1e1 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_E
512 /* 482, 0x1e2 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_F
513 /* 483, 0x1e3 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_S
514 /* 484, 0x1e4 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_B
515 /* 485, 0x1e5 */ SDL_SCANCODE_UNKNOWN, // KEY_FN_RIGHT_SHIFT
516 /* 486, 0x1e6 */ SDL_SCANCODE_UNKNOWN,
517 /* 487, 0x1e7 */ SDL_SCANCODE_UNKNOWN,
518 /* 488, 0x1e8 */ SDL_SCANCODE_UNKNOWN,
519 /* 489, 0x1e9 */ SDL_SCANCODE_UNKNOWN,
520 /* 490, 0x1ea */ SDL_SCANCODE_UNKNOWN,
521 /* 491, 0x1eb */ SDL_SCANCODE_UNKNOWN,
522 /* 492, 0x1ec */ SDL_SCANCODE_UNKNOWN,
523 /* 493, 0x1ed */ SDL_SCANCODE_UNKNOWN,
524 /* 494, 0x1ee */ SDL_SCANCODE_UNKNOWN,
525 /* 495, 0x1ef */ SDL_SCANCODE_UNKNOWN,
526 /* 496, 0x1f0 */ SDL_SCANCODE_UNKNOWN,
527 /* 497, 0x1f1 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT1
528 /* 498, 0x1f2 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT2
529 /* 499, 0x1f3 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT3
530 /* 500, 0x1f4 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT4
531 /* 501, 0x1f5 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT5
532 /* 502, 0x1f6 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT6
533 /* 503, 0x1f7 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT7
534 /* 504, 0x1f8 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT8
535 /* 505, 0x1f9 */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT9
536 /* 506, 0x1fa */ SDL_SCANCODE_UNKNOWN, // KEY_BRL_DOT10
537 /* 507, 0x1fb */ SDL_SCANCODE_UNKNOWN,
538 /* 508, 0x1fc */ SDL_SCANCODE_UNKNOWN,
539 /* 509, 0x1fd */ SDL_SCANCODE_UNKNOWN,
540 /* 510, 0x1fe */ SDL_SCANCODE_UNKNOWN,
541 /* 511, 0x1ff */ SDL_SCANCODE_UNKNOWN,
542 /* 512, 0x200 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_0
543 /* 513, 0x201 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_1
544 /* 514, 0x202 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_2
545 /* 515, 0x203 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_3
546 /* 516, 0x204 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_4
547 /* 517, 0x205 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_5
548 /* 518, 0x206 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_6
549 /* 519, 0x207 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_7
550 /* 520, 0x208 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_8
551 /* 521, 0x209 */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_9
552 /* 522, 0x20a */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_STAR
553 /* 523, 0x20b */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_POUND
554 /* 524, 0x20c */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_A
555 /* 525, 0x20d */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_B
556 /* 526, 0x20e */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_C
557 /* 527, 0x20f */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_D
558 /* 528, 0x210 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_FOCUS
559 /* 529, 0x211 */ SDL_SCANCODE_UNKNOWN, // KEY_WPS_BUTTON
560 /* 530, 0x212 */ SDL_SCANCODE_UNKNOWN, // KEY_TOUCHPAD_TOGGLE
561 /* 531, 0x213 */ SDL_SCANCODE_UNKNOWN, // KEY_TOUCHPAD_ON
562 /* 532, 0x214 */ SDL_SCANCODE_UNKNOWN, // KEY_TOUCHPAD_OFF
563 /* 533, 0x215 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_ZOOMIN
564 /* 534, 0x216 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_ZOOMOUT
565 /* 535, 0x217 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_UP
566 /* 536, 0x218 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_DOWN
567 /* 537, 0x219 */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_LEFT
568 /* 538, 0x21a */ SDL_SCANCODE_UNKNOWN, // KEY_CAMERA_RIGHT
569 /* 539, 0x21b */ SDL_SCANCODE_UNKNOWN, // KEY_ATTENDANT_ON
570 /* 540, 0x21c */ SDL_SCANCODE_UNKNOWN, // KEY_ATTENDANT_OFF
571 /* 541, 0x21d */ SDL_SCANCODE_UNKNOWN, // KEY_ATTENDANT_TOGGLE
572 /* 542, 0x21e */ SDL_SCANCODE_UNKNOWN, // KEY_LIGHTS_TOGGLE
573 /* 543, 0x21f */ SDL_SCANCODE_UNKNOWN,
574 /* 544, 0x220 */ SDL_SCANCODE_UNKNOWN,
575 /* 545, 0x221 */ SDL_SCANCODE_UNKNOWN,
576 /* 546, 0x222 */ SDL_SCANCODE_UNKNOWN,
577 /* 547, 0x223 */ SDL_SCANCODE_UNKNOWN,
578 /* 548, 0x224 */ SDL_SCANCODE_UNKNOWN,
579 /* 549, 0x225 */ SDL_SCANCODE_UNKNOWN,
580 /* 550, 0x226 */ SDL_SCANCODE_UNKNOWN,
581 /* 551, 0x227 */ SDL_SCANCODE_UNKNOWN,
582 /* 552, 0x228 */ SDL_SCANCODE_UNKNOWN,
583 /* 553, 0x229 */ SDL_SCANCODE_UNKNOWN,
584 /* 554, 0x22a */ SDL_SCANCODE_UNKNOWN,
585 /* 555, 0x22b */ SDL_SCANCODE_UNKNOWN,
586 /* 556, 0x22c */ SDL_SCANCODE_UNKNOWN,
587 /* 557, 0x22d */ SDL_SCANCODE_UNKNOWN,
588 /* 558, 0x22e */ SDL_SCANCODE_UNKNOWN,
589 /* 559, 0x22f */ SDL_SCANCODE_UNKNOWN,
590 /* 560, 0x230 */ SDL_SCANCODE_UNKNOWN, // KEY_ALS_TOGGLE
591 /* 561, 0x231 */ SDL_SCANCODE_UNKNOWN, // KEY_ROTATE_LOCK_TOGGLE
592 /* 562, 0x232 */ SDL_SCANCODE_UNKNOWN,
593 /* 563, 0x233 */ SDL_SCANCODE_UNKNOWN,
594 /* 564, 0x234 */ SDL_SCANCODE_UNKNOWN,
595 /* 565, 0x235 */ SDL_SCANCODE_UNKNOWN,
596 /* 566, 0x236 */ SDL_SCANCODE_UNKNOWN,
597 /* 567, 0x237 */ SDL_SCANCODE_UNKNOWN,
598 /* 568, 0x238 */ SDL_SCANCODE_UNKNOWN,
599 /* 569, 0x239 */ SDL_SCANCODE_UNKNOWN,
600 /* 570, 0x23a */ SDL_SCANCODE_UNKNOWN,
601 /* 571, 0x23b */ SDL_SCANCODE_UNKNOWN,
602 /* 572, 0x23c */ SDL_SCANCODE_UNKNOWN,
603 /* 573, 0x23d */ SDL_SCANCODE_UNKNOWN,
604 /* 574, 0x23e */ SDL_SCANCODE_UNKNOWN,
605 /* 575, 0x23f */ SDL_SCANCODE_UNKNOWN,
606 /* 576, 0x240 */ SDL_SCANCODE_UNKNOWN, // KEY_BUTTONCONFIG
607 /* 577, 0x241 */ SDL_SCANCODE_UNKNOWN, // KEY_TASKMANAGER
608 /* 578, 0x242 */ SDL_SCANCODE_UNKNOWN, // KEY_JOURNAL
609 /* 579, 0x243 */ SDL_SCANCODE_UNKNOWN, // KEY_CONTROLPANEL
610 /* 580, 0x244 */ SDL_SCANCODE_UNKNOWN, // KEY_APPSELECT
611 /* 581, 0x245 */ SDL_SCANCODE_UNKNOWN, // KEY_SCREENSAVER
612 /* 582, 0x246 */ SDL_SCANCODE_UNKNOWN, // KEY_VOICECOMMAND
613 /* 583, 0x247 */ SDL_SCANCODE_UNKNOWN, // KEY_ASSISTANT
614 /* 584, 0x248 */ SDL_SCANCODE_UNKNOWN, // KEY_KBD_LAYOUT_NEXT
615 /* 585, 0x249 */ SDL_SCANCODE_UNKNOWN, // KEY_EMOJI_PICKER
616 /* 586, 0x24a */ SDL_SCANCODE_UNKNOWN, // KEY_DICTATE
617 /* 587, 0x24b */ SDL_SCANCODE_UNKNOWN,
618 /* 588, 0x24c */ SDL_SCANCODE_UNKNOWN,
619 /* 589, 0x24d */ SDL_SCANCODE_UNKNOWN,
620 /* 590, 0x24e */ SDL_SCANCODE_UNKNOWN,
621 /* 591, 0x24f */ SDL_SCANCODE_UNKNOWN,
622 /* 592, 0x250 */ SDL_SCANCODE_UNKNOWN, // KEY_BRIGHTNESS_MIN
623 /* 593, 0x251 */ SDL_SCANCODE_UNKNOWN, // KEY_BRIGHTNESS_MAX
624 /* 594, 0x252 */ SDL_SCANCODE_UNKNOWN,
625 /* 595, 0x253 */ SDL_SCANCODE_UNKNOWN,
626 /* 596, 0x254 */ SDL_SCANCODE_UNKNOWN,
627 /* 597, 0x255 */ SDL_SCANCODE_UNKNOWN,
628 /* 598, 0x256 */ SDL_SCANCODE_UNKNOWN,
629 /* 599, 0x257 */ SDL_SCANCODE_UNKNOWN,
630 /* 600, 0x258 */ SDL_SCANCODE_UNKNOWN,
631 /* 601, 0x259 */ SDL_SCANCODE_UNKNOWN,
632 /* 602, 0x25a */ SDL_SCANCODE_UNKNOWN,
633 /* 603, 0x25b */ SDL_SCANCODE_UNKNOWN,
634 /* 604, 0x25c */ SDL_SCANCODE_UNKNOWN,
635 /* 605, 0x25d */ SDL_SCANCODE_UNKNOWN,
636 /* 606, 0x25e */ SDL_SCANCODE_UNKNOWN,
637 /* 607, 0x25f */ SDL_SCANCODE_UNKNOWN,
638 /* 608, 0x260 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDINPUTASSIST_PREV
639 /* 609, 0x261 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDINPUTASSIST_NEXT
640 /* 610, 0x262 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDINPUTASSIST_PREVGROUP
641 /* 611, 0x263 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDINPUTASSIST_NEXTGROUP
642 /* 612, 0x264 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDINPUTASSIST_ACCEPT
643 /* 613, 0x265 */ SDL_SCANCODE_UNKNOWN, // KEY_KBDINPUTASSIST_CANCEL
644 /* 614, 0x266 */ SDL_SCANCODE_UNKNOWN, // KEY_RIGHT_UP
645 /* 615, 0x267 */ SDL_SCANCODE_UNKNOWN, // KEY_RIGHT_DOWN
646 /* 616, 0x268 */ SDL_SCANCODE_UNKNOWN, // KEY_LEFT_UP
647 /* 617, 0x269 */ SDL_SCANCODE_UNKNOWN, // KEY_LEFT_DOWN
648 /* 618, 0x26a */ SDL_SCANCODE_UNKNOWN, // KEY_ROOT_MENU
649 /* 619, 0x26b */ SDL_SCANCODE_UNKNOWN, // KEY_MEDIA_TOP_MENU
650 /* 620, 0x26c */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_11
651 /* 621, 0x26d */ SDL_SCANCODE_UNKNOWN, // KEY_NUMERIC_12
652 /* 622, 0x26e */ SDL_SCANCODE_UNKNOWN, // KEY_AUDIO_DESC
653 /* 623, 0x26f */ SDL_SCANCODE_UNKNOWN, // KEY_3D_MODE
654 /* 624, 0x270 */ SDL_SCANCODE_UNKNOWN, // KEY_NEXT_FAVORITE
655 /* 625, 0x271 */ SDL_SCANCODE_UNKNOWN, // KEY_STOP_RECORD
656 /* 626, 0x272 */ SDL_SCANCODE_UNKNOWN, // KEY_PAUSE_RECORD
657 /* 627, 0x273 */ SDL_SCANCODE_UNKNOWN, // KEY_VOD
658 /* 628, 0x274 */ SDL_SCANCODE_UNKNOWN, // KEY_UNMUTE
659 /* 629, 0x275 */ SDL_SCANCODE_UNKNOWN, // KEY_FASTREVERSE
660 /* 630, 0x276 */ SDL_SCANCODE_UNKNOWN, // KEY_SLOWREVERSE
661 /* 631, 0x277 */ SDL_SCANCODE_UNKNOWN, // KEY_DATA
662 /* 632, 0x278 */ SDL_SCANCODE_UNKNOWN, // KEY_ONSCREEN_KEYBOARD
663 /* 633, 0x279 */ SDL_SCANCODE_UNKNOWN, // KEY_PRIVACY_SCREEN_TOGGLE
664 /* 634, 0x27a */ SDL_SCANCODE_UNKNOWN, // KEY_SELECTIVE_SCREENSHOT
665 /* 635, 0x27b */ SDL_SCANCODE_UNKNOWN,
666 /* 636, 0x27c */ SDL_SCANCODE_UNKNOWN,
667 /* 637, 0x27d */ SDL_SCANCODE_UNKNOWN,
668 /* 638, 0x27e */ SDL_SCANCODE_UNKNOWN,
669 /* 639, 0x27f */ SDL_SCANCODE_UNKNOWN,
670 /* 640, 0x280 */ SDL_SCANCODE_UNKNOWN,
671 /* 641, 0x281 */ SDL_SCANCODE_UNKNOWN,
672 /* 642, 0x282 */ SDL_SCANCODE_UNKNOWN,
673 /* 643, 0x283 */ SDL_SCANCODE_UNKNOWN,
674 /* 644, 0x284 */ SDL_SCANCODE_UNKNOWN,
675 /* 645, 0x285 */ SDL_SCANCODE_UNKNOWN,
676 /* 646, 0x286 */ SDL_SCANCODE_UNKNOWN,
677 /* 647, 0x287 */ SDL_SCANCODE_UNKNOWN,
678 /* 648, 0x288 */ SDL_SCANCODE_UNKNOWN,
679 /* 649, 0x289 */ SDL_SCANCODE_UNKNOWN,
680 /* 650, 0x28a */ SDL_SCANCODE_UNKNOWN,
681 /* 651, 0x28b */ SDL_SCANCODE_UNKNOWN,
682 /* 652, 0x28c */ SDL_SCANCODE_UNKNOWN,
683 /* 653, 0x28d */ SDL_SCANCODE_UNKNOWN,
684 /* 654, 0x28e */ SDL_SCANCODE_UNKNOWN,
685 /* 655, 0x28f */ SDL_SCANCODE_UNKNOWN,
686 /* 656, 0x290 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO1
687 /* 657, 0x291 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO2
688 /* 658, 0x292 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO3
689 /* 659, 0x293 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO4
690 /* 660, 0x294 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO5
691 /* 661, 0x295 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO6
692 /* 662, 0x296 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO7
693 /* 663, 0x297 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO8
694 /* 664, 0x298 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO9
695 /* 665, 0x299 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO10
696 /* 666, 0x29a */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO11
697 /* 667, 0x29b */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO12
698 /* 668, 0x29c */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO13
699 /* 669, 0x29d */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO14
700 /* 670, 0x29e */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO15
701 /* 671, 0x29f */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO16
702 /* 672, 0x2a0 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO17
703 /* 673, 0x2a1 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO18
704 /* 674, 0x2a2 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO19
705 /* 675, 0x2a3 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO20
706 /* 676, 0x2a4 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO21
707 /* 677, 0x2a5 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO22
708 /* 678, 0x2a6 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO23
709 /* 679, 0x2a7 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO24
710 /* 680, 0x2a8 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO25
711 /* 681, 0x2a9 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO26
712 /* 682, 0x2aa */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO27
713 /* 683, 0x2ab */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO28
714 /* 684, 0x2ac */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO29
715 /* 685, 0x2ad */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO30
716 /* 686, 0x2ae */ SDL_SCANCODE_UNKNOWN,
717 /* 687, 0x2af */ SDL_SCANCODE_UNKNOWN,
718 /* 688, 0x2b0 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO_RECORD_START
719 /* 689, 0x2b1 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO_RECORD_STOP
720 /* 690, 0x2b2 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO_PRESET_CYCLE
721 /* 691, 0x2b3 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO_PRESET1
722 /* 692, 0x2b4 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO_PRESET2
723 /* 693, 0x2b5 */ SDL_SCANCODE_UNKNOWN, // KEY_MACRO_PRESET3
724 /* 694, 0x2b6 */ SDL_SCANCODE_UNKNOWN,
725 /* 695, 0x2b7 */ SDL_SCANCODE_UNKNOWN,
726 /* 696, 0x2b8 */ SDL_SCANCODE_UNKNOWN, // KEY_KBD_LCD_MENU1
727 /* 697, 0x2b9 */ SDL_SCANCODE_UNKNOWN, // KEY_KBD_LCD_MENU2
728 /* 698, 0x2ba */ SDL_SCANCODE_UNKNOWN, // KEY_KBD_LCD_MENU3
729 /* 699, 0x2bb */ SDL_SCANCODE_UNKNOWN, // KEY_KBD_LCD_MENU4
730 /* 700, 0x2bc */ SDL_SCANCODE_UNKNOWN, // KEY_KBD_LCD_MENU5
731 /* 701, 0x2bd */ SDL_SCANCODE_UNKNOWN,
732 /* 702, 0x2be */ SDL_SCANCODE_UNKNOWN,
733 /* 703, 0x2bf */ SDL_SCANCODE_UNKNOWN,
734 /* 704, 0x2c0 */ SDL_SCANCODE_UNKNOWN,
735 /* 705, 0x2c1 */ SDL_SCANCODE_UNKNOWN,
736 /* 706, 0x2c2 */ SDL_SCANCODE_UNKNOWN,
737 /* 707, 0x2c3 */ SDL_SCANCODE_UNKNOWN,
738 /* 708, 0x2c4 */ SDL_SCANCODE_UNKNOWN,
739 /* 709, 0x2c5 */ SDL_SCANCODE_UNKNOWN,
740 /* 710, 0x2c6 */ SDL_SCANCODE_UNKNOWN,
741 /* 711, 0x2c7 */ SDL_SCANCODE_UNKNOWN,
742 /* 712, 0x2c8 */ SDL_SCANCODE_UNKNOWN,
743 /* 713, 0x2c9 */ SDL_SCANCODE_UNKNOWN,
744 /* 714, 0x2ca */ SDL_SCANCODE_UNKNOWN,
745 /* 715, 0x2cb */ SDL_SCANCODE_UNKNOWN,
746 /* 716, 0x2cc */ SDL_SCANCODE_UNKNOWN,
747 /* 717, 0x2cd */ SDL_SCANCODE_UNKNOWN,
748 /* 718, 0x2ce */ SDL_SCANCODE_UNKNOWN,
749 /* 719, 0x2cf */ SDL_SCANCODE_UNKNOWN,
750 /* 720, 0x2d0 */ SDL_SCANCODE_UNKNOWN,
751 /* 721, 0x2d1 */ SDL_SCANCODE_UNKNOWN,
752 /* 722, 0x2d2 */ SDL_SCANCODE_UNKNOWN,
753 /* 723, 0x2d3 */ SDL_SCANCODE_UNKNOWN,
754 /* 724, 0x2d4 */ SDL_SCANCODE_UNKNOWN,
755 /* 725, 0x2d5 */ SDL_SCANCODE_UNKNOWN,
756 /* 726, 0x2d6 */ SDL_SCANCODE_UNKNOWN,
757 /* 727, 0x2d7 */ SDL_SCANCODE_UNKNOWN,
758 /* 728, 0x2d8 */ SDL_SCANCODE_UNKNOWN,
759 /* 729, 0x2d9 */ SDL_SCANCODE_UNKNOWN,
760 /* 730, 0x2da */ SDL_SCANCODE_UNKNOWN,
761 /* 731, 0x2db */ SDL_SCANCODE_UNKNOWN,
762 /* 732, 0x2dc */ SDL_SCANCODE_UNKNOWN,
763 /* 733, 0x2dd */ SDL_SCANCODE_UNKNOWN,
764 /* 734, 0x2de */ SDL_SCANCODE_UNKNOWN,
765 /* 735, 0x2df */ SDL_SCANCODE_UNKNOWN,
766 /* 736, 0x2e0 */ SDL_SCANCODE_UNKNOWN,
767 /* 737, 0x2e1 */ SDL_SCANCODE_UNKNOWN,
768 /* 738, 0x2e2 */ SDL_SCANCODE_UNKNOWN,
769 /* 739, 0x2e3 */ SDL_SCANCODE_UNKNOWN,
770 /* 740, 0x2e4 */ SDL_SCANCODE_UNKNOWN,
771 /* 741, 0x2e5 */ SDL_SCANCODE_UNKNOWN,
772 /* 742, 0x2e6 */ SDL_SCANCODE_UNKNOWN,
773 /* 743, 0x2e7 */ SDL_SCANCODE_UNKNOWN,
774 /* 744, 0x2e8 */ SDL_SCANCODE_UNKNOWN,
775 /* 745, 0x2e9 */ SDL_SCANCODE_UNKNOWN,
776 /* 746, 0x2ea */ SDL_SCANCODE_UNKNOWN,
777 /* 747, 0x2eb */ SDL_SCANCODE_UNKNOWN,
778 /* 748, 0x2ec */ SDL_SCANCODE_UNKNOWN,
779 /* 749, 0x2ed */ SDL_SCANCODE_UNKNOWN,
780 /* 750, 0x2ee */ SDL_SCANCODE_UNKNOWN,
781 /* 751, 0x2ef */ SDL_SCANCODE_UNKNOWN,
782 /* 752, 0x2f0 */ SDL_SCANCODE_UNKNOWN,
783 /* 753, 0x2f1 */ SDL_SCANCODE_UNKNOWN,
784 /* 754, 0x2f2 */ SDL_SCANCODE_UNKNOWN,
785 /* 755, 0x2f3 */ SDL_SCANCODE_UNKNOWN,
786 /* 756, 0x2f4 */ SDL_SCANCODE_UNKNOWN,
787 /* 757, 0x2f5 */ SDL_SCANCODE_UNKNOWN,
788 /* 758, 0x2f6 */ SDL_SCANCODE_UNKNOWN,
789 /* 759, 0x2f7 */ SDL_SCANCODE_UNKNOWN,
790 /* 760, 0x2f8 */ SDL_SCANCODE_UNKNOWN,
791 /* 761, 0x2f9 */ SDL_SCANCODE_UNKNOWN,
792 /* 762, 0x2fa */ SDL_SCANCODE_UNKNOWN,
793 /* 763, 0x2fb */ SDL_SCANCODE_UNKNOWN,
794 /* 764, 0x2fc */ SDL_SCANCODE_UNKNOWN,
795 /* 765, 0x2fd */ SDL_SCANCODE_UNKNOWN,
796 /* 766, 0x2fe */ SDL_SCANCODE_UNKNOWN,
797 /* 767, 0x2ff */ SDL_SCANCODE_UNKNOWN, // KEY_MAX
798#endif // 0
799};
800
801#if 0 // A shell script to update the Linux key names in this file
802#!/bin/bash
803
804function get_keyname
805{
806 value=$(echo "$1" | awk '{print $3}')
807 grep -F KEY_ /usr/include/linux/input-event-codes.h | while read line; do
808 read -ra fields <<<"$line"
809 if [ "${fields[2]}" = "$value" ]; then
810 echo "${fields[1]}"
811 return
812 fi
813 done
814}
815
816grep -F SDL_SCANCODE scancodes_linux.h | while read line; do
817 if [ $(echo "$line" | awk '{print NF}') -eq 5 ]; then
818 name=$(get_keyname "$line")
819 if [ "$name" != "" ]; then
820 echo " $line /* $name */"
821 continue
822 fi
823 fi
824 echo " $line"
825done
826#endif // end script
827
828#if 0 // A shell script to get comments from the Linux header for these keys
829#!/bin/bash
830
831function get_comment
832{
833 name=$(echo "$1" | awk '{print $7}')
834 if [ "$name" != "" ]; then
835 grep -E "$name\s" /usr/include/linux/input-event-codes.h | grep -F "/*" | sed 's,[^/]*/,/,'
836 fi
837}
838
839grep -F SDL_SCANCODE scancodes_linux.h | while read line; do
840 comment=$(get_comment "$line")
841 if [ "$comment" != "" ]; then
842 echo " $line $comment"
843 fi
844done
845#endif // end script
846
847
848/* *INDENT-ON* */ // clang-format on
849