1 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
2 | * Mupen64plus - sdl_key_converter.c * |
3 | * Mupen64Plus homepage: https://mupen64plus.org/ * |
4 | * Copyright (C) 2013 Mupen64plus development team * |
5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License as published by * |
8 | * the Free Software Foundation; either version 2 of the License, or * |
9 | * (at your option) any later version. * |
10 | * * |
11 | * This program is distributed in the hope that it will be useful, * |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
14 | * GNU General Public License for more details. * |
15 | * * |
16 | * You should have received a copy of the GNU General Public License * |
17 | * along with this program; if not, write to the * |
18 | * Free Software Foundation, Inc., * |
19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * |
20 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
21 | |
22 | #include "sdl_key_converter.h" |
23 | |
24 | #include <stdint.h> |
25 | |
26 | #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) |
27 | |
28 | uint16_t sdl_keysym2scancode(uint16_t keysym) |
29 | { |
30 | static const uint16_t keysym2scancode[323] = { |
31 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
32 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
33 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
34 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
35 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
36 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
37 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
38 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
39 | 0x002au, /* SDLK_BACKSPACE -> SDL_SCANCODE_BACKSPACE */ |
40 | 0x002bu, /* SDLK_TAB -> SDL_SCANCODE_TAB */ |
41 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
42 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
43 | 0x009cu, /* SDLK_CLEAR -> SDL_SCANCODE_CLEAR */ |
44 | 0x0028u, /* SDLK_RETURN -> SDL_SCANCODE_RETURN */ |
45 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
46 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
47 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
48 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
49 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
50 | 0x0048u, /* SDLK_PAUSE -> SDL_SCANCODE_PAUSE */ |
51 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
52 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
53 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
54 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
55 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
56 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
57 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
58 | 0x0029u, /* SDLK_ESCAPE -> SDL_SCANCODE_ESCAPE */ |
59 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
60 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
61 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
62 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
63 | 0x002cu, /* SDLK_SPACE -> SDL_SCANCODE_SPACE */ |
64 | 0x0000u, /* SDLK_EXCLAIM -> SDL_SCANCODE_UNKNOWN */ |
65 | 0x0000u, /* SDLK_QUOTEDBL -> SDL_SCANCODE_UNKNOWN */ |
66 | 0x0000u, /* SDLK_HASH -> SDL_SCANCODE_UNKNOWN */ |
67 | 0x0000u, /* SDLK_DOLLAR -> SDL_SCANCODE_UNKNOWN */ |
68 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
69 | 0x0000u, /* SDLK_AMPERSAND -> SDL_SCANCODE_UNKNOWN */ |
70 | 0x0000u, /* SDLK_QUOTE -> SDL_SCANCODE_UNKNOWN */ |
71 | 0x0000u, /* SDLK_LEFTPAREN -> SDL_SCANCODE_UNKNOWN */ |
72 | 0x0000u, /* SDLK_RIGHTPAREN -> SDL_SCANCODE_UNKNOWN */ |
73 | 0x0000u, /* SDLK_ASTERISK -> SDL_SCANCODE_UNKNOWN */ |
74 | 0x0000u, /* SDLK_PLUS -> SDL_SCANCODE_UNKNOWN */ |
75 | 0x0036u, /* SDLK_COMMA -> SDL_SCANCODE_COMMA */ |
76 | 0x002du, /* SDLK_MINUS -> SDL_SCANCODE_MINUS */ |
77 | 0x0037u, /* SDLK_PERIOD -> SDL_SCANCODE_PERIOD */ |
78 | 0x0038u, /* SDLK_SLASH -> SDL_SCANCODE_SLASH */ |
79 | 0x0027u, /* SDLK_0 -> SDL_SCANCODE_0 */ |
80 | 0x001eu, /* SDLK_1 -> SDL_SCANCODE_1 */ |
81 | 0x001fu, /* SDLK_2 -> SDL_SCANCODE_2 */ |
82 | 0x0020u, /* SDLK_3 -> SDL_SCANCODE_3 */ |
83 | 0x0021u, /* SDLK_4 -> SDL_SCANCODE_4 */ |
84 | 0x0022u, /* SDLK_5 -> SDL_SCANCODE_5 */ |
85 | 0x0023u, /* SDLK_6 -> SDL_SCANCODE_6 */ |
86 | 0x0024u, /* SDLK_7 -> SDL_SCANCODE_7 */ |
87 | 0x0025u, /* SDLK_8 -> SDL_SCANCODE_8 */ |
88 | 0x0026u, /* SDLK_9 -> SDL_SCANCODE_9 */ |
89 | 0x0000u, /* SDLK_COLON -> SDL_SCANCODE_UNKNOWN */ |
90 | 0x0033u, /* SDLK_SEMICOLON -> SDL_SCANCODE_SEMICOLON */ |
91 | 0x0000u, /* SDLK_LESS -> SDL_SCANCODE_UNKNOWN */ |
92 | 0x002eu, /* SDLK_EQUALS -> SDL_SCANCODE_EQUALS */ |
93 | 0x0000u, /* SDLK_GREATER -> SDL_SCANCODE_UNKNOWN */ |
94 | 0x0000u, /* SDLK_QUESTION -> SDL_SCANCODE_UNKNOWN */ |
95 | 0x0000u, /* SDLK_AT -> SDL_SCANCODE_UNKNOWN */ |
96 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
97 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
98 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
99 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
100 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
101 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
102 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
103 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
104 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
105 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
106 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
107 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
108 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
109 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
110 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
111 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
112 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
113 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
114 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
115 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
116 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
117 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
118 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
119 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
120 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
121 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
122 | 0x002fu, /* SDLK_LEFTBRACKET -> SDL_SCANCODE_LEFTBRACKET */ |
123 | 0x0031u, /* SDLK_BACKSLASH -> SDL_SCANCODE_BACKSLASH */ |
124 | 0x0030u, /* SDLK_RIGHTBRACKET -> SDL_SCANCODE_RIGHTBRACKET */ |
125 | 0x0000u, /* SDLK_CARET -> SDL_SCANCODE_UNKNOWN */ |
126 | 0x0000u, /* SDLK_UNDERSCORE -> SDL_SCANCODE_UNKNOWN */ |
127 | 0x0000u, /* SDLK_BACKQUOTE -> SDL_SCANCODE_UNKNOWN */ |
128 | 0x0004u, /* SDLK_a -> SDL_SCANCODE_A */ |
129 | 0x0005u, /* SDLK_b -> SDL_SCANCODE_B */ |
130 | 0x0006u, /* SDLK_c -> SDL_SCANCODE_C */ |
131 | 0x0007u, /* SDLK_d -> SDL_SCANCODE_D */ |
132 | 0x0008u, /* SDLK_e -> SDL_SCANCODE_E */ |
133 | 0x0009u, /* SDLK_f -> SDL_SCANCODE_F */ |
134 | 0x000au, /* SDLK_g -> SDL_SCANCODE_G */ |
135 | 0x000bu, /* SDLK_h -> SDL_SCANCODE_H */ |
136 | 0x000cu, /* SDLK_i -> SDL_SCANCODE_I */ |
137 | 0x000du, /* SDLK_j -> SDL_SCANCODE_J */ |
138 | 0x000eu, /* SDLK_k -> SDL_SCANCODE_K */ |
139 | 0x000fu, /* SDLK_l -> SDL_SCANCODE_L */ |
140 | 0x0010u, /* SDLK_m -> SDL_SCANCODE_M */ |
141 | 0x0011u, /* SDLK_n -> SDL_SCANCODE_N */ |
142 | 0x0012u, /* SDLK_o -> SDL_SCANCODE_O */ |
143 | 0x0013u, /* SDLK_p -> SDL_SCANCODE_P */ |
144 | 0x0014u, /* SDLK_q -> SDL_SCANCODE_Q */ |
145 | 0x0015u, /* SDLK_r -> SDL_SCANCODE_R */ |
146 | 0x0016u, /* SDLK_s -> SDL_SCANCODE_S */ |
147 | 0x0017u, /* SDLK_t -> SDL_SCANCODE_T */ |
148 | 0x0018u, /* SDLK_u -> SDL_SCANCODE_U */ |
149 | 0x0019u, /* SDLK_v -> SDL_SCANCODE_V */ |
150 | 0x001au, /* SDLK_w -> SDL_SCANCODE_W */ |
151 | 0x001bu, /* SDLK_x -> SDL_SCANCODE_X */ |
152 | 0x001cu, /* SDLK_y -> SDL_SCANCODE_Y */ |
153 | 0x001du, /* SDLK_z -> SDL_SCANCODE_Z */ |
154 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
155 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
156 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
157 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
158 | 0x004cu, /* SDLK_DELETE -> SDL_SCANCODE_DELETE */ |
159 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
160 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
161 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
162 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
163 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
164 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
165 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
166 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
167 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
168 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
169 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
170 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
171 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
172 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
173 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
174 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
175 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
176 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
177 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
178 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
179 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
180 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
181 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
182 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
183 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
184 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
185 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
186 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
187 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
188 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
189 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
190 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
191 | 0x0000u, /* SDLK_WORLD_0 -> SDL_SCANCODE_UNKNOWN */ |
192 | 0x0000u, /* SDLK_WORLD_1 -> SDL_SCANCODE_UNKNOWN */ |
193 | 0x0000u, /* SDLK_WORLD_2 -> SDL_SCANCODE_UNKNOWN */ |
194 | 0x0000u, /* SDLK_WORLD_3 -> SDL_SCANCODE_UNKNOWN */ |
195 | 0x0000u, /* SDLK_WORLD_4 -> SDL_SCANCODE_UNKNOWN */ |
196 | 0x0000u, /* SDLK_WORLD_5 -> SDL_SCANCODE_UNKNOWN */ |
197 | 0x0000u, /* SDLK_WORLD_6 -> SDL_SCANCODE_UNKNOWN */ |
198 | 0x0000u, /* SDLK_WORLD_7 -> SDL_SCANCODE_UNKNOWN */ |
199 | 0x0000u, /* SDLK_WORLD_8 -> SDL_SCANCODE_UNKNOWN */ |
200 | 0x0000u, /* SDLK_WORLD_9 -> SDL_SCANCODE_UNKNOWN */ |
201 | 0x0000u, /* SDLK_WORLD_10 -> SDL_SCANCODE_UNKNOWN */ |
202 | 0x0000u, /* SDLK_WORLD_11 -> SDL_SCANCODE_UNKNOWN */ |
203 | 0x0000u, /* SDLK_WORLD_12 -> SDL_SCANCODE_UNKNOWN */ |
204 | 0x0000u, /* SDLK_WORLD_13 -> SDL_SCANCODE_UNKNOWN */ |
205 | 0x0000u, /* SDLK_WORLD_14 -> SDL_SCANCODE_UNKNOWN */ |
206 | 0x0000u, /* SDLK_WORLD_15 -> SDL_SCANCODE_UNKNOWN */ |
207 | 0x0000u, /* SDLK_WORLD_16 -> SDL_SCANCODE_UNKNOWN */ |
208 | 0x0000u, /* SDLK_WORLD_17 -> SDL_SCANCODE_UNKNOWN */ |
209 | 0x0000u, /* SDLK_WORLD_18 -> SDL_SCANCODE_UNKNOWN */ |
210 | 0x0000u, /* SDLK_WORLD_19 -> SDL_SCANCODE_UNKNOWN */ |
211 | 0x0000u, /* SDLK_WORLD_20 -> SDL_SCANCODE_UNKNOWN */ |
212 | 0x0000u, /* SDLK_WORLD_21 -> SDL_SCANCODE_UNKNOWN */ |
213 | 0x0000u, /* SDLK_WORLD_22 -> SDL_SCANCODE_UNKNOWN */ |
214 | 0x0000u, /* SDLK_WORLD_23 -> SDL_SCANCODE_UNKNOWN */ |
215 | 0x0000u, /* SDLK_WORLD_24 -> SDL_SCANCODE_UNKNOWN */ |
216 | 0x0000u, /* SDLK_WORLD_25 -> SDL_SCANCODE_UNKNOWN */ |
217 | 0x0000u, /* SDLK_WORLD_26 -> SDL_SCANCODE_UNKNOWN */ |
218 | 0x0000u, /* SDLK_WORLD_27 -> SDL_SCANCODE_UNKNOWN */ |
219 | 0x0000u, /* SDLK_WORLD_28 -> SDL_SCANCODE_UNKNOWN */ |
220 | 0x0000u, /* SDLK_WORLD_29 -> SDL_SCANCODE_UNKNOWN */ |
221 | 0x0000u, /* SDLK_WORLD_30 -> SDL_SCANCODE_UNKNOWN */ |
222 | 0x0000u, /* SDLK_WORLD_31 -> SDL_SCANCODE_UNKNOWN */ |
223 | 0x0000u, /* SDLK_WORLD_32 -> SDL_SCANCODE_UNKNOWN */ |
224 | 0x0000u, /* SDLK_WORLD_33 -> SDL_SCANCODE_UNKNOWN */ |
225 | 0x0000u, /* SDLK_WORLD_34 -> SDL_SCANCODE_UNKNOWN */ |
226 | 0x0000u, /* SDLK_WORLD_35 -> SDL_SCANCODE_UNKNOWN */ |
227 | 0x0000u, /* SDLK_WORLD_36 -> SDL_SCANCODE_UNKNOWN */ |
228 | 0x0000u, /* SDLK_WORLD_37 -> SDL_SCANCODE_UNKNOWN */ |
229 | 0x0000u, /* SDLK_WORLD_38 -> SDL_SCANCODE_UNKNOWN */ |
230 | 0x0000u, /* SDLK_WORLD_39 -> SDL_SCANCODE_UNKNOWN */ |
231 | 0x0000u, /* SDLK_WORLD_40 -> SDL_SCANCODE_UNKNOWN */ |
232 | 0x0000u, /* SDLK_WORLD_41 -> SDL_SCANCODE_UNKNOWN */ |
233 | 0x0000u, /* SDLK_WORLD_42 -> SDL_SCANCODE_UNKNOWN */ |
234 | 0x0000u, /* SDLK_WORLD_43 -> SDL_SCANCODE_UNKNOWN */ |
235 | 0x0000u, /* SDLK_WORLD_44 -> SDL_SCANCODE_UNKNOWN */ |
236 | 0x0000u, /* SDLK_WORLD_45 -> SDL_SCANCODE_UNKNOWN */ |
237 | 0x0000u, /* SDLK_WORLD_46 -> SDL_SCANCODE_UNKNOWN */ |
238 | 0x0000u, /* SDLK_WORLD_47 -> SDL_SCANCODE_UNKNOWN */ |
239 | 0x0000u, /* SDLK_WORLD_48 -> SDL_SCANCODE_UNKNOWN */ |
240 | 0x0000u, /* SDLK_WORLD_49 -> SDL_SCANCODE_UNKNOWN */ |
241 | 0x0000u, /* SDLK_WORLD_50 -> SDL_SCANCODE_UNKNOWN */ |
242 | 0x0000u, /* SDLK_WORLD_51 -> SDL_SCANCODE_UNKNOWN */ |
243 | 0x0000u, /* SDLK_WORLD_52 -> SDL_SCANCODE_UNKNOWN */ |
244 | 0x0000u, /* SDLK_WORLD_53 -> SDL_SCANCODE_UNKNOWN */ |
245 | 0x0000u, /* SDLK_WORLD_54 -> SDL_SCANCODE_UNKNOWN */ |
246 | 0x0000u, /* SDLK_WORLD_55 -> SDL_SCANCODE_UNKNOWN */ |
247 | 0x0000u, /* SDLK_WORLD_56 -> SDL_SCANCODE_UNKNOWN */ |
248 | 0x0000u, /* SDLK_WORLD_57 -> SDL_SCANCODE_UNKNOWN */ |
249 | 0x0000u, /* SDLK_WORLD_58 -> SDL_SCANCODE_UNKNOWN */ |
250 | 0x0000u, /* SDLK_WORLD_59 -> SDL_SCANCODE_UNKNOWN */ |
251 | 0x0000u, /* SDLK_WORLD_60 -> SDL_SCANCODE_UNKNOWN */ |
252 | 0x0000u, /* SDLK_WORLD_61 -> SDL_SCANCODE_UNKNOWN */ |
253 | 0x0000u, /* SDLK_WORLD_62 -> SDL_SCANCODE_UNKNOWN */ |
254 | 0x0000u, /* SDLK_WORLD_63 -> SDL_SCANCODE_UNKNOWN */ |
255 | 0x0000u, /* SDLK_WORLD_64 -> SDL_SCANCODE_UNKNOWN */ |
256 | 0x0000u, /* SDLK_WORLD_65 -> SDL_SCANCODE_UNKNOWN */ |
257 | 0x0000u, /* SDLK_WORLD_66 -> SDL_SCANCODE_UNKNOWN */ |
258 | 0x0000u, /* SDLK_WORLD_67 -> SDL_SCANCODE_UNKNOWN */ |
259 | 0x0000u, /* SDLK_WORLD_68 -> SDL_SCANCODE_UNKNOWN */ |
260 | 0x0000u, /* SDLK_WORLD_69 -> SDL_SCANCODE_UNKNOWN */ |
261 | 0x0000u, /* SDLK_WORLD_70 -> SDL_SCANCODE_UNKNOWN */ |
262 | 0x0000u, /* SDLK_WORLD_71 -> SDL_SCANCODE_UNKNOWN */ |
263 | 0x0000u, /* SDLK_WORLD_72 -> SDL_SCANCODE_UNKNOWN */ |
264 | 0x0000u, /* SDLK_WORLD_73 -> SDL_SCANCODE_UNKNOWN */ |
265 | 0x0000u, /* SDLK_WORLD_74 -> SDL_SCANCODE_UNKNOWN */ |
266 | 0x0000u, /* SDLK_WORLD_75 -> SDL_SCANCODE_UNKNOWN */ |
267 | 0x0000u, /* SDLK_WORLD_76 -> SDL_SCANCODE_UNKNOWN */ |
268 | 0x0000u, /* SDLK_WORLD_77 -> SDL_SCANCODE_UNKNOWN */ |
269 | 0x0000u, /* SDLK_WORLD_78 -> SDL_SCANCODE_UNKNOWN */ |
270 | 0x0000u, /* SDLK_WORLD_79 -> SDL_SCANCODE_UNKNOWN */ |
271 | 0x0000u, /* SDLK_WORLD_80 -> SDL_SCANCODE_UNKNOWN */ |
272 | 0x0000u, /* SDLK_WORLD_81 -> SDL_SCANCODE_UNKNOWN */ |
273 | 0x0000u, /* SDLK_WORLD_82 -> SDL_SCANCODE_UNKNOWN */ |
274 | 0x0000u, /* SDLK_WORLD_83 -> SDL_SCANCODE_UNKNOWN */ |
275 | 0x0000u, /* SDLK_WORLD_84 -> SDL_SCANCODE_UNKNOWN */ |
276 | 0x0000u, /* SDLK_WORLD_85 -> SDL_SCANCODE_UNKNOWN */ |
277 | 0x0000u, /* SDLK_WORLD_86 -> SDL_SCANCODE_UNKNOWN */ |
278 | 0x0000u, /* SDLK_WORLD_87 -> SDL_SCANCODE_UNKNOWN */ |
279 | 0x0000u, /* SDLK_WORLD_88 -> SDL_SCANCODE_UNKNOWN */ |
280 | 0x0000u, /* SDLK_WORLD_89 -> SDL_SCANCODE_UNKNOWN */ |
281 | 0x0000u, /* SDLK_WORLD_90 -> SDL_SCANCODE_UNKNOWN */ |
282 | 0x0000u, /* SDLK_WORLD_91 -> SDL_SCANCODE_UNKNOWN */ |
283 | 0x0000u, /* SDLK_WORLD_92 -> SDL_SCANCODE_UNKNOWN */ |
284 | 0x0000u, /* SDLK_WORLD_93 -> SDL_SCANCODE_UNKNOWN */ |
285 | 0x0000u, /* SDLK_WORLD_94 -> SDL_SCANCODE_UNKNOWN */ |
286 | 0x0000u, /* SDLK_WORLD_95 -> SDL_SCANCODE_UNKNOWN */ |
287 | 0x0062u, /* SDLK_KP0 -> SDL_SCANCODE_KP_0 */ |
288 | 0x0059u, /* SDLK_KP1 -> SDL_SCANCODE_KP_1 */ |
289 | 0x005au, /* SDLK_KP2 -> SDL_SCANCODE_KP_2 */ |
290 | 0x005bu, /* SDLK_KP3 -> SDL_SCANCODE_KP_3 */ |
291 | 0x005cu, /* SDLK_KP4 -> SDL_SCANCODE_KP_4 */ |
292 | 0x005du, /* SDLK_KP5 -> SDL_SCANCODE_KP_5 */ |
293 | 0x005eu, /* SDLK_KP6 -> SDL_SCANCODE_KP_6 */ |
294 | 0x005fu, /* SDLK_KP7 -> SDL_SCANCODE_KP_7 */ |
295 | 0x0060u, /* SDLK_KP8 -> SDL_SCANCODE_KP_8 */ |
296 | 0x0061u, /* SDLK_KP9 -> SDL_SCANCODE_KP_9 */ |
297 | 0x0063u, /* SDLK_KP_PERIOD -> SDL_SCANCODE_KP_PERIOD */ |
298 | 0x0054u, /* SDLK_KP_DIVIDE -> SDL_SCANCODE_KP_DIVIDE */ |
299 | 0x0055u, /* SDLK_KP_MULTIPLY -> SDL_SCANCODE_KP_MULTIPLY */ |
300 | 0x0056u, /* SDLK_KP_MINUS -> SDL_SCANCODE_KP_MINUS */ |
301 | 0x0057u, /* SDLK_KP_PLUS -> SDL_SCANCODE_KP_PLUS */ |
302 | 0x0058u, /* SDLK_KP_ENTER -> SDL_SCANCODE_KP_ENTER */ |
303 | 0x0067u, /* SDLK_KP_EQUALS -> SDL_SCANCODE_KP_EQUALS */ |
304 | 0x0052u, /* SDLK_UP -> SDL_SCANCODE_UP */ |
305 | 0x0051u, /* SDLK_DOWN -> SDL_SCANCODE_DOWN */ |
306 | 0x004fu, /* SDLK_RIGHT -> SDL_SCANCODE_RIGHT */ |
307 | 0x0050u, /* SDLK_LEFT -> SDL_SCANCODE_LEFT */ |
308 | 0x0049u, /* SDLK_INSERT -> SDL_SCANCODE_INSERT */ |
309 | 0x004au, /* SDLK_HOME -> SDL_SCANCODE_HOME */ |
310 | 0x004du, /* SDLK_END -> SDL_SCANCODE_END */ |
311 | 0x004bu, /* SDLK_PAGEUP -> SDL_SCANCODE_PAGEUP */ |
312 | 0x004eu, /* SDLK_PAGEDOWN -> SDL_SCANCODE_PAGEDOWN */ |
313 | 0x003au, /* SDLK_F1 -> SDL_SCANCODE_F1 */ |
314 | 0x003bu, /* SDLK_F2 -> SDL_SCANCODE_F2 */ |
315 | 0x003cu, /* SDLK_F3 -> SDL_SCANCODE_F3 */ |
316 | 0x003du, /* SDLK_F4 -> SDL_SCANCODE_F4 */ |
317 | 0x003eu, /* SDLK_F5 -> SDL_SCANCODE_F5 */ |
318 | 0x003fu, /* SDLK_F6 -> SDL_SCANCODE_F6 */ |
319 | 0x0040u, /* SDLK_F7 -> SDL_SCANCODE_F7 */ |
320 | 0x0041u, /* SDLK_F8 -> SDL_SCANCODE_F8 */ |
321 | 0x0042u, /* SDLK_F9 -> SDL_SCANCODE_F9 */ |
322 | 0x0043u, /* SDLK_F10 -> SDL_SCANCODE_F10 */ |
323 | 0x0044u, /* SDLK_F11 -> SDL_SCANCODE_F11 */ |
324 | 0x0045u, /* SDLK_F12 -> SDL_SCANCODE_F12 */ |
325 | 0x0068u, /* SDLK_F13 -> SDL_SCANCODE_F13 */ |
326 | 0x0069u, /* SDLK_F14 -> SDL_SCANCODE_F14 */ |
327 | 0x006au, /* SDLK_F15 -> SDL_SCANCODE_F15 */ |
328 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
329 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
330 | 0x0000u, /* unassigned -> SDL_SCANCODE_UNKNOWN */ |
331 | 0x0053u, /* SDLK_NUMLOCK -> SDL_SCANCODE_NUMLOCKCLEAR */ |
332 | 0x0039u, /* SDLK_CAPSLOCK -> SDL_SCANCODE_CAPSLOCK */ |
333 | 0x0000u, /* SDLK_SCROLLOCK -> SDL_SCANCODE_UNKNOWN */ |
334 | 0x00e5u, /* SDLK_RSHIFT -> SDL_SCANCODE_RSHIFT */ |
335 | 0x00e1u, /* SDLK_LSHIFT -> SDL_SCANCODE_LSHIFT */ |
336 | 0x00e4u, /* SDLK_RCTRL -> SDL_SCANCODE_RCTRL */ |
337 | 0x00e0u, /* SDLK_LCTRL -> SDL_SCANCODE_LCTRL */ |
338 | 0x00e6u, /* SDLK_RALT -> SDL_SCANCODE_RALT */ |
339 | 0x00e2u, /* SDLK_LALT -> SDL_SCANCODE_LALT */ |
340 | 0x0000u, /* SDLK_RMETA -> SDL_SCANCODE_UNKNOWN */ |
341 | 0x0000u, /* SDLK_LMETA -> SDL_SCANCODE_UNKNOWN */ |
342 | 0x00e3u, /* SDLK_LSUPER -> SDL_SCANCODE_LGUI */ |
343 | 0x00e7u, /* SDLK_RSUPER -> SDL_SCANCODE_RGUI */ |
344 | 0x0101u, /* SDLK_MODE -> SDL_SCANCODE_MODE */ |
345 | 0x0000u, /* SDLK_COMPOSE -> SDL_SCANCODE_UNKNOWN */ |
346 | 0x0075u, /* SDLK_HELP -> SDL_SCANCODE_HELP */ |
347 | 0x0000u, /* SDLK_PRINT -> SDL_SCANCODE_UNKNOWN */ |
348 | 0x009au, /* SDLK_SYSREQ -> SDL_SCANCODE_SYSREQ */ |
349 | 0x0000u, /* SDLK_BREAK -> SDL_SCANCODE_UNKNOWN */ |
350 | 0x0076u, /* SDLK_MENU -> SDL_SCANCODE_MENU */ |
351 | 0x0066u, /* SDLK_POWER -> SDL_SCANCODE_POWER */ |
352 | 0x0000u, /* SDLK_EURO -> SDL_SCANCODE_UNKNOWN */ |
353 | 0x007au, /* SDLK_UNDO -> SDL_SCANCODE_UNDO */ |
354 | }; |
355 | |
356 | if (keysym >= ARRAY_SIZE(keysym2scancode)) |
357 | return 0; |
358 | return keysym2scancode[keysym]; |
359 | } |
360 | |
361 | uint16_t sdl_scancode2keysym(uint16_t scancode) |
362 | { |
363 | static const uint16_t scancode2keysym[285] = { |
364 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
365 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
366 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
367 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
368 | 0x0061u, /* SDL_SCANCODE_A -> SDLK_a */ |
369 | 0x0062u, /* SDL_SCANCODE_B -> SDLK_b */ |
370 | 0x0063u, /* SDL_SCANCODE_C -> SDLK_c */ |
371 | 0x0064u, /* SDL_SCANCODE_D -> SDLK_d */ |
372 | 0x0065u, /* SDL_SCANCODE_E -> SDLK_e */ |
373 | 0x0066u, /* SDL_SCANCODE_F -> SDLK_f */ |
374 | 0x0067u, /* SDL_SCANCODE_G -> SDLK_g */ |
375 | 0x0068u, /* SDL_SCANCODE_H -> SDLK_h */ |
376 | 0x0069u, /* SDL_SCANCODE_I -> SDLK_i */ |
377 | 0x006au, /* SDL_SCANCODE_J -> SDLK_j */ |
378 | 0x006bu, /* SDL_SCANCODE_K -> SDLK_k */ |
379 | 0x006cu, /* SDL_SCANCODE_L -> SDLK_l */ |
380 | 0x006du, /* SDL_SCANCODE_M -> SDLK_m */ |
381 | 0x006eu, /* SDL_SCANCODE_N -> SDLK_n */ |
382 | 0x006fu, /* SDL_SCANCODE_O -> SDLK_o */ |
383 | 0x0070u, /* SDL_SCANCODE_P -> SDLK_p */ |
384 | 0x0071u, /* SDL_SCANCODE_Q -> SDLK_q */ |
385 | 0x0072u, /* SDL_SCANCODE_R -> SDLK_r */ |
386 | 0x0073u, /* SDL_SCANCODE_S -> SDLK_s */ |
387 | 0x0074u, /* SDL_SCANCODE_T -> SDLK_t */ |
388 | 0x0075u, /* SDL_SCANCODE_U -> SDLK_u */ |
389 | 0x0076u, /* SDL_SCANCODE_V -> SDLK_v */ |
390 | 0x0077u, /* SDL_SCANCODE_W -> SDLK_w */ |
391 | 0x0078u, /* SDL_SCANCODE_X -> SDLK_x */ |
392 | 0x0079u, /* SDL_SCANCODE_Y -> SDLK_y */ |
393 | 0x007au, /* SDL_SCANCODE_Z -> SDLK_z */ |
394 | 0x0031u, /* SDL_SCANCODE_1 -> SDLK_1 */ |
395 | 0x0032u, /* SDL_SCANCODE_2 -> SDLK_2 */ |
396 | 0x0033u, /* SDL_SCANCODE_3 -> SDLK_3 */ |
397 | 0x0034u, /* SDL_SCANCODE_4 -> SDLK_4 */ |
398 | 0x0035u, /* SDL_SCANCODE_5 -> SDLK_5 */ |
399 | 0x0036u, /* SDL_SCANCODE_6 -> SDLK_6 */ |
400 | 0x0037u, /* SDL_SCANCODE_7 -> SDLK_7 */ |
401 | 0x0038u, /* SDL_SCANCODE_8 -> SDLK_8 */ |
402 | 0x0039u, /* SDL_SCANCODE_9 -> SDLK_9 */ |
403 | 0x0030u, /* SDL_SCANCODE_0 -> SDLK_0 */ |
404 | 0x000du, /* SDL_SCANCODE_RETURN -> SDLK_RETURN */ |
405 | 0x001bu, /* SDL_SCANCODE_ESCAPE -> SDLK_ESCAPE */ |
406 | 0x0008u, /* SDL_SCANCODE_BACKSPACE -> SDLK_BACKSPACE */ |
407 | 0x0009u, /* SDL_SCANCODE_TAB -> SDLK_TAB */ |
408 | 0x0020u, /* SDL_SCANCODE_SPACE -> SDLK_SPACE */ |
409 | 0x002du, /* SDL_SCANCODE_MINUS -> SDLK_MINUS */ |
410 | 0x003du, /* SDL_SCANCODE_EQUALS -> SDLK_EQUALS */ |
411 | 0x005bu, /* SDL_SCANCODE_LEFTBRACKET -> SDLK_LEFTBRACKET */ |
412 | 0x005du, /* SDL_SCANCODE_RIGHTBRACKET -> SDLK_RIGHTBRACKET */ |
413 | 0x005cu, /* SDL_SCANCODE_BACKSLASH -> SDLK_BACKSLASH */ |
414 | 0x0000u, /* SDL_SCANCODE_NONUSHASH -> SDLK_UNKNOWN */ |
415 | 0x003bu, /* SDL_SCANCODE_SEMICOLON -> SDLK_SEMICOLON */ |
416 | 0x0000u, /* SDL_SCANCODE_APOSTROPHE -> SDLK_UNKNOWN */ |
417 | 0x0000u, /* SDL_SCANCODE_GRAVE -> SDLK_UNKNOWN */ |
418 | 0x002cu, /* SDL_SCANCODE_COMMA -> SDLK_COMMA */ |
419 | 0x002eu, /* SDL_SCANCODE_PERIOD -> SDLK_PERIOD */ |
420 | 0x002fu, /* SDL_SCANCODE_SLASH -> SDLK_SLASH */ |
421 | 0x012du, /* SDL_SCANCODE_CAPSLOCK -> SDLK_CAPSLOCK */ |
422 | 0x011au, /* SDL_SCANCODE_F1 -> SDLK_F1 */ |
423 | 0x011bu, /* SDL_SCANCODE_F2 -> SDLK_F2 */ |
424 | 0x011cu, /* SDL_SCANCODE_F3 -> SDLK_F3 */ |
425 | 0x011du, /* SDL_SCANCODE_F4 -> SDLK_F4 */ |
426 | 0x011eu, /* SDL_SCANCODE_F5 -> SDLK_F5 */ |
427 | 0x011fu, /* SDL_SCANCODE_F6 -> SDLK_F6 */ |
428 | 0x0120u, /* SDL_SCANCODE_F7 -> SDLK_F7 */ |
429 | 0x0121u, /* SDL_SCANCODE_F8 -> SDLK_F8 */ |
430 | 0x0122u, /* SDL_SCANCODE_F9 -> SDLK_F9 */ |
431 | 0x0123u, /* SDL_SCANCODE_F10 -> SDLK_F10 */ |
432 | 0x0124u, /* SDL_SCANCODE_F11 -> SDLK_F11 */ |
433 | 0x0125u, /* SDL_SCANCODE_F12 -> SDLK_F12 */ |
434 | 0x0000u, /* SDL_SCANCODE_PRINTSCREEN -> SDLK_UNKNOWN */ |
435 | 0x0000u, /* SDL_SCANCODE_SCROLLLOCK -> SDLK_UNKNOWN */ |
436 | 0x0013u, /* SDL_SCANCODE_PAUSE -> SDLK_PAUSE */ |
437 | 0x0115u, /* SDL_SCANCODE_INSERT -> SDLK_INSERT */ |
438 | 0x0116u, /* SDL_SCANCODE_HOME -> SDLK_HOME */ |
439 | 0x0118u, /* SDL_SCANCODE_PAGEUP -> SDLK_PAGEUP */ |
440 | 0x007fu, /* SDL_SCANCODE_DELETE -> SDLK_DELETE */ |
441 | 0x0117u, /* SDL_SCANCODE_END -> SDLK_END */ |
442 | 0x0119u, /* SDL_SCANCODE_PAGEDOWN -> SDLK_PAGEDOWN */ |
443 | 0x0113u, /* SDL_SCANCODE_RIGHT -> SDLK_RIGHT */ |
444 | 0x0114u, /* SDL_SCANCODE_LEFT -> SDLK_LEFT */ |
445 | 0x0112u, /* SDL_SCANCODE_DOWN -> SDLK_DOWN */ |
446 | 0x0111u, /* SDL_SCANCODE_UP -> SDLK_UP */ |
447 | 0x012cu, /* SDL_SCANCODE_NUMLOCKCLEAR -> SDLK_NUMLOCK */ |
448 | 0x010bu, /* SDL_SCANCODE_KP_DIVIDE -> SDLK_KP_DIVIDE */ |
449 | 0x010cu, /* SDL_SCANCODE_KP_MULTIPLY -> SDLK_KP_MULTIPLY */ |
450 | 0x010du, /* SDL_SCANCODE_KP_MINUS -> SDLK_KP_MINUS */ |
451 | 0x010eu, /* SDL_SCANCODE_KP_PLUS -> SDLK_KP_PLUS */ |
452 | 0x010fu, /* SDL_SCANCODE_KP_ENTER -> SDLK_KP_ENTER */ |
453 | 0x0101u, /* SDL_SCANCODE_KP_1 -> SDLK_KP1 */ |
454 | 0x0102u, /* SDL_SCANCODE_KP_2 -> SDLK_KP2 */ |
455 | 0x0103u, /* SDL_SCANCODE_KP_3 -> SDLK_KP3 */ |
456 | 0x0104u, /* SDL_SCANCODE_KP_4 -> SDLK_KP4 */ |
457 | 0x0105u, /* SDL_SCANCODE_KP_5 -> SDLK_KP5 */ |
458 | 0x0106u, /* SDL_SCANCODE_KP_6 -> SDLK_KP6 */ |
459 | 0x0107u, /* SDL_SCANCODE_KP_7 -> SDLK_KP7 */ |
460 | 0x0108u, /* SDL_SCANCODE_KP_8 -> SDLK_KP8 */ |
461 | 0x0109u, /* SDL_SCANCODE_KP_9 -> SDLK_KP9 */ |
462 | 0x0100u, /* SDL_SCANCODE_KP_0 -> SDLK_KP0 */ |
463 | 0x010au, /* SDL_SCANCODE_KP_PERIOD -> SDLK_KP_PERIOD */ |
464 | 0x0000u, /* SDL_SCANCODE_NONUSBACKSLASH -> SDLK_UNKNOWN */ |
465 | 0x0000u, /* SDL_SCANCODE_APPLICATION -> SDLK_UNKNOWN */ |
466 | 0x0140u, /* SDL_SCANCODE_POWER -> SDLK_POWER */ |
467 | 0x0110u, /* SDL_SCANCODE_KP_EQUALS -> SDLK_KP_EQUALS */ |
468 | 0x0126u, /* SDL_SCANCODE_F13 -> SDLK_F13 */ |
469 | 0x0127u, /* SDL_SCANCODE_F14 -> SDLK_F14 */ |
470 | 0x0128u, /* SDL_SCANCODE_F15 -> SDLK_F15 */ |
471 | 0x0000u, /* SDL_SCANCODE_F16 -> SDLK_UNKNOWN */ |
472 | 0x0000u, /* SDL_SCANCODE_F17 -> SDLK_UNKNOWN */ |
473 | 0x0000u, /* SDL_SCANCODE_F18 -> SDLK_UNKNOWN */ |
474 | 0x0000u, /* SDL_SCANCODE_F19 -> SDLK_UNKNOWN */ |
475 | 0x0000u, /* SDL_SCANCODE_F20 -> SDLK_UNKNOWN */ |
476 | 0x0000u, /* SDL_SCANCODE_F21 -> SDLK_UNKNOWN */ |
477 | 0x0000u, /* SDL_SCANCODE_F22 -> SDLK_UNKNOWN */ |
478 | 0x0000u, /* SDL_SCANCODE_F23 -> SDLK_UNKNOWN */ |
479 | 0x0000u, /* SDL_SCANCODE_F24 -> SDLK_UNKNOWN */ |
480 | 0x0000u, /* SDL_SCANCODE_EXECUTE -> SDLK_UNKNOWN */ |
481 | 0x013bu, /* SDL_SCANCODE_HELP -> SDLK_HELP */ |
482 | 0x013fu, /* SDL_SCANCODE_MENU -> SDLK_MENU */ |
483 | 0x0000u, /* SDL_SCANCODE_SELECT -> SDLK_UNKNOWN */ |
484 | 0x0000u, /* SDL_SCANCODE_STOP -> SDLK_UNKNOWN */ |
485 | 0x0000u, /* SDL_SCANCODE_AGAIN -> SDLK_UNKNOWN */ |
486 | 0x0142u, /* SDL_SCANCODE_UNDO -> SDLK_UNDO */ |
487 | 0x0000u, /* SDL_SCANCODE_CUT -> SDLK_UNKNOWN */ |
488 | 0x0000u, /* SDL_SCANCODE_COPY -> SDLK_UNKNOWN */ |
489 | 0x0000u, /* SDL_SCANCODE_PASTE -> SDLK_UNKNOWN */ |
490 | 0x0000u, /* SDL_SCANCODE_FIND -> SDLK_UNKNOWN */ |
491 | 0x0000u, /* SDL_SCANCODE_MUTE -> SDLK_UNKNOWN */ |
492 | 0x0000u, /* SDL_SCANCODE_VOLUMEUP -> SDLK_UNKNOWN */ |
493 | 0x0000u, /* SDL_SCANCODE_VOLUMEDOWN -> SDLK_UNKNOWN */ |
494 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
495 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
496 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
497 | 0x0000u, /* SDL_SCANCODE_KP_COMMA -> SDLK_UNKNOWN */ |
498 | 0x0000u, /* SDL_SCANCODE_KP_EQUALSAS400 -> SDLK_UNKNOWN */ |
499 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL1 -> SDLK_UNKNOWN */ |
500 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL2 -> SDLK_UNKNOWN */ |
501 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL3 -> SDLK_UNKNOWN */ |
502 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL4 -> SDLK_UNKNOWN */ |
503 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL5 -> SDLK_UNKNOWN */ |
504 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL6 -> SDLK_UNKNOWN */ |
505 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL7 -> SDLK_UNKNOWN */ |
506 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL8 -> SDLK_UNKNOWN */ |
507 | 0x0000u, /* SDL_SCANCODE_INTERNATIONAL9 -> SDLK_UNKNOWN */ |
508 | 0x0000u, /* SDL_SCANCODE_LANG1 -> SDLK_UNKNOWN */ |
509 | 0x0000u, /* SDL_SCANCODE_LANG2 -> SDLK_UNKNOWN */ |
510 | 0x0000u, /* SDL_SCANCODE_LANG3 -> SDLK_UNKNOWN */ |
511 | 0x0000u, /* SDL_SCANCODE_LANG4 -> SDLK_UNKNOWN */ |
512 | 0x0000u, /* SDL_SCANCODE_LANG5 -> SDLK_UNKNOWN */ |
513 | 0x0000u, /* SDL_SCANCODE_LANG6 -> SDLK_UNKNOWN */ |
514 | 0x0000u, /* SDL_SCANCODE_LANG7 -> SDLK_UNKNOWN */ |
515 | 0x0000u, /* SDL_SCANCODE_LANG8 -> SDLK_UNKNOWN */ |
516 | 0x0000u, /* SDL_SCANCODE_LANG9 -> SDLK_UNKNOWN */ |
517 | 0x0000u, /* SDL_SCANCODE_ALTERASE -> SDLK_UNKNOWN */ |
518 | 0x013du, /* SDL_SCANCODE_SYSREQ -> SDLK_SYSREQ */ |
519 | 0x0000u, /* SDL_SCANCODE_CANCEL -> SDLK_UNKNOWN */ |
520 | 0x000cu, /* SDL_SCANCODE_CLEAR -> SDLK_CLEAR */ |
521 | 0x0000u, /* SDL_SCANCODE_PRIOR -> SDLK_UNKNOWN */ |
522 | 0x0000u, /* SDL_SCANCODE_RETURN2 -> SDLK_UNKNOWN */ |
523 | 0x0000u, /* SDL_SCANCODE_SEPARATOR -> SDLK_UNKNOWN */ |
524 | 0x0000u, /* SDL_SCANCODE_OUT -> SDLK_UNKNOWN */ |
525 | 0x0000u, /* SDL_SCANCODE_OPER -> SDLK_UNKNOWN */ |
526 | 0x0000u, /* SDL_SCANCODE_CLEARAGAIN -> SDLK_UNKNOWN */ |
527 | 0x0000u, /* SDL_SCANCODE_CRSEL -> SDLK_UNKNOWN */ |
528 | 0x0000u, /* SDL_SCANCODE_EXSEL -> SDLK_UNKNOWN */ |
529 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
530 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
531 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
532 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
533 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
534 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
535 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
536 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
537 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
538 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
539 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
540 | 0x0000u, /* SDL_SCANCODE_KP_00 -> SDLK_UNKNOWN */ |
541 | 0x0000u, /* SDL_SCANCODE_KP_000 -> SDLK_UNKNOWN */ |
542 | 0x0000u, /* SDL_SCANCODE_THOUSANDSSEPARATOR -> SDLK_UNKNOWN */ |
543 | 0x0000u, /* SDL_SCANCODE_DECIMALSEPARATOR -> SDLK_UNKNOWN */ |
544 | 0x0000u, /* SDL_SCANCODE_CURRENCYUNIT -> SDLK_UNKNOWN */ |
545 | 0x0000u, /* SDL_SCANCODE_CURRENCYSUBUNIT -> SDLK_UNKNOWN */ |
546 | 0x0000u, /* SDL_SCANCODE_KP_LEFTPAREN -> SDLK_UNKNOWN */ |
547 | 0x0000u, /* SDL_SCANCODE_KP_RIGHTPAREN -> SDLK_UNKNOWN */ |
548 | 0x0000u, /* SDL_SCANCODE_KP_LEFTBRACE -> SDLK_UNKNOWN */ |
549 | 0x0000u, /* SDL_SCANCODE_KP_RIGHTBRACE -> SDLK_UNKNOWN */ |
550 | 0x0000u, /* SDL_SCANCODE_KP_TAB -> SDLK_UNKNOWN */ |
551 | 0x0000u, /* SDL_SCANCODE_KP_BACKSPACE -> SDLK_UNKNOWN */ |
552 | 0x0000u, /* SDL_SCANCODE_KP_A -> SDLK_UNKNOWN */ |
553 | 0x0000u, /* SDL_SCANCODE_KP_B -> SDLK_UNKNOWN */ |
554 | 0x0000u, /* SDL_SCANCODE_KP_C -> SDLK_UNKNOWN */ |
555 | 0x0000u, /* SDL_SCANCODE_KP_D -> SDLK_UNKNOWN */ |
556 | 0x0000u, /* SDL_SCANCODE_KP_E -> SDLK_UNKNOWN */ |
557 | 0x0000u, /* SDL_SCANCODE_KP_F -> SDLK_UNKNOWN */ |
558 | 0x0000u, /* SDL_SCANCODE_KP_XOR -> SDLK_UNKNOWN */ |
559 | 0x0000u, /* SDL_SCANCODE_KP_POWER -> SDLK_UNKNOWN */ |
560 | 0x0000u, /* SDL_SCANCODE_KP_PERCENT -> SDLK_UNKNOWN */ |
561 | 0x0000u, /* SDL_SCANCODE_KP_LESS -> SDLK_UNKNOWN */ |
562 | 0x0000u, /* SDL_SCANCODE_KP_GREATER -> SDLK_UNKNOWN */ |
563 | 0x0000u, /* SDL_SCANCODE_KP_AMPERSAND -> SDLK_UNKNOWN */ |
564 | 0x0000u, /* SDL_SCANCODE_KP_DBLAMPERSAND -> SDLK_UNKNOWN */ |
565 | 0x0000u, /* SDL_SCANCODE_KP_VERTICALBAR -> SDLK_UNKNOWN */ |
566 | 0x0000u, /* SDL_SCANCODE_KP_DBLVERTICALBAR -> SDLK_UNKNOWN */ |
567 | 0x0000u, /* SDL_SCANCODE_KP_COLON -> SDLK_UNKNOWN */ |
568 | 0x0000u, /* SDL_SCANCODE_KP_HASH -> SDLK_UNKNOWN */ |
569 | 0x0000u, /* SDL_SCANCODE_KP_SPACE -> SDLK_UNKNOWN */ |
570 | 0x0000u, /* SDL_SCANCODE_KP_AT -> SDLK_UNKNOWN */ |
571 | 0x0000u, /* SDL_SCANCODE_KP_EXCLAM -> SDLK_UNKNOWN */ |
572 | 0x0000u, /* SDL_SCANCODE_KP_MEMSTORE -> SDLK_UNKNOWN */ |
573 | 0x0000u, /* SDL_SCANCODE_KP_MEMRECALL -> SDLK_UNKNOWN */ |
574 | 0x0000u, /* SDL_SCANCODE_KP_MEMCLEAR -> SDLK_UNKNOWN */ |
575 | 0x0000u, /* SDL_SCANCODE_KP_MEMADD -> SDLK_UNKNOWN */ |
576 | 0x0000u, /* SDL_SCANCODE_KP_MEMSUBTRACT -> SDLK_UNKNOWN */ |
577 | 0x0000u, /* SDL_SCANCODE_KP_MEMMULTIPLY -> SDLK_UNKNOWN */ |
578 | 0x0000u, /* SDL_SCANCODE_KP_MEMDIVIDE -> SDLK_UNKNOWN */ |
579 | 0x0000u, /* SDL_SCANCODE_KP_PLUSMINUS -> SDLK_UNKNOWN */ |
580 | 0x0000u, /* SDL_SCANCODE_KP_CLEAR -> SDLK_UNKNOWN */ |
581 | 0x0000u, /* SDL_SCANCODE_KP_CLEARENTRY -> SDLK_UNKNOWN */ |
582 | 0x0000u, /* SDL_SCANCODE_KP_BINARY -> SDLK_UNKNOWN */ |
583 | 0x0000u, /* SDL_SCANCODE_KP_OCTAL -> SDLK_UNKNOWN */ |
584 | 0x0000u, /* SDL_SCANCODE_KP_DECIMAL -> SDLK_UNKNOWN */ |
585 | 0x0000u, /* SDL_SCANCODE_KP_HEXADECIMAL -> SDLK_UNKNOWN */ |
586 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
587 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
588 | 0x0132u, /* SDL_SCANCODE_LCTRL -> SDLK_LCTRL */ |
589 | 0x0130u, /* SDL_SCANCODE_LSHIFT -> SDLK_LSHIFT */ |
590 | 0x0134u, /* SDL_SCANCODE_LALT -> SDLK_LALT */ |
591 | 0x0137u, /* SDL_SCANCODE_LGUI -> SDLK_LSUPER */ |
592 | 0x0131u, /* SDL_SCANCODE_RCTRL -> SDLK_RCTRL */ |
593 | 0x012fu, /* SDL_SCANCODE_RSHIFT -> SDLK_RSHIFT */ |
594 | 0x0133u, /* SDL_SCANCODE_RALT -> SDLK_RALT */ |
595 | 0x0138u, /* SDL_SCANCODE_RGUI -> SDLK_RSUPER */ |
596 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
597 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
598 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
599 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
600 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
601 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
602 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
603 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
604 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
605 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
606 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
607 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
608 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
609 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
610 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
611 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
612 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
613 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
614 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
615 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
616 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
617 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
618 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
619 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
620 | 0x0000u, /* unassigned -> SDLK_UNKNOWN */ |
621 | 0x0139u, /* SDL_SCANCODE_MODE -> SDLK_MODE */ |
622 | 0x0000u, /* SDL_SCANCODE_AUDIONEXT -> SDLK_UNKNOWN */ |
623 | 0x0000u, /* SDL_SCANCODE_AUDIOPREV -> SDLK_UNKNOWN */ |
624 | 0x0000u, /* SDL_SCANCODE_AUDIOSTOP -> SDLK_UNKNOWN */ |
625 | 0x0000u, /* SDL_SCANCODE_AUDIOPLAY -> SDLK_UNKNOWN */ |
626 | 0x0000u, /* SDL_SCANCODE_AUDIOMUTE -> SDLK_UNKNOWN */ |
627 | 0x0000u, /* SDL_SCANCODE_MEDIASELECT -> SDLK_UNKNOWN */ |
628 | 0x0000u, /* SDL_SCANCODE_WWW -> SDLK_UNKNOWN */ |
629 | 0x0000u, /* SDL_SCANCODE_MAIL -> SDLK_UNKNOWN */ |
630 | 0x0000u, /* SDL_SCANCODE_CALCULATOR -> SDLK_UNKNOWN */ |
631 | 0x0000u, /* SDL_SCANCODE_COMPUTER -> SDLK_UNKNOWN */ |
632 | 0x0000u, /* SDL_SCANCODE_AC_SEARCH -> SDLK_UNKNOWN */ |
633 | 0x0000u, /* SDL_SCANCODE_AC_HOME -> SDLK_UNKNOWN */ |
634 | 0x0000u, /* SDL_SCANCODE_AC_BACK -> SDLK_UNKNOWN */ |
635 | 0x0000u, /* SDL_SCANCODE_AC_FORWARD -> SDLK_UNKNOWN */ |
636 | 0x0000u, /* SDL_SCANCODE_AC_STOP -> SDLK_UNKNOWN */ |
637 | 0x0000u, /* SDL_SCANCODE_AC_REFRESH -> SDLK_UNKNOWN */ |
638 | 0x0000u, /* SDL_SCANCODE_AC_BOOKMARKS -> SDLK_UNKNOWN */ |
639 | 0x0000u, /* SDL_SCANCODE_BRIGHTNESSDOWN -> SDLK_UNKNOWN */ |
640 | 0x0000u, /* SDL_SCANCODE_BRIGHTNESSUP -> SDLK_UNKNOWN */ |
641 | 0x0000u, /* SDL_SCANCODE_DISPLAYSWITCH -> SDLK_UNKNOWN */ |
642 | 0x0000u, /* SDL_SCANCODE_KBDILLUMTOGGLE -> SDLK_UNKNOWN */ |
643 | 0x0000u, /* SDL_SCANCODE_KBDILLUMDOWN -> SDLK_UNKNOWN */ |
644 | 0x0000u, /* SDL_SCANCODE_KBDILLUMUP -> SDLK_UNKNOWN */ |
645 | 0x0000u, /* SDL_SCANCODE_EJECT -> SDLK_UNKNOWN */ |
646 | 0x0000u, /* SDL_SCANCODE_SLEEP -> SDLK_UNKNOWN */ |
647 | 0x0000u, /* SDL_SCANCODE_APP1 -> SDLK_UNKNOWN */ |
648 | 0x0000u, /* SDL_SCANCODE_APP2 -> SDLK_UNKNOWN */ |
649 | }; |
650 | |
651 | if (scancode >= ARRAY_SIZE(scancode2keysym)) |
652 | return 0; |
653 | return scancode2keysym[scancode]; |
654 | } |
655 | |