summaryrefslogtreecommitdiff
path: root/firmware/target/hosted/android/app/button-application.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/hosted/android/app/button-application.c')
-rw-r--r--firmware/target/hosted/android/app/button-application.c46
1 files changed, 33 insertions, 13 deletions
diff --git a/firmware/target/hosted/android/app/button-application.c b/firmware/target/hosted/android/app/button-application.c
index a7d75ef172..1586183f6f 100644
--- a/firmware/target/hosted/android/app/button-application.c
+++ b/firmware/target/hosted/android/app/button-application.c
@@ -23,26 +23,24 @@
23#include "button.h" 23#include "button.h"
24#include "android_keyevents.h" 24#include "android_keyevents.h"
25 25
26static bool ignore_back_button = false;
27void android_ignore_back_button(bool yes)
28{
29 ignore_back_button = yes;
30}
31
26int key_to_button(int keyboard_key) 32int key_to_button(int keyboard_key)
27{ 33{
28 switch (keyboard_key) 34 switch (keyboard_key)
29 { 35 {
30 default:
31 return BUTTON_NONE;
32 case KEYCODE_BACK: 36 case KEYCODE_BACK:
33 return BUTTON_BACK; 37 return ignore_back_button ? BUTTON_NONE : BUTTON_BACK;
34 case KEYCODE_DPAD_UP:
35 return BUTTON_DPAD_UP;
36 case KEYCODE_DPAD_DOWN:
37 return BUTTON_DPAD_DOWN;
38 case KEYCODE_DPAD_LEFT:
39 return BUTTON_DPAD_LEFT;
40 case KEYCODE_DPAD_RIGHT:
41 return BUTTON_DPAD_RIGHT;
42 case KEYCODE_DPAD_CENTER:
43 return BUTTON_DPAD_CENTER;
44 case KEYCODE_MENU: 38 case KEYCODE_MENU:
45 return BUTTON_MENU; 39 return BUTTON_MENU;
40 case KEYCODE_DPAD_CENTER:
41 return BUTTON_DPAD_CENTER;
42 default:
43 return BUTTON_NONE;
46 } 44 }
47} 45}
48 46
@@ -66,3 +64,25 @@ unsigned multimedia_to_button(int keyboard_key)
66 return 0; 64 return 0;
67 } 65 }
68} 66}
67
68unsigned dpad_to_button(int keyboard_key)
69{
70 switch (keyboard_key)
71 {
72 /* These buttons only post a single release event.
73 * doing otherwise will cause action.c to lock up waiting for
74 * a release (because android sends press/unpress to us too quickly
75 */
76 case KEYCODE_DPAD_UP:
77 return BUTTON_DPAD_UP|BUTTON_REL;
78 case KEYCODE_DPAD_DOWN:
79 return BUTTON_DPAD_DOWN|BUTTON_REL;
80 case KEYCODE_DPAD_LEFT:
81 return BUTTON_DPAD_LEFT|BUTTON_REL;
82 case KEYCODE_DPAD_RIGHT:
83 return BUTTON_DPAD_RIGHT|BUTTON_REL;
84 default:
85 return BUTTON_NONE;
86 }
87}
88