diff options
-rw-r--r-- | apps/keymaps/keymap-ondavx747.c | 138 | ||||
-rw-r--r-- | apps/keymaps/keymap-touchscreen.c | 8 | ||||
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/onda_vx747/button-target.h | 30 |
3 files changed, 157 insertions, 19 deletions
diff --git a/apps/keymaps/keymap-ondavx747.c b/apps/keymaps/keymap-ondavx747.c index 2e4bb86559..336227fbb7 100644 --- a/apps/keymaps/keymap-ondavx747.c +++ b/apps/keymaps/keymap-ondavx747.c | |||
@@ -38,7 +38,6 @@ | |||
38 | * Insert LAST_ITEM_IN_LIST at the end of each mapping | 38 | * Insert LAST_ITEM_IN_LIST at the end of each mapping |
39 | */ | 39 | */ |
40 | 40 | ||
41 | /*TODO*/ | ||
42 | static const struct button_mapping button_context_standard[] = { | 41 | static const struct button_mapping button_context_standard[] = { |
43 | { ACTION_STD_PREV, BUTTON_VOL_DOWN, BUTTON_NONE }, | 42 | { ACTION_STD_PREV, BUTTON_VOL_DOWN, BUTTON_NONE }, |
44 | { ACTION_STD_PREVREPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 43 | { ACTION_STD_PREVREPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -54,8 +53,143 @@ static const struct button_mapping button_context_standard[] = { | |||
54 | LAST_ITEM_IN_LIST | 53 | LAST_ITEM_IN_LIST |
55 | }; /* button_context_standard */ | 54 | }; /* button_context_standard */ |
56 | 55 | ||
56 | |||
57 | static const struct button_mapping button_context_wps[] = { | ||
58 | |||
59 | { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
60 | { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
61 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | ||
62 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
63 | { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, | ||
64 | { ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | ||
65 | |||
66 | { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
67 | |||
68 | LAST_ITEM_IN_LIST | ||
69 | }; /* button_context_wps */ | ||
70 | |||
71 | static const struct button_mapping button_context_list[] = { | ||
72 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
73 | }; /* button_context_list */ | ||
74 | |||
75 | static const struct button_mapping button_context_tree[] = { | ||
76 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | ||
77 | }; /* button_context_tree */ | ||
78 | |||
79 | static const struct button_mapping button_context_listtree_scroll_with_combo[] = { | ||
80 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
81 | }; | ||
82 | |||
83 | static const struct button_mapping button_context_listtree_scroll_without_combo[] = { | ||
84 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
85 | }; | ||
86 | |||
87 | static const struct button_mapping button_context_settings[] = { | ||
88 | { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE }, | ||
89 | { ACTION_SETTINGS_INCREPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
90 | { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
91 | { ACTION_SETTINGS_DECREPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
92 | { ACTION_STD_OK, BUTTON_MENU, BUTTON_NONE }, | ||
93 | { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, | ||
94 | |||
95 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
96 | }; /* button_context_settings */ | ||
97 | |||
98 | static const struct button_mapping button_context_settings_right_is_inc[] = { | ||
99 | |||
100 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
101 | }; /* button_context_settingsgraphical */ | ||
102 | |||
103 | static const struct button_mapping button_context_yesno[] = { | ||
104 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
105 | }; /* button_context_settings_yesno */ | ||
106 | |||
107 | static const struct button_mapping button_context_colorchooser[] = { | ||
108 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS), | ||
109 | }; /* button_context_colorchooser */ | ||
110 | |||
111 | static const struct button_mapping button_context_eq[] = { | ||
112 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS), | ||
113 | }; /* button_context_eq */ | ||
114 | |||
115 | /** Bookmark Screen **/ | ||
116 | static const struct button_mapping button_context_bmark[] = { | ||
117 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | ||
118 | }; /* button_context_bmark */ | ||
119 | |||
120 | static const struct button_mapping button_context_time[] = { | ||
121 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS), | ||
122 | }; /* button_context_time */ | ||
123 | |||
124 | static const struct button_mapping button_context_quickscreen[] = { | ||
125 | |||
126 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
127 | }; /* button_context_quickscreen */ | ||
128 | |||
129 | static const struct button_mapping button_context_pitchscreen[] = { | ||
130 | |||
131 | { ACTION_PS_INC_SMALL, BUTTON_VOL_UP, BUTTON_NONE }, | ||
132 | { ACTION_PS_INC_SMALL, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
133 | { ACTION_PS_DEC_SMALL, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
134 | { ACTION_PS_DEC_SMALL, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
135 | { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE }, | ||
136 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
137 | }; /* button_context_pitchcreen */ | ||
138 | |||
139 | static const struct button_mapping button_context_keyboard[] = { | ||
140 | { ACTION_KBD_PAGE_FLIP, BUTTON_MENU, BUTTON_NONE }, | ||
141 | { ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
142 | { ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
143 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_UP, BUTTON_NONE }, | ||
144 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
145 | |||
146 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
147 | }; /* button_context_keyboard */ | ||
148 | |||
57 | const struct button_mapping* target_get_context_mapping(int context) | 149 | const struct button_mapping* target_get_context_mapping(int context) |
58 | { | 150 | { |
59 | (void)context; | 151 | switch (context) |
152 | { | ||
153 | case CONTEXT_STD: | ||
154 | return button_context_standard; | ||
155 | case CONTEXT_WPS: | ||
156 | return button_context_wps; | ||
157 | |||
158 | case CONTEXT_LIST: | ||
159 | return button_context_list; | ||
160 | case CONTEXT_MAINMENU: | ||
161 | case CONTEXT_TREE: | ||
162 | if (global_settings.hold_lr_for_scroll_in_list) | ||
163 | return button_context_listtree_scroll_without_combo; | ||
164 | else | ||
165 | return button_context_listtree_scroll_with_combo; | ||
166 | case CONTEXT_CUSTOM|CONTEXT_TREE: | ||
167 | return button_context_tree; | ||
168 | |||
169 | case CONTEXT_SETTINGS: | ||
170 | return button_context_settings; | ||
171 | case CONTEXT_CUSTOM|CONTEXT_SETTINGS: | ||
172 | case CONTEXT_SETTINGS_RECTRIGGER: | ||
173 | return button_context_settings_right_is_inc; | ||
174 | |||
175 | case CONTEXT_SETTINGS_COLOURCHOOSER: | ||
176 | return button_context_colorchooser; | ||
177 | case CONTEXT_SETTINGS_EQ: | ||
178 | return button_context_eq; | ||
179 | |||
180 | case CONTEXT_SETTINGS_TIME: | ||
181 | return button_context_time; | ||
182 | |||
183 | case CONTEXT_YESNOSCREEN: | ||
184 | return button_context_yesno; | ||
185 | case CONTEXT_BOOKMARKSCREEN: | ||
186 | return button_context_bmark; | ||
187 | case CONTEXT_QUICKSCREEN: | ||
188 | return button_context_quickscreen; | ||
189 | case CONTEXT_PITCHSCREEN: | ||
190 | return button_context_pitchscreen; | ||
191 | case CONTEXT_KEYBOARD: | ||
192 | return button_context_keyboard; | ||
193 | } | ||
60 | return button_context_standard; | 194 | return button_context_standard; |
61 | } | 195 | } |
diff --git a/apps/keymaps/keymap-touchscreen.c b/apps/keymaps/keymap-touchscreen.c index 5392431026..4b31ac6c5d 100644 --- a/apps/keymaps/keymap-touchscreen.c +++ b/apps/keymaps/keymap-touchscreen.c | |||
@@ -224,8 +224,12 @@ static const struct button_mapping button_context_keyboard[] = { | |||
224 | 224 | ||
225 | const struct button_mapping* get_context_mapping(int context) | 225 | const struct button_mapping* get_context_mapping(int context) |
226 | { | 226 | { |
227 | if ((context&CONTEXT_REMOTE) || (context&CONTEXT_CUSTOM2)) | 227 | if (context & CONTEXT_CUSTOM2 |
228 | return target_get_context_mapping(context&(~CONTEXT_CUSTOM2)); | 228 | #if BUTTON_REMOTE != 0 |
229 | || context & CONTEXT_REMOTE | ||
230 | #endif | ||
231 | ) | ||
232 | return target_get_context_mapping(context & ~CONTEXT_CUSTOM2); | ||
229 | 233 | ||
230 | switch (context) | 234 | switch (context) |
231 | { | 235 | { |
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/button-target.h b/firmware/target/mips/ingenic_jz47xx/onda_vx747/button-target.h index 67d710a38a..4eb3af5e14 100644 --- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/button-target.h +++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/button-target.h | |||
@@ -21,8 +21,6 @@ | |||
21 | #ifndef BUTTON_TARGET_H | 21 | #ifndef BUTTON_TARGET_H |
22 | #define BUTTON_TARGET_H | 22 | #define BUTTON_TARGET_H |
23 | 23 | ||
24 | |||
25 | #include <stdbool.h> | ||
26 | #include "config.h" | 24 | #include "config.h" |
27 | 25 | ||
28 | #define HAS_BUTTON_HOLD | 26 | #define HAS_BUTTON_HOLD |
@@ -33,16 +31,16 @@ int button_read_device(int *data); | |||
33 | void button_set_touch_available(void); | 31 | void button_set_touch_available(void); |
34 | 32 | ||
35 | /* Main unit's buttons */ | 33 | /* Main unit's buttons */ |
36 | #define BUTTON_POWER 0x00000001 | 34 | #define BUTTON_POWER 0x00000001 |
37 | #define BUTTON_VOL_UP 0x00000002 | 35 | #define BUTTON_VOL_UP 0x00000002 |
38 | #define BUTTON_VOL_DOWN 0x00000004 | 36 | #define BUTTON_VOL_DOWN 0x00000004 |
39 | #define BUTTON_MENU 0x00000008 | 37 | #define BUTTON_MENU 0x00000008 |
40 | 38 | ||
41 | /* Compatibility hacks for flipping. Needs a somewhat better fix. */ | 39 | /* Compatibility hacks for flipping. Needs a somewhat better fix. */ |
42 | #define BUTTON_LEFT BUTTON_MIDLEFT | 40 | #define BUTTON_LEFT BUTTON_MIDLEFT |
43 | #define BUTTON_RIGHT BUTTON_MIDRIGHT | 41 | #define BUTTON_RIGHT BUTTON_MIDRIGHT |
44 | #define BUTTON_UP BUTTON_TOPMIDDLE | 42 | #define BUTTON_UP BUTTON_TOPMIDDLE |
45 | #define BUTTON_DOWN BUTTON_BOTTOMMIDDLE | 43 | #define BUTTON_DOWN BUTTON_BOTTOMMIDDLE |
46 | 44 | ||
47 | /* Touch Screen Area Buttons */ | 45 | /* Touch Screen Area Buttons */ |
48 | #define BUTTON_TOPLEFT 0x00000010 | 46 | #define BUTTON_TOPLEFT 0x00000010 |
@@ -55,19 +53,21 @@ void button_set_touch_available(void); | |||
55 | #define BUTTON_BOTTOMMIDDLE 0x00000800 | 53 | #define BUTTON_BOTTOMMIDDLE 0x00000800 |
56 | #define BUTTON_BOTTOMRIGHT 0x00001000 | 54 | #define BUTTON_BOTTOMRIGHT 0x00001000 |
57 | 55 | ||
58 | #define BUTTON_TOUCH 0x00002000 | ||
59 | |||
60 | #define DEFAULT_TOUCHSCREEN_CALIBRATION {.A=0xFFF9FDA2, .B=0xFFFFE82A, \ | 56 | #define DEFAULT_TOUCHSCREEN_CALIBRATION {.A=0xFFF9FDA2, .B=0xFFFFE82A, \ |
61 | .C=0xA22AA2C, .D=0x23DC, .E=0x8E3E6, \ | 57 | .C=0xA22AA2C, .D=0x23DC, .E=0x8E3E6, \ |
62 | .F=0x76CF88AA, .divider=0xFFAD4013} | 58 | .F=0x76CF88AA, .divider=0xFFAD4013} |
63 | 59 | ||
64 | #define BUTTON_MAIN 0x3FFF | 60 | #define BUTTON_MAIN (BUTTON_POWER | BUTTON_VOL_UP | BUTTON_VOL_DOWN | \ |
61 | BUTTON_MENU | BUTTON_TOPLEFT | BUTTON_TOPMIDDLE | \ | ||
62 | BUTTON_TOPRIGHT | BUTTON_MIDLEFT | BUTTON_CENTER | \ | ||
63 | BUTTON_MIDRIGHT | BUTTON_BOTTOMLEFT | BUTTON_BOTTOMMIDDLE | \ | ||
64 | BUTTON_BOTTOMRIGHT) | ||
65 | 65 | ||
66 | /* No remote */ | 66 | /* No remote */ |
67 | #define BUTTON_REMOTE 0 | 67 | #define BUTTON_REMOTE 0 |
68 | 68 | ||
69 | /* Software power-off */ | 69 | /* Software power-off */ |
70 | #define POWEROFF_BUTTON BUTTON_POWER | 70 | #define POWEROFF_BUTTON BUTTON_POWER |
71 | #define POWEROFF_COUNT 10 | 71 | #define POWEROFF_COUNT 10 |
72 | 72 | ||
73 | #endif /* BUTTON_TARGET_H */ | 73 | #endif /* BUTTON_TARGET_H */ |