diff options
Diffstat (limited to 'apps/action.h')
-rw-r--r-- | apps/action.h | 102 |
1 files changed, 64 insertions, 38 deletions
diff --git a/apps/action.h b/apps/action.h index e54d5deacf..3bc43c2190 100644 --- a/apps/action.h +++ b/apps/action.h | |||
@@ -41,37 +41,66 @@ | |||
41 | #else | 41 | #else |
42 | #define ALLOW_SOFTLOCK 0 | 42 | #define ALLOW_SOFTLOCK 0 |
43 | #endif | 43 | #endif |
44 | #if defined(HAVE_BACKLIGHT) || !defined(HAS_BUTTON_HOLD) | ||
45 | /* Selective action selection flags */ | ||
46 | #define SEL_ACTION_NONE 0 | ||
47 | #define SEL_ACTION_VOL 0x001U | ||
48 | #define SEL_ACTION_PLAY 0x002U | ||
49 | #define SEL_ACTION_SEEK 0x004U | ||
50 | #define SEL_ACTION_SKIP 0x008U | ||
51 | #define SEL_ACTION_NOUNMAPPED 0x010U/* disable backlight on unmapped buttons */ | ||
52 | /* Available 0x020U*/ | ||
53 | /* Available 0x040U*/ | ||
54 | #define SEL_ACTION_NOTOUCH 0x080U/* disable touch screen/pad on screen lock */ | ||
55 | #define SEL_ACTION_AUTOLOCK 0x100U/* autolock on backlight off */ | ||
56 | #define SEL_ACTION_NOEXT 0x200U/* disable selective backlight while charge*/ | ||
57 | #define SEL_ACTION_NONOTIFY 0x200U/* don't notify user softlock is active */ | ||
58 | /* Flags below are internal to selective functions */ | ||
59 | #define SEL_ACTION_ALOCK_OK 0x400U/*autolock only active after key lock once*/ | ||
60 | #define SEL_ACTION_FFKEYPRESS 0x400U/* backlight Filter First Keypress active*/ | ||
61 | #define SEL_ACTION_ENABLED 0x800U | ||
62 | /* Selective Actions flags */ | ||
44 | 63 | ||
64 | #ifndef HAS_BUTTON_HOLD | ||
65 | bool is_keys_locked(void); | ||
66 | void set_selective_softlock_actions(bool selective, unsigned int mask); | ||
67 | #endif | ||
68 | |||
69 | #ifdef HAVE_BACKLIGHT | ||
70 | void set_selective_backlight_actions(bool selective, unsigned int mask, | ||
71 | bool filter_fkp); | ||
72 | #endif | ||
73 | #endif /* defined(HAVE_BACKLIGHT) || !defined(HAS_BUTTON_HOLD) */ | ||
45 | enum { | 74 | enum { |
46 | CONTEXT_STD = 0, | 75 | CONTEXT_STD = 0, |
47 | /* These CONTEXT_ values were here before me, | 76 | /* These CONTEXT_ values were here before me, |
48 | there values may have significance, so dont touch! */ | 77 | there values may have significance, so dont touch! */ |
49 | CONTEXT_WPS = 1, | 78 | CONTEXT_WPS = 1, |
50 | CONTEXT_TREE = 2, | 79 | CONTEXT_TREE = 2, |
51 | CONTEXT_RECORD = 3, | 80 | CONTEXT_RECORD = 3, |
52 | CONTEXT_MAINMENU = 4, /* uses CONTEXT_TREE and ACTION_TREE_* */ | 81 | CONTEXT_MAINMENU = 4, /* uses CONTEXT_TREE and ACTION_TREE_* */ |
53 | CONTEXT_ID3DB = 5, | 82 | CONTEXT_ID3DB = 5, |
54 | /* Add new contexts here, no need to explicitly define a value for them */ | 83 | /* Add new contexts here, no need to explicitly define a value for them */ |
55 | CONTEXT_LIST, | 84 | CONTEXT_LIST, |
56 | CONTEXT_SETTINGS, /* regular setting screens (and debug screens) */ | 85 | CONTEXT_SETTINGS, /* regular setting screens (and debug screens) */ |
57 | /* bellow are setting screens which may need to redefine the standard | 86 | /* bellow are setting screens which may need to redefine the standard |
58 | setting screen keys, targets should return the CONTEXT_SETTINGS | 87 | setting screen keys, targets should return the CONTEXT_SETTINGS |
59 | keymap unless they are not adequate for the screen | 88 | keymap unless they are not adequate for the screen |
60 | NOTE: uses ACTION_STD_[NEXT|PREV] so make sure they are there also | 89 | NOTE: uses ACTION_STD_[NEXT|PREV] so make sure they are there also |
61 | and (possibly) ACTION_SETTINGS_[INC|DEC] */ | 90 | and (possibly) ACTION_SETTINGS_[INC|DEC] */ |
62 | CONTEXT_SETTINGS_EQ, | 91 | CONTEXT_SETTINGS_EQ, |
63 | CONTEXT_SETTINGS_COLOURCHOOSER, | 92 | CONTEXT_SETTINGS_COLOURCHOOSER, |
64 | CONTEXT_SETTINGS_TIME, | 93 | CONTEXT_SETTINGS_TIME, |
65 | CONTEXT_SETTINGS_RECTRIGGER, | 94 | CONTEXT_SETTINGS_RECTRIGGER, |
66 | 95 | ||
67 | /* The following contexts should use ACTION_STD_[NEXT|PREV] | 96 | /* The following contexts should use ACTION_STD_[NEXT|PREV] |
68 | and (possibly) ACTION_SETTINGS_[INC|DEC] | 97 | and (possibly) ACTION_SETTINGS_[INC|DEC] |
69 | Also add any extra actions they need */ | 98 | Also add any extra actions they need */ |
70 | CONTEXT_BOOKMARKSCREEN, /* uses ACTION_BMS_ defines */ | 99 | CONTEXT_BOOKMARKSCREEN, /* uses ACTION_BMS_ defines */ |
71 | CONTEXT_ALARMSCREEN, /* uses ACTION_AS_ defines */ | 100 | CONTEXT_ALARMSCREEN, /* uses ACTION_AS_ defines */ |
72 | CONTEXT_QUICKSCREEN, /* uses ACTION_QS_ defines below */ | 101 | CONTEXT_QUICKSCREEN, /* uses ACTION_QS_ defines below */ |
73 | CONTEXT_PITCHSCREEN, /* uses ACTION_PS_ defines below */ | 102 | CONTEXT_PITCHSCREEN, /* uses ACTION_PS_ defines below */ |
74 | 103 | ||
75 | CONTEXT_YESNOSCREEN, /*NOTE: make sure your target has this and ACTION_YESNO_ACCEPT */ | 104 | CONTEXT_YESNOSCREEN, /*NOTE: make sure your target has this and ACTION_YESNO_ACCEPT */ |
76 | CONTEXT_RECSCREEN, | 105 | CONTEXT_RECSCREEN, |
77 | CONTEXT_KEYBOARD, | 106 | CONTEXT_KEYBOARD, |
@@ -86,7 +115,7 @@ enum { | |||
86 | 115 | ||
87 | 116 | ||
88 | enum { | 117 | enum { |
89 | 118 | ||
90 | ACTION_NONE = BUTTON_NONE, | 119 | ACTION_NONE = BUTTON_NONE, |
91 | ACTION_UNKNOWN, | 120 | ACTION_UNKNOWN, |
92 | ACTION_REDRAW, /* returned if keys are locked and we splash()'ed */ | 121 | ACTION_REDRAW, /* returned if keys are locked and we splash()'ed */ |
@@ -95,11 +124,11 @@ enum { | |||
95 | ACTION_TOUCHSCREEN_IGNORE, /* used for the 'none' action in skins */ | 124 | ACTION_TOUCHSCREEN_IGNORE, /* used for the 'none' action in skins */ |
96 | 125 | ||
97 | /* standard actions, use these first */ | 126 | /* standard actions, use these first */ |
98 | ACTION_STD_PREV, | 127 | ACTION_STD_PREV, |
99 | ACTION_STD_PREVREPEAT, | 128 | ACTION_STD_PREVREPEAT, |
100 | ACTION_STD_NEXT, | 129 | ACTION_STD_NEXT, |
101 | ACTION_STD_NEXTREPEAT, | 130 | ACTION_STD_NEXTREPEAT, |
102 | 131 | ||
103 | ACTION_STD_OK, | 132 | ACTION_STD_OK, |
104 | ACTION_STD_CANCEL, | 133 | ACTION_STD_CANCEL, |
105 | ACTION_STD_CONTEXT, | 134 | ACTION_STD_CONTEXT, |
@@ -108,10 +137,10 @@ enum { | |||
108 | ACTION_STD_KEYLOCK, | 137 | ACTION_STD_KEYLOCK, |
109 | ACTION_STD_REC, | 138 | ACTION_STD_REC, |
110 | ACTION_STD_HOTKEY, | 139 | ACTION_STD_HOTKEY, |
111 | 140 | ||
112 | ACTION_F3, /* just so everything works again, possibly change me */ | 141 | ACTION_F3, /* just so everything works again, possibly change me */ |
113 | /* code context actions */ | 142 | /* code context actions */ |
114 | 143 | ||
115 | /* WPS codes */ | 144 | /* WPS codes */ |
116 | ACTION_WPS_BROWSE, | 145 | ACTION_WPS_BROWSE, |
117 | ACTION_WPS_PLAY, | 146 | ACTION_WPS_PLAY, |
@@ -133,7 +162,7 @@ enum { | |||
133 | ACTION_WPS_CREATE_BOOKMARK,/* optional */ | 162 | ACTION_WPS_CREATE_BOOKMARK,/* optional */ |
134 | ACTION_WPS_REC, | 163 | ACTION_WPS_REC, |
135 | #if 0 | 164 | #if 0 |
136 | ACTION_WPSAB_SINGLE, /* This needs to be #defined in | 165 | ACTION_WPSAB_SINGLE, /* This needs to be #defined in |
137 | the config-<target>.h to one of the ACTION_WPS_ actions | 166 | the config-<target>.h to one of the ACTION_WPS_ actions |
138 | so it can be used */ | 167 | so it can be used */ |
139 | #endif | 168 | #endif |
@@ -141,23 +170,23 @@ enum { | |||
141 | ACTION_WPS_ABSETB_NEXTDIR, /* you shouldnt want to change dir in ab-mode */ | 170 | ACTION_WPS_ABSETB_NEXTDIR, /* you shouldnt want to change dir in ab-mode */ |
142 | ACTION_WPS_ABRESET, | 171 | ACTION_WPS_ABRESET, |
143 | ACTION_WPS_HOTKEY, | 172 | ACTION_WPS_HOTKEY, |
144 | 173 | ||
145 | /* list and tree page up/down */ | 174 | /* list and tree page up/down */ |
146 | ACTION_LISTTREE_PGUP,/* optional */ | 175 | ACTION_LISTTREE_PGUP,/* optional */ |
147 | ACTION_LISTTREE_PGDOWN,/* optional */ | 176 | ACTION_LISTTREE_PGDOWN,/* optional */ |
148 | #ifdef HAVE_VOLUME_IN_LIST | 177 | #ifdef HAVE_VOLUME_IN_LIST |
149 | ACTION_LIST_VOLUP, | 178 | ACTION_LIST_VOLUP, |
150 | ACTION_LIST_VOLDOWN, | 179 | ACTION_LIST_VOLDOWN, |
151 | #endif | 180 | #endif |
152 | 181 | ||
153 | /* tree */ | 182 | /* tree */ |
154 | ACTION_TREE_ROOT_INIT, | 183 | ACTION_TREE_ROOT_INIT, |
155 | ACTION_TREE_PGLEFT,/* optional */ | 184 | ACTION_TREE_PGLEFT,/* optional */ |
156 | ACTION_TREE_PGRIGHT,/* optional */ | 185 | ACTION_TREE_PGRIGHT,/* optional */ |
157 | ACTION_TREE_STOP, | 186 | ACTION_TREE_STOP, |
158 | ACTION_TREE_WPS, | 187 | ACTION_TREE_WPS, |
159 | ACTION_TREE_HOTKEY, | 188 | ACTION_TREE_HOTKEY, |
160 | 189 | ||
161 | /* radio */ | 190 | /* radio */ |
162 | ACTION_FM_MENU, | 191 | ACTION_FM_MENU, |
163 | ACTION_FM_PRESET, | 192 | ACTION_FM_PRESET, |
@@ -177,7 +206,7 @@ enum { | |||
177 | ACTION_REC_NEWFILE, | 206 | ACTION_REC_NEWFILE, |
178 | ACTION_REC_F2, | 207 | ACTION_REC_F2, |
179 | ACTION_REC_F3, | 208 | ACTION_REC_F3, |
180 | 209 | ||
181 | /* main menu */ | 210 | /* main menu */ |
182 | /* These are not strictly actions, but must be here | 211 | /* These are not strictly actions, but must be here |
183 | so they dont conflict with real actions in the menu code */ | 212 | so they dont conflict with real actions in the menu code */ |
@@ -186,11 +215,11 @@ enum { | |||
186 | ACTION_EXIT_AFTER_THIS_MENUITEM, /* if a menu returns this the menu will exit | 215 | ACTION_EXIT_AFTER_THIS_MENUITEM, /* if a menu returns this the menu will exit |
187 | once the subitem returns */ | 216 | once the subitem returns */ |
188 | ACTION_ENTER_MENUITEM, | 217 | ACTION_ENTER_MENUITEM, |
189 | 218 | ||
190 | /* id3db */ | 219 | /* id3db */ |
191 | 220 | ||
192 | /* list */ | 221 | /* list */ |
193 | 222 | ||
194 | /* settings */ | 223 | /* settings */ |
195 | ACTION_SETTINGS_INC, | 224 | ACTION_SETTINGS_INC, |
196 | ACTION_SETTINGS_INCREPEAT, | 225 | ACTION_SETTINGS_INCREPEAT, |
@@ -200,16 +229,16 @@ enum { | |||
200 | ACTION_SETTINGS_DECBIGSTEP, | 229 | ACTION_SETTINGS_DECBIGSTEP, |
201 | ACTION_SETTINGS_RESET, | 230 | ACTION_SETTINGS_RESET, |
202 | ACTION_SETTINGS_SET, /* Used by touchscreen targets */ | 231 | ACTION_SETTINGS_SET, /* Used by touchscreen targets */ |
203 | 232 | ||
204 | /* bookmark screen */ | 233 | /* bookmark screen */ |
205 | ACTION_BMS_DELETE, | 234 | ACTION_BMS_DELETE, |
206 | 235 | ||
207 | /* quickscreen */ | 236 | /* quickscreen */ |
208 | ACTION_QS_LEFT, | 237 | ACTION_QS_LEFT, |
209 | ACTION_QS_RIGHT, | 238 | ACTION_QS_RIGHT, |
210 | ACTION_QS_DOWN, | 239 | ACTION_QS_DOWN, |
211 | ACTION_QS_TOP, | 240 | ACTION_QS_TOP, |
212 | 241 | ||
213 | /* pitchscreen */ | 242 | /* pitchscreen */ |
214 | /* obviously ignore if you dont have thise screen */ | 243 | /* obviously ignore if you dont have thise screen */ |
215 | ACTION_PS_INC_SMALL, | 244 | ACTION_PS_INC_SMALL, |
@@ -225,10 +254,10 @@ enum { | |||
225 | ACTION_PS_EXIT, /* _STD_* isnt going to work here */ | 254 | ACTION_PS_EXIT, /* _STD_* isnt going to work here */ |
226 | ACTION_PS_SLOWER, | 255 | ACTION_PS_SLOWER, |
227 | ACTION_PS_FASTER, | 256 | ACTION_PS_FASTER, |
228 | 257 | ||
229 | /* yesno screen */ | 258 | /* yesno screen */ |
230 | ACTION_YESNO_ACCEPT, | 259 | ACTION_YESNO_ACCEPT, |
231 | 260 | ||
232 | /* keyboard screen */ | 261 | /* keyboard screen */ |
233 | ACTION_KBD_LEFT, | 262 | ACTION_KBD_LEFT, |
234 | ACTION_KBD_RIGHT, | 263 | ACTION_KBD_RIGHT, |
@@ -243,7 +272,7 @@ enum { | |||
243 | ACTION_KBD_DOWN, | 272 | ACTION_KBD_DOWN, |
244 | ACTION_KBD_MORSE_INPUT, | 273 | ACTION_KBD_MORSE_INPUT, |
245 | ACTION_KBD_MORSE_SELECT, | 274 | ACTION_KBD_MORSE_SELECT, |
246 | 275 | ||
247 | #ifdef HAVE_TOUCHSCREEN | 276 | #ifdef HAVE_TOUCHSCREEN |
248 | /* the following are helper actions for touchscreen targets, | 277 | /* the following are helper actions for touchscreen targets, |
249 | * These are for actions which are not doable or required if buttons are | 278 | * These are for actions which are not doable or required if buttons are |
@@ -255,7 +284,7 @@ enum { | |||
255 | ACTION_TOUCH_VOLUME, | 284 | ACTION_TOUCH_VOLUME, |
256 | ACTION_TOUCH_SOFTLOCK, | 285 | ACTION_TOUCH_SOFTLOCK, |
257 | ACTION_TOUCH_SETTING, | 286 | ACTION_TOUCH_SETTING, |
258 | #endif | 287 | #endif |
259 | 288 | ||
260 | /* USB HID codes */ | 289 | /* USB HID codes */ |
261 | ACTION_USB_HID_FIRST, /* Place holder */ | 290 | ACTION_USB_HID_FIRST, /* Place holder */ |
@@ -347,11 +376,8 @@ bool action_userabort(int timeout); | |||
347 | 376 | ||
348 | /* no other code should need this apart from action.c */ | 377 | /* no other code should need this apart from action.c */ |
349 | const struct button_mapping* get_context_mapping(int context); | 378 | const struct button_mapping* get_context_mapping(int context); |
350 | #ifndef HAS_BUTTON_HOLD | ||
351 | bool is_keys_locked(void); | ||
352 | #endif | ||
353 | 379 | ||
354 | /* returns the status code variable from action.c for the button just pressed | 380 | /* returns the status code variable from action.c for the button just pressed |
355 | If button != NULL it will be set to the actual button code */ | 381 | If button != NULL it will be set to the actual button code */ |
356 | #define ACTION_REMOTE 0x1 /* remote was pressed */ | 382 | #define ACTION_REMOTE 0x1 /* remote was pressed */ |
357 | #define ACTION_REPEAT 0x2 /* action was repeated (NOT button) */ | 383 | #define ACTION_REPEAT 0x2 /* action was repeated (NOT button) */ |
@@ -378,7 +404,7 @@ int action_get_touchscreen_press(short *x, short *y); | |||
378 | * the press was within the viewport, | 404 | * the press was within the viewport, |
379 | * ACTION_UNKNOWN (and x1, y1 untouched) if the press was outside | 405 | * ACTION_UNKNOWN (and x1, y1 untouched) if the press was outside |
380 | * BUTTON_NONE else | 406 | * BUTTON_NONE else |
381 | * | 407 | * |
382 | **/ | 408 | **/ |
383 | int action_get_touchscreen_press_in_vp(short *x1, short *y1, struct viewport *vp); | 409 | int action_get_touchscreen_press_in_vp(short *x1, short *y1, struct viewport *vp); |
384 | #endif | 410 | #endif |