Merge pull request #26273 from 78andyp/blurayfixes2
[xbmc.git] / xbmc / platform / android / peripherals / AndroidJoystickTranslator.cpp
blobf8f638cbdef7881c51c4a7178bc8482389b34b25
1 /*
2 * Copyright (C) 2017-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "AndroidJoystickTranslator.h"
11 #include "games/controllers/DefaultController.h"
13 #include <android/input.h>
14 #include <android/keycodes.h>
16 using namespace KODI;
17 using namespace PERIPHERALS;
19 const char* CAndroidJoystickTranslator::TranslateAxis(int axisId)
21 switch (axisId)
23 case AMOTION_EVENT_AXIS_X:
24 return "AMOTION_EVENT_AXIS_X";
25 case AMOTION_EVENT_AXIS_Y:
26 return "AMOTION_EVENT_AXIS_Y";
27 case AMOTION_EVENT_AXIS_PRESSURE:
28 return "AMOTION_EVENT_AXIS_PRESSURE";
29 case AMOTION_EVENT_AXIS_SIZE:
30 return "AMOTION_EVENT_AXIS_SIZE";
31 case AMOTION_EVENT_AXIS_TOUCH_MAJOR:
32 return "AMOTION_EVENT_AXIS_TOUCH_MAJOR";
33 case AMOTION_EVENT_AXIS_TOUCH_MINOR:
34 return "AMOTION_EVENT_AXIS_TOUCH_MINOR";
35 case AMOTION_EVENT_AXIS_TOOL_MAJOR:
36 return "AMOTION_EVENT_AXIS_TOOL_MAJOR";
37 case AMOTION_EVENT_AXIS_TOOL_MINOR:
38 return "AMOTION_EVENT_AXIS_TOOL_MINOR";
39 case AMOTION_EVENT_AXIS_ORIENTATION:
40 return "AMOTION_EVENT_AXIS_ORIENTATION";
41 case AMOTION_EVENT_AXIS_VSCROLL:
42 return "AMOTION_EVENT_AXIS_VSCROLL";
43 case AMOTION_EVENT_AXIS_HSCROLL:
44 return "AMOTION_EVENT_AXIS_HSCROLL";
45 case AMOTION_EVENT_AXIS_Z:
46 return "AMOTION_EVENT_AXIS_Z";
47 case AMOTION_EVENT_AXIS_RX:
48 return "AMOTION_EVENT_AXIS_RX";
49 case AMOTION_EVENT_AXIS_RY:
50 return "AMOTION_EVENT_AXIS_RY";
51 case AMOTION_EVENT_AXIS_RZ:
52 return "AMOTION_EVENT_AXIS_RZ";
53 case AMOTION_EVENT_AXIS_HAT_X:
54 return "AMOTION_EVENT_AXIS_HAT_X";
55 case AMOTION_EVENT_AXIS_HAT_Y:
56 return "AMOTION_EVENT_AXIS_HAT_Y";
57 case AMOTION_EVENT_AXIS_LTRIGGER:
58 return "AMOTION_EVENT_AXIS_LTRIGGER";
59 case AMOTION_EVENT_AXIS_RTRIGGER:
60 return "AMOTION_EVENT_AXIS_RTRIGGER";
61 case AMOTION_EVENT_AXIS_THROTTLE:
62 return "AMOTION_EVENT_AXIS_THROTTLE";
63 case AMOTION_EVENT_AXIS_RUDDER:
64 return "AMOTION_EVENT_AXIS_RUDDER";
65 case AMOTION_EVENT_AXIS_WHEEL:
66 return "AMOTION_EVENT_AXIS_WHEEL";
67 case AMOTION_EVENT_AXIS_GAS:
68 return "AMOTION_EVENT_AXIS_GAS";
69 case AMOTION_EVENT_AXIS_BRAKE:
70 return "AMOTION_EVENT_AXIS_BRAKE";
71 case AMOTION_EVENT_AXIS_DISTANCE:
72 return "AMOTION_EVENT_AXIS_DISTANCE";
73 case AMOTION_EVENT_AXIS_TILT:
74 return "AMOTION_EVENT_AXIS_TILT";
75 case AMOTION_EVENT_AXIS_GENERIC_1:
76 return "AMOTION_EVENT_AXIS_GENERIC_1";
77 case AMOTION_EVENT_AXIS_GENERIC_2:
78 return "AMOTION_EVENT_AXIS_GENERIC_2";
79 case AMOTION_EVENT_AXIS_GENERIC_3:
80 return "AMOTION_EVENT_AXIS_GENERIC_3";
81 case AMOTION_EVENT_AXIS_GENERIC_4:
82 return "AMOTION_EVENT_AXIS_GENERIC_4";
83 case AMOTION_EVENT_AXIS_GENERIC_5:
84 return "AMOTION_EVENT_AXIS_GENERIC_5";
85 case AMOTION_EVENT_AXIS_GENERIC_6:
86 return "AMOTION_EVENT_AXIS_GENERIC_6";
87 case AMOTION_EVENT_AXIS_GENERIC_7:
88 return "AMOTION_EVENT_AXIS_GENERIC_7";
89 case AMOTION_EVENT_AXIS_GENERIC_8:
90 return "AMOTION_EVENT_AXIS_GENERIC_8";
91 case AMOTION_EVENT_AXIS_GENERIC_9:
92 return "AMOTION_EVENT_AXIS_GENERIC_9";
93 case AMOTION_EVENT_AXIS_GENERIC_10:
94 return "AMOTION_EVENT_AXIS_GENERIC_10";
95 case AMOTION_EVENT_AXIS_GENERIC_11:
96 return "AMOTION_EVENT_AXIS_GENERIC_11";
97 case AMOTION_EVENT_AXIS_GENERIC_12:
98 return "AMOTION_EVENT_AXIS_GENERIC_12";
99 case AMOTION_EVENT_AXIS_GENERIC_13:
100 return "AMOTION_EVENT_AXIS_GENERIC_13";
101 case AMOTION_EVENT_AXIS_GENERIC_14:
102 return "AMOTION_EVENT_AXIS_GENERIC_14";
103 case AMOTION_EVENT_AXIS_GENERIC_15:
104 return "AMOTION_EVENT_AXIS_GENERIC_15";
105 case AMOTION_EVENT_AXIS_GENERIC_16:
106 return "AMOTION_EVENT_AXIS_GENERIC_16";
109 return "unknown";
112 const char* CAndroidJoystickTranslator::TranslateKeyCode(int keyCode)
114 switch (keyCode)
116 case AKEYCODE_UNKNOWN:
117 return "AKEYCODE_UNKNOWN";
118 case AKEYCODE_SOFT_LEFT:
119 return "AKEYCODE_SOFT_LEFT";
120 case AKEYCODE_SOFT_RIGHT:
121 return "AKEYCODE_SOFT_RIGHT";
122 case AKEYCODE_HOME:
123 return "AKEYCODE_HOME";
124 case AKEYCODE_BACK:
125 return "AKEYCODE_BACK";
126 case AKEYCODE_CALL:
127 return "AKEYCODE_CALL";
128 case AKEYCODE_ENDCALL:
129 return "AKEYCODE_ENDCALL";
130 case AKEYCODE_0:
131 return "AKEYCODE_0";
132 case AKEYCODE_1:
133 return "AKEYCODE_1";
134 case AKEYCODE_2:
135 return "AKEYCODE_2";
136 case AKEYCODE_3:
137 return "AKEYCODE_3";
138 case AKEYCODE_4:
139 return "AKEYCODE_4";
140 case AKEYCODE_5:
141 return "AKEYCODE_5";
142 case AKEYCODE_6:
143 return "AKEYCODE_6";
144 case AKEYCODE_7:
145 return "AKEYCODE_7";
146 case AKEYCODE_8:
147 return "AKEYCODE_8";
148 case AKEYCODE_9:
149 return "AKEYCODE_9";
150 case AKEYCODE_STAR:
151 return "AKEYCODE_STAR";
152 case AKEYCODE_POUND:
153 return "AKEYCODE_POUND";
154 case AKEYCODE_DPAD_UP:
155 return "AKEYCODE_DPAD_UP";
156 case AKEYCODE_DPAD_DOWN:
157 return "AKEYCODE_DPAD_DOWN";
158 case AKEYCODE_DPAD_LEFT:
159 return "AKEYCODE_DPAD_LEFT";
160 case AKEYCODE_DPAD_RIGHT:
161 return "AKEYCODE_DPAD_RIGHT";
162 case AKEYCODE_DPAD_CENTER:
163 return "AKEYCODE_DPAD_CENTER";
164 case AKEYCODE_VOLUME_UP:
165 return "AKEYCODE_VOLUME_UP";
166 case AKEYCODE_VOLUME_DOWN:
167 return "AKEYCODE_VOLUME_DOWN";
168 case AKEYCODE_POWER:
169 return "AKEYCODE_POWER";
170 case AKEYCODE_CAMERA:
171 return "AKEYCODE_CAMERA";
172 case AKEYCODE_CLEAR:
173 return "AKEYCODE_CLEAR";
174 case AKEYCODE_A:
175 return "AKEYCODE_A";
176 case AKEYCODE_B:
177 return "AKEYCODE_B";
178 case AKEYCODE_C:
179 return "AKEYCODE_C";
180 case AKEYCODE_D:
181 return "AKEYCODE_D";
182 case AKEYCODE_E:
183 return "AKEYCODE_E";
184 case AKEYCODE_F:
185 return "AKEYCODE_F";
186 case AKEYCODE_G:
187 return "AKEYCODE_G";
188 case AKEYCODE_H:
189 return "AKEYCODE_H";
190 case AKEYCODE_I:
191 return "AKEYCODE_I";
192 case AKEYCODE_J:
193 return "AKEYCODE_J";
194 case AKEYCODE_K:
195 return "AKEYCODE_K";
196 case AKEYCODE_L:
197 return "AKEYCODE_L";
198 case AKEYCODE_M:
199 return "AKEYCODE_M";
200 case AKEYCODE_N:
201 return "AKEYCODE_N";
202 case AKEYCODE_O:
203 return "AKEYCODE_O";
204 case AKEYCODE_P:
205 return "AKEYCODE_P";
206 case AKEYCODE_Q:
207 return "AKEYCODE_Q";
208 case AKEYCODE_R:
209 return "AKEYCODE_R";
210 case AKEYCODE_S:
211 return "AKEYCODE_S";
212 case AKEYCODE_T:
213 return "AKEYCODE_T";
214 case AKEYCODE_U:
215 return "AKEYCODE_U";
216 case AKEYCODE_V:
217 return "AKEYCODE_V";
218 case AKEYCODE_W:
219 return "AKEYCODE_W";
220 case AKEYCODE_X:
221 return "AKEYCODE_X";
222 case AKEYCODE_Y:
223 return "AKEYCODE_Y";
224 case AKEYCODE_Z:
225 return "AKEYCODE_Z";
226 case AKEYCODE_COMMA:
227 return "AKEYCODE_COMMA";
228 case AKEYCODE_PERIOD:
229 return "AKEYCODE_PERIOD";
230 case AKEYCODE_ALT_LEFT:
231 return "AKEYCODE_ALT_LEFT";
232 case AKEYCODE_ALT_RIGHT:
233 return "AKEYCODE_ALT_RIGHT";
234 case AKEYCODE_SHIFT_LEFT:
235 return "AKEYCODE_SHIFT_LEFT";
236 case AKEYCODE_SHIFT_RIGHT:
237 return "AKEYCODE_SHIFT_RIGHT";
238 case AKEYCODE_TAB:
239 return "AKEYCODE_TAB";
240 case AKEYCODE_SPACE:
241 return "AKEYCODE_SPACE";
242 case AKEYCODE_SYM:
243 return "AKEYCODE_SYM";
244 case AKEYCODE_EXPLORER:
245 return "AKEYCODE_EXPLORER";
246 case AKEYCODE_ENVELOPE:
247 return "AKEYCODE_ENVELOPE";
248 case AKEYCODE_ENTER:
249 return "AKEYCODE_ENTER";
250 case AKEYCODE_DEL:
251 return "AKEYCODE_DEL";
252 case AKEYCODE_GRAVE:
253 return "AKEYCODE_GRAVE";
254 case AKEYCODE_MINUS:
255 return "AKEYCODE_MINUS";
256 case AKEYCODE_EQUALS:
257 return "AKEYCODE_EQUALS";
258 case AKEYCODE_LEFT_BRACKET:
259 return "AKEYCODE_LEFT_BRACKET";
260 case AKEYCODE_RIGHT_BRACKET:
261 return "AKEYCODE_RIGHT_BRACKET";
262 case AKEYCODE_BACKSLASH:
263 return "AKEYCODE_BACKSLASH";
264 case AKEYCODE_SEMICOLON:
265 return "AKEYCODE_SEMICOLON";
266 case AKEYCODE_APOSTROPHE:
267 return "AKEYCODE_APOSTROPHE";
268 case AKEYCODE_SLASH:
269 return "AKEYCODE_SLASH";
270 case AKEYCODE_AT:
271 return "AKEYCODE_AT";
272 case AKEYCODE_NUM:
273 return "AKEYCODE_NUM";
274 case AKEYCODE_HEADSETHOOK:
275 return "AKEYCODE_HEADSETHOOK";
276 case AKEYCODE_FOCUS:
277 return "AKEYCODE_FOCUS";
278 case AKEYCODE_PLUS:
279 return "AKEYCODE_PLUS";
280 case AKEYCODE_MENU:
281 return "AKEYCODE_MENU";
282 case AKEYCODE_NOTIFICATION:
283 return "AKEYCODE_NOTIFICATION";
284 case AKEYCODE_SEARCH:
285 return "AKEYCODE_SEARCH";
286 case AKEYCODE_MEDIA_PLAY_PAUSE:
287 return "AKEYCODE_MEDIA_PLAY_PAUSE";
288 case AKEYCODE_MEDIA_STOP:
289 return "AKEYCODE_MEDIA_STOP";
290 case AKEYCODE_MEDIA_NEXT:
291 return "AKEYCODE_MEDIA_NEXT";
292 case AKEYCODE_MEDIA_PREVIOUS:
293 return "AKEYCODE_MEDIA_PREVIOUS";
294 case AKEYCODE_MEDIA_REWIND:
295 return "AKEYCODE_MEDIA_REWIND";
296 case AKEYCODE_MEDIA_FAST_FORWARD:
297 return "AKEYCODE_MEDIA_FAST_FORWARD";
298 case AKEYCODE_MUTE:
299 return "AKEYCODE_MUTE";
300 case AKEYCODE_PAGE_UP:
301 return "AKEYCODE_PAGE_UP";
302 case AKEYCODE_PAGE_DOWN:
303 return "AKEYCODE_PAGE_DOWN";
304 case AKEYCODE_PICTSYMBOLS:
305 return "AKEYCODE_PICTSYMBOLS";
306 case AKEYCODE_SWITCH_CHARSET:
307 return "AKEYCODE_SWITCH_CHARSET";
308 case AKEYCODE_BUTTON_A:
309 return "AKEYCODE_BUTTON_A";
310 case AKEYCODE_BUTTON_B:
311 return "AKEYCODE_BUTTON_B";
312 case AKEYCODE_BUTTON_C:
313 return "AKEYCODE_BUTTON_C";
314 case AKEYCODE_BUTTON_X:
315 return "AKEYCODE_BUTTON_X";
316 case AKEYCODE_BUTTON_Y:
317 return "AKEYCODE_BUTTON_Y";
318 case AKEYCODE_BUTTON_Z:
319 return "AKEYCODE_BUTTON_Z";
320 case AKEYCODE_BUTTON_L1:
321 return "AKEYCODE_BUTTON_L1";
322 case AKEYCODE_BUTTON_R1:
323 return "AKEYCODE_BUTTON_R1";
324 case AKEYCODE_BUTTON_L2:
325 return "AKEYCODE_BUTTON_L2";
326 case AKEYCODE_BUTTON_R2:
327 return "AKEYCODE_BUTTON_R2";
328 case AKEYCODE_BUTTON_THUMBL:
329 return "AKEYCODE_BUTTON_THUMBL";
330 case AKEYCODE_BUTTON_THUMBR:
331 return "AKEYCODE_BUTTON_THUMBR";
332 case AKEYCODE_BUTTON_START:
333 return "AKEYCODE_BUTTON_START";
334 case AKEYCODE_BUTTON_SELECT:
335 return "AKEYCODE_BUTTON_SELECT";
336 case AKEYCODE_BUTTON_MODE:
337 return "AKEYCODE_BUTTON_MODE";
338 case AKEYCODE_ESCAPE:
339 return "AKEYCODE_ESCAPE";
340 case AKEYCODE_FORWARD_DEL:
341 return "AKEYCODE_FORWARD_DEL";
342 case AKEYCODE_CTRL_LEFT:
343 return "AKEYCODE_CTRL_LEFT";
344 case AKEYCODE_CTRL_RIGHT:
345 return "AKEYCODE_CTRL_RIGHT";
346 case AKEYCODE_CAPS_LOCK:
347 return "AKEYCODE_CAPS_LOCK";
348 case AKEYCODE_SCROLL_LOCK:
349 return "AKEYCODE_SCROLL_LOCK";
350 case AKEYCODE_META_LEFT:
351 return "AKEYCODE_META_LEFT";
352 case AKEYCODE_META_RIGHT:
353 return "AKEYCODE_META_RIGHT";
354 case AKEYCODE_FUNCTION:
355 return "AKEYCODE_FUNCTION";
356 case AKEYCODE_SYSRQ:
357 return "AKEYCODE_SYSRQ";
358 case AKEYCODE_BREAK:
359 return "AKEYCODE_BREAK";
360 case AKEYCODE_MOVE_HOME:
361 return "AKEYCODE_MOVE_HOME";
362 case AKEYCODE_MOVE_END:
363 return "AKEYCODE_MOVE_END";
364 case AKEYCODE_INSERT:
365 return "AKEYCODE_INSERT";
366 case AKEYCODE_FORWARD:
367 return "AKEYCODE_FORWARD";
368 case AKEYCODE_MEDIA_PLAY:
369 return "AKEYCODE_MEDIA_PLAY";
370 case AKEYCODE_MEDIA_PAUSE:
371 return "AKEYCODE_MEDIA_PAUSE";
372 case AKEYCODE_MEDIA_CLOSE:
373 return "AKEYCODE_MEDIA_CLOSE";
374 case AKEYCODE_MEDIA_EJECT:
375 return "AKEYCODE_MEDIA_EJECT";
376 case AKEYCODE_MEDIA_RECORD:
377 return "AKEYCODE_MEDIA_RECORD";
378 case AKEYCODE_F1:
379 return "AKEYCODE_F1";
380 case AKEYCODE_F2:
381 return "AKEYCODE_F2";
382 case AKEYCODE_F3:
383 return "AKEYCODE_F3";
384 case AKEYCODE_F4:
385 return "AKEYCODE_F4";
386 case AKEYCODE_F5:
387 return "AKEYCODE_F5";
388 case AKEYCODE_F6:
389 return "AKEYCODE_F6";
390 case AKEYCODE_F7:
391 return "AKEYCODE_F7";
392 case AKEYCODE_F8:
393 return "AKEYCODE_F8";
394 case AKEYCODE_F9:
395 return "AKEYCODE_F9";
396 case AKEYCODE_F10:
397 return "AKEYCODE_F10";
398 case AKEYCODE_F11:
399 return "AKEYCODE_F11";
400 case AKEYCODE_F12:
401 return "AKEYCODE_F12";
402 case AKEYCODE_NUM_LOCK:
403 return "AKEYCODE_NUM_LOCK";
404 case AKEYCODE_NUMPAD_0:
405 return "AKEYCODE_NUMPAD_0";
406 case AKEYCODE_NUMPAD_1:
407 return "AKEYCODE_NUMPAD_1";
408 case AKEYCODE_NUMPAD_2:
409 return "AKEYCODE_NUMPAD_2";
410 case AKEYCODE_NUMPAD_3:
411 return "AKEYCODE_NUMPAD_3";
412 case AKEYCODE_NUMPAD_4:
413 return "AKEYCODE_NUMPAD_4";
414 case AKEYCODE_NUMPAD_5:
415 return "AKEYCODE_NUMPAD_5";
416 case AKEYCODE_NUMPAD_6:
417 return "AKEYCODE_NUMPAD_6";
418 case AKEYCODE_NUMPAD_7:
419 return "AKEYCODE_NUMPAD_7";
420 case AKEYCODE_NUMPAD_8:
421 return "AKEYCODE_NUMPAD_8";
422 case AKEYCODE_NUMPAD_9:
423 return "AKEYCODE_NUMPAD_9";
424 case AKEYCODE_NUMPAD_DIVIDE:
425 return "AKEYCODE_NUMPAD_DIVIDE";
426 case AKEYCODE_NUMPAD_MULTIPLY:
427 return "AKEYCODE_NUMPAD_MULTIPLY";
428 case AKEYCODE_NUMPAD_SUBTRACT:
429 return "AKEYCODE_NUMPAD_SUBTRACT";
430 case AKEYCODE_NUMPAD_ADD:
431 return "AKEYCODE_NUMPAD_ADD";
432 case AKEYCODE_NUMPAD_DOT:
433 return "AKEYCODE_NUMPAD_DOT";
434 case AKEYCODE_NUMPAD_COMMA:
435 return "AKEYCODE_NUMPAD_COMMA";
436 case AKEYCODE_NUMPAD_ENTER:
437 return "AKEYCODE_NUMPAD_ENTER";
438 case AKEYCODE_NUMPAD_EQUALS:
439 return "AKEYCODE_NUMPAD_EQUALS";
440 case AKEYCODE_NUMPAD_LEFT_PAREN:
441 return "AKEYCODE_NUMPAD_LEFT_PAREN";
442 case AKEYCODE_NUMPAD_RIGHT_PAREN:
443 return "AKEYCODE_NUMPAD_RIGHT_PAREN";
444 case AKEYCODE_VOLUME_MUTE:
445 return "AKEYCODE_VOLUME_MUTE";
446 case AKEYCODE_INFO:
447 return "AKEYCODE_INFO";
448 case AKEYCODE_CHANNEL_UP:
449 return "AKEYCODE_CHANNEL_UP";
450 case AKEYCODE_CHANNEL_DOWN:
451 return "AKEYCODE_CHANNEL_DOWN";
452 case AKEYCODE_ZOOM_IN:
453 return "AKEYCODE_ZOOM_IN";
454 case AKEYCODE_ZOOM_OUT:
455 return "AKEYCODE_ZOOM_OUT";
456 case AKEYCODE_TV:
457 return "AKEYCODE_TV";
458 case AKEYCODE_WINDOW:
459 return "AKEYCODE_WINDOW";
460 case AKEYCODE_GUIDE:
461 return "AKEYCODE_GUIDE";
462 case AKEYCODE_DVR:
463 return "AKEYCODE_DVR";
464 case AKEYCODE_BOOKMARK:
465 return "AKEYCODE_BOOKMARK";
466 case AKEYCODE_CAPTIONS:
467 return "AKEYCODE_CAPTIONS";
468 case AKEYCODE_SETTINGS:
469 return "AKEYCODE_SETTINGS";
470 case AKEYCODE_TV_POWER:
471 return "AKEYCODE_TV_POWER";
472 case AKEYCODE_TV_INPUT:
473 return "AKEYCODE_TV_INPUT";
474 case AKEYCODE_STB_POWER:
475 return "AKEYCODE_STB_POWER";
476 case AKEYCODE_STB_INPUT:
477 return "AKEYCODE_STB_INPUT";
478 case AKEYCODE_AVR_POWER:
479 return "AKEYCODE_AVR_POWER";
480 case AKEYCODE_AVR_INPUT:
481 return "AKEYCODE_AVR_INPUT";
482 case AKEYCODE_PROG_RED:
483 return "AKEYCODE_PROG_RED";
484 case AKEYCODE_PROG_GREEN:
485 return "AKEYCODE_PROG_GREEN";
486 case AKEYCODE_PROG_YELLOW:
487 return "AKEYCODE_PROG_YELLOW";
488 case AKEYCODE_PROG_BLUE:
489 return "AKEYCODE_PROG_BLUE";
490 case AKEYCODE_APP_SWITCH:
491 return "AKEYCODE_APP_SWITCH";
492 case AKEYCODE_BUTTON_1:
493 return "AKEYCODE_BUTTON_1";
494 case AKEYCODE_BUTTON_2:
495 return "AKEYCODE_BUTTON_2";
496 case AKEYCODE_BUTTON_3:
497 return "AKEYCODE_BUTTON_3";
498 case AKEYCODE_BUTTON_4:
499 return "AKEYCODE_BUTTON_4";
500 case AKEYCODE_BUTTON_5:
501 return "AKEYCODE_BUTTON_5";
502 case AKEYCODE_BUTTON_6:
503 return "AKEYCODE_BUTTON_6";
504 case AKEYCODE_BUTTON_7:
505 return "AKEYCODE_BUTTON_7";
506 case AKEYCODE_BUTTON_8:
507 return "AKEYCODE_BUTTON_8";
508 case AKEYCODE_BUTTON_9:
509 return "AKEYCODE_BUTTON_9";
510 case AKEYCODE_BUTTON_10:
511 return "AKEYCODE_BUTTON_10";
512 case AKEYCODE_BUTTON_11:
513 return "AKEYCODE_BUTTON_11";
514 case AKEYCODE_BUTTON_12:
515 return "AKEYCODE_BUTTON_12";
516 case AKEYCODE_BUTTON_13:
517 return "AKEYCODE_BUTTON_13";
518 case AKEYCODE_BUTTON_14:
519 return "AKEYCODE_BUTTON_14";
520 case AKEYCODE_BUTTON_15:
521 return "AKEYCODE_BUTTON_15";
522 case AKEYCODE_BUTTON_16:
523 return "AKEYCODE_BUTTON_16";
524 case AKEYCODE_LANGUAGE_SWITCH:
525 return "AKEYCODE_LANGUAGE_SWITCH";
526 case AKEYCODE_MANNER_MODE:
527 return "AKEYCODE_MANNER_MODE";
528 case AKEYCODE_3D_MODE:
529 return "AKEYCODE_3D_MODE";
530 case AKEYCODE_CONTACTS:
531 return "AKEYCODE_CONTACTS";
532 case AKEYCODE_CALENDAR:
533 return "AKEYCODE_CALENDAR";
534 case AKEYCODE_MUSIC:
535 return "AKEYCODE_MUSIC";
536 case AKEYCODE_CALCULATOR:
537 return "AKEYCODE_CALCULATOR";
538 case AKEYCODE_ZENKAKU_HANKAKU:
539 return "AKEYCODE_ZENKAKU_HANKAKU";
540 case AKEYCODE_EISU:
541 return "AKEYCODE_EISU";
542 case AKEYCODE_MUHENKAN:
543 return "AKEYCODE_MUHENKAN";
544 case AKEYCODE_HENKAN:
545 return "AKEYCODE_HENKAN";
546 case AKEYCODE_KATAKANA_HIRAGANA:
547 return "AKEYCODE_KATAKANA_HIRAGANA";
548 case AKEYCODE_YEN:
549 return "AKEYCODE_YEN";
550 case AKEYCODE_RO:
551 return "AKEYCODE_RO";
552 case AKEYCODE_KANA:
553 return "AKEYCODE_KANA";
554 case AKEYCODE_ASSIST:
555 return "AKEYCODE_ASSIST";
556 case AKEYCODE_BRIGHTNESS_DOWN:
557 return "AKEYCODE_BRIGHTNESS_DOWN";
558 case AKEYCODE_BRIGHTNESS_UP:
559 return "AKEYCODE_BRIGHTNESS_UP";
560 case AKEYCODE_MEDIA_AUDIO_TRACK:
561 return "AKEYCODE_MEDIA_AUDIO_TRACK";
562 case AKEYCODE_SLEEP:
563 return "AKEYCODE_SLEEP";
564 case AKEYCODE_WAKEUP:
565 return "AKEYCODE_WAKEUP";
566 case AKEYCODE_PAIRING:
567 return "AKEYCODE_PAIRING";
568 case AKEYCODE_MEDIA_TOP_MENU:
569 return "AKEYCODE_MEDIA_TOP_MENU";
570 case AKEYCODE_11:
571 return "AKEYCODE_11";
572 case AKEYCODE_12:
573 return "AKEYCODE_12";
574 case AKEYCODE_LAST_CHANNEL:
575 return "AKEYCODE_LAST_CHANNEL";
576 case AKEYCODE_TV_DATA_SERVICE:
577 return "AKEYCODE_TV_DATA_SERVICE";
578 case AKEYCODE_VOICE_ASSIST:
579 return "AKEYCODE_VOICE_ASSIST";
580 case AKEYCODE_TV_RADIO_SERVICE:
581 return "AKEYCODE_TV_RADIO_SERVICE";
582 case AKEYCODE_TV_TELETEXT:
583 return "AKEYCODE_TV_TELETEXT";
584 case AKEYCODE_TV_NUMBER_ENTRY:
585 return "AKEYCODE_TV_NUMBER_ENTRY";
586 case AKEYCODE_TV_TERRESTRIAL_ANALOG:
587 return "AKEYCODE_TV_TERRESTRIAL_ANALOG";
588 case AKEYCODE_TV_TERRESTRIAL_DIGITAL:
589 return "AKEYCODE_TV_TERRESTRIAL_DIGITAL";
590 case AKEYCODE_TV_SATELLITE:
591 return "AKEYCODE_TV_SATELLITE";
592 case AKEYCODE_TV_SATELLITE_BS:
593 return "AKEYCODE_TV_SATELLITE_BS";
594 case AKEYCODE_TV_SATELLITE_CS:
595 return "AKEYCODE_TV_SATELLITE_CS";
596 case AKEYCODE_TV_SATELLITE_SERVICE:
597 return "AKEYCODE_TV_SATELLITE_SERVICE";
598 case AKEYCODE_TV_NETWORK:
599 return "AKEYCODE_TV_NETWORK";
600 case AKEYCODE_TV_ANTENNA_CABLE:
601 return "AKEYCODE_TV_ANTENNA_CABLE";
602 case AKEYCODE_TV_INPUT_HDMI_1:
603 return "AKEYCODE_TV_INPUT_HDMI_1";
604 case AKEYCODE_TV_INPUT_HDMI_2:
605 return "AKEYCODE_TV_INPUT_HDMI_2";
606 case AKEYCODE_TV_INPUT_HDMI_3:
607 return "AKEYCODE_TV_INPUT_HDMI_3";
608 case AKEYCODE_TV_INPUT_HDMI_4:
609 return "AKEYCODE_TV_INPUT_HDMI_4";
610 case AKEYCODE_TV_INPUT_COMPOSITE_1:
611 return "AKEYCODE_TV_INPUT_COMPOSITE_1";
612 case AKEYCODE_TV_INPUT_COMPOSITE_2:
613 return "AKEYCODE_TV_INPUT_COMPOSITE_2";
614 case AKEYCODE_TV_INPUT_COMPONENT_1:
615 return "AKEYCODE_TV_INPUT_COMPONENT_1";
616 case AKEYCODE_TV_INPUT_COMPONENT_2:
617 return "AKEYCODE_TV_INPUT_COMPONENT_2";
618 case AKEYCODE_TV_INPUT_VGA_1:
619 return "AKEYCODE_TV_INPUT_VGA_1";
620 case AKEYCODE_TV_AUDIO_DESCRIPTION:
621 return "AKEYCODE_TV_AUDIO_DESCRIPTION";
622 case AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP:
623 return "AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP";
624 case AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN:
625 return "AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN";
626 case AKEYCODE_TV_ZOOM_MODE:
627 return "AKEYCODE_TV_ZOOM_MODE";
628 case AKEYCODE_TV_CONTENTS_MENU:
629 return "AKEYCODE_TV_CONTENTS_MENU";
630 case AKEYCODE_TV_MEDIA_CONTEXT_MENU:
631 return "AKEYCODE_TV_MEDIA_CONTEXT_MENU";
632 case AKEYCODE_TV_TIMER_PROGRAMMING:
633 return "AKEYCODE_TV_TIMER_PROGRAMMING";
634 case AKEYCODE_HELP:
635 return "AKEYCODE_HELP";
636 case AKEYCODE_NAVIGATE_PREVIOUS:
637 return "AKEYCODE_NAVIGATE_PREVIOUS";
638 case AKEYCODE_NAVIGATE_NEXT:
639 return "AKEYCODE_NAVIGATE_NEXT";
640 case AKEYCODE_NAVIGATE_IN:
641 return "AKEYCODE_NAVIGATE_IN";
642 case AKEYCODE_NAVIGATE_OUT:
643 return "AKEYCODE_NAVIGATE_OUT";
644 case AKEYCODE_STEM_PRIMARY:
645 return "AKEYCODE_STEM_PRIMARY";
646 case AKEYCODE_STEM_1:
647 return "AKEYCODE_STEM_1";
648 case AKEYCODE_STEM_2:
649 return "AKEYCODE_STEM_2";
650 case AKEYCODE_STEM_3:
651 return "AKEYCODE_STEM_3";
652 case AKEYCODE_DPAD_UP_LEFT:
653 return "AKEYCODE_DPAD_UP_LEFT";
654 case AKEYCODE_DPAD_DOWN_LEFT:
655 return "AKEYCODE_DPAD_DOWN_LEFT";
656 case AKEYCODE_DPAD_UP_RIGHT:
657 return "AKEYCODE_DPAD_UP_RIGHT";
658 case AKEYCODE_DPAD_DOWN_RIGHT:
659 return "AKEYCODE_DPAD_DOWN_RIGHT";
660 case AKEYCODE_MEDIA_SKIP_FORWARD:
661 return "AKEYCODE_MEDIA_SKIP_FORWARD";
662 case AKEYCODE_MEDIA_SKIP_BACKWARD:
663 return "AKEYCODE_MEDIA_SKIP_BACKWARD";
664 case AKEYCODE_MEDIA_STEP_FORWARD:
665 return "AKEYCODE_MEDIA_STEP_FORWARD";
666 case AKEYCODE_MEDIA_STEP_BACKWARD:
667 return "AKEYCODE_MEDIA_STEP_BACKWARD";
668 case AKEYCODE_SOFT_SLEEP:
669 return "AKEYCODE_SOFT_SLEEP";
670 case AKEYCODE_CUT:
671 return "AKEYCODE_CUT";
672 case AKEYCODE_COPY:
673 return "AKEYCODE_COPY";
674 case AKEYCODE_PASTE:
675 return "AKEYCODE_PASTE";
676 case AKEYCODE_SYSTEM_NAVIGATION_UP:
677 return "AKEYCODE_SYSTEM_NAVIGATION_UP";
678 case AKEYCODE_SYSTEM_NAVIGATION_DOWN:
679 return "AKEYCODE_SYSTEM_NAVIGATION_DOWN";
680 case AKEYCODE_SYSTEM_NAVIGATION_LEFT:
681 return "AKEYCODE_SYSTEM_NAVIGATION_LEFT";
682 case AKEYCODE_SYSTEM_NAVIGATION_RIGHT:
683 return "AKEYCODE_SYSTEM_NAVIGATION_RIGHT";
684 case AKEYCODE_ALL_APPS:
685 return "AKEYCODE_ALL_APPS";
686 case AKEYCODE_REFRESH:
687 return "AKEYCODE_REFRESH";
688 case AKEYCODE_THUMBS_UP:
689 return "AKEYCODE_THUMBS_UP";
690 case AKEYCODE_THUMBS_DOWN:
691 return "AKEYCODE_THUMBS_DOWN";
692 case AKEYCODE_PROFILE_SWITCH:
693 return "AKEYCODE_PROFILE_SWITCH";
694 case AKEYCODE_VIDEO_APP_1:
695 return "AKEYCODE_VIDEO_APP_1";
696 case AKEYCODE_VIDEO_APP_2:
697 return "AKEYCODE_VIDEO_APP_2";
698 case AKEYCODE_VIDEO_APP_3:
699 return "AKEYCODE_VIDEO_APP_3";
700 case AKEYCODE_VIDEO_APP_4:
701 return "AKEYCODE_VIDEO_APP_4";
702 case AKEYCODE_VIDEO_APP_5:
703 return "AKEYCODE_VIDEO_APP_5";
704 case AKEYCODE_VIDEO_APP_6:
705 return "AKEYCODE_VIDEO_APP_6";
706 case AKEYCODE_VIDEO_APP_7:
707 return "AKEYCODE_VIDEO_APP_7";
708 case AKEYCODE_VIDEO_APP_8:
709 return "AKEYCODE_VIDEO_APP_8";
710 case AKEYCODE_FEATURED_APP_1:
711 return "AKEYCODE_FEATURED_APP_1";
712 case AKEYCODE_FEATURED_APP_2:
713 return "AKEYCODE_FEATURED_APP_2";
714 case AKEYCODE_FEATURED_APP_3:
715 return "AKEYCODE_FEATURED_APP_3";
716 case AKEYCODE_FEATURED_APP_4:
717 return "AKEYCODE_FEATURED_APP_4";
718 case AKEYCODE_DEMO_APP_1:
719 return "AKEYCODE_DEMO_APP_1";
720 case AKEYCODE_DEMO_APP_2:
721 return "AKEYCODE_DEMO_APP_2";
722 case AKEYCODE_DEMO_APP_3:
723 return "AKEYCODE_DEMO_APP_3";
724 case AKEYCODE_DEMO_APP_4:
725 return "AKEYCODE_DEMO_APP_4";
726 default:
727 break;
730 return "unknown";
733 const char* CAndroidJoystickTranslator::TranslateJoystickButton(int buttonKeycode)
735 switch (buttonKeycode)
737 case AKEYCODE_BUTTON_A:
738 case AKEYCODE_DPAD_CENTER:
739 return GAME::CDefaultController::FEATURE_A;
740 case AKEYCODE_BUTTON_B:
741 return GAME::CDefaultController::FEATURE_B;
742 case AKEYCODE_BUTTON_X:
743 return GAME::CDefaultController::FEATURE_X;
744 case AKEYCODE_BUTTON_Y:
745 return GAME::CDefaultController::FEATURE_Y;
746 case AKEYCODE_BUTTON_START:
747 case AKEYCODE_MENU:
748 return GAME::CDefaultController::FEATURE_START;
749 case AKEYCODE_BUTTON_SELECT:
750 case AKEYCODE_BACK:
751 return GAME::CDefaultController::FEATURE_BACK;
752 case AKEYCODE_BUTTON_MODE:
753 case AKEYCODE_HOME:
754 return GAME::CDefaultController::FEATURE_GUIDE;
755 case AKEYCODE_DPAD_UP:
756 return GAME::CDefaultController::FEATURE_UP;
757 case AKEYCODE_DPAD_RIGHT:
758 return GAME::CDefaultController::FEATURE_RIGHT;
759 case AKEYCODE_DPAD_DOWN:
760 return GAME::CDefaultController::FEATURE_DOWN;
761 case AKEYCODE_DPAD_LEFT:
762 return GAME::CDefaultController::FEATURE_LEFT;
763 case AKEYCODE_BUTTON_L1:
764 return GAME::CDefaultController::FEATURE_LEFT_BUMPER;
765 case AKEYCODE_BUTTON_R1:
766 return GAME::CDefaultController::FEATURE_RIGHT_BUMPER;
767 case AKEYCODE_BUTTON_L2:
768 return GAME::CDefaultController::FEATURE_LEFT_TRIGGER;
769 case AKEYCODE_BUTTON_R2:
770 return GAME::CDefaultController::FEATURE_RIGHT_TRIGGER;
771 case AKEYCODE_BUTTON_THUMBL:
772 return GAME::CDefaultController::FEATURE_LEFT_THUMB;
773 case AKEYCODE_BUTTON_THUMBR:
774 return GAME::CDefaultController::FEATURE_RIGHT_THUMB;
775 default:
776 break;
779 return "";