summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/keymaps/keymap-ondavx747.c138
-rw-r--r--apps/keymaps/keymap-touchscreen.c8
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/button-target.h30
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*/
42static const struct button_mapping button_context_standard[] = { 41static 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
57static 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
71static const struct button_mapping button_context_list[] = {
72 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
73}; /* button_context_list */
74
75static const struct button_mapping button_context_tree[] = {
76 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
77}; /* button_context_tree */
78
79static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
80 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
81};
82
83static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
84 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
85};
86
87static 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
98static const struct button_mapping button_context_settings_right_is_inc[] = {
99
100 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
101}; /* button_context_settingsgraphical */
102
103static const struct button_mapping button_context_yesno[] = {
104 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
105}; /* button_context_settings_yesno */
106
107static const struct button_mapping button_context_colorchooser[] = {
108 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
109}; /* button_context_colorchooser */
110
111static 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 **/
116static const struct button_mapping button_context_bmark[] = {
117 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
118}; /* button_context_bmark */
119
120static const struct button_mapping button_context_time[] = {
121 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS),
122}; /* button_context_time */
123
124static const struct button_mapping button_context_quickscreen[] = {
125
126 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
127}; /* button_context_quickscreen */
128
129static 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
139static 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
57const struct button_mapping* target_get_context_mapping(int context) 149const 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
225const struct button_mapping* get_context_mapping(int context) 225const 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);
33void button_set_touch_available(void); 31void 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 */