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.
9 #include "AndroidJoystickTranslator.h"
11 #include "games/controllers/DefaultController.h"
13 #include <android/input.h>
14 #include <android/keycodes.h>
17 using namespace PERIPHERALS
;
19 const char* CAndroidJoystickTranslator::TranslateAxis(int 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";
112 const char* CAndroidJoystickTranslator::TranslateKeyCode(int 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";
123 return "AKEYCODE_HOME";
125 return "AKEYCODE_BACK";
127 return "AKEYCODE_CALL";
128 case AKEYCODE_ENDCALL
:
129 return "AKEYCODE_ENDCALL";
151 return "AKEYCODE_STAR";
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";
169 return "AKEYCODE_POWER";
170 case AKEYCODE_CAMERA
:
171 return "AKEYCODE_CAMERA";
173 return "AKEYCODE_CLEAR";
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";
239 return "AKEYCODE_TAB";
241 return "AKEYCODE_SPACE";
243 return "AKEYCODE_SYM";
244 case AKEYCODE_EXPLORER
:
245 return "AKEYCODE_EXPLORER";
246 case AKEYCODE_ENVELOPE
:
247 return "AKEYCODE_ENVELOPE";
249 return "AKEYCODE_ENTER";
251 return "AKEYCODE_DEL";
253 return "AKEYCODE_GRAVE";
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";
269 return "AKEYCODE_SLASH";
271 return "AKEYCODE_AT";
273 return "AKEYCODE_NUM";
274 case AKEYCODE_HEADSETHOOK
:
275 return "AKEYCODE_HEADSETHOOK";
277 return "AKEYCODE_FOCUS";
279 return "AKEYCODE_PLUS";
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";
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";
357 return "AKEYCODE_SYSRQ";
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";
379 return "AKEYCODE_F1";
381 return "AKEYCODE_F2";
383 return "AKEYCODE_F3";
385 return "AKEYCODE_F4";
387 return "AKEYCODE_F5";
389 return "AKEYCODE_F6";
391 return "AKEYCODE_F7";
393 return "AKEYCODE_F8";
395 return "AKEYCODE_F9";
397 return "AKEYCODE_F10";
399 return "AKEYCODE_F11";
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";
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";
457 return "AKEYCODE_TV";
458 case AKEYCODE_WINDOW
:
459 return "AKEYCODE_WINDOW";
461 return "AKEYCODE_GUIDE";
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";
535 return "AKEYCODE_MUSIC";
536 case AKEYCODE_CALCULATOR
:
537 return "AKEYCODE_CALCULATOR";
538 case AKEYCODE_ZENKAKU_HANKAKU
:
539 return "AKEYCODE_ZENKAKU_HANKAKU";
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";
549 return "AKEYCODE_YEN";
551 return "AKEYCODE_RO";
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";
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";
571 return "AKEYCODE_11";
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";
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";
671 return "AKEYCODE_CUT";
673 return "AKEYCODE_COPY";
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";
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
:
748 return GAME::CDefaultController::FEATURE_START
;
749 case AKEYCODE_BUTTON_SELECT
:
751 return GAME::CDefaultController::FEATURE_BACK
;
752 case AKEYCODE_BUTTON_MODE
:
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
;