summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2009-06-21 14:32:20 +0000
committerJens Arnold <amiconn@rockbox.org>2009-06-21 14:32:20 +0000
commited83831f3bd46d542bd8d5d69d539515cfde7bc9 (patch)
tree215d675c7a2d7895e85bb619de2c7538a8995014
parenta98c54f5f121f6323cb230e44b9f1b8d40b07283 (diff)
downloadrockbox-ed83831f3bd46d542bd8d5d69d539515cfde7bc9.tar.gz
rockbox-ed83831f3bd46d542bd8d5d69d539515cfde7bc9.zip
Change the X5/M5 remote keymapping to match the M3 way, improving consistency with the button labels. The most important change is that VOL+/VOL- are moving up/down in lists, NEXT enters submenus or selects, PREV exists or cancels. There are a few more slight differences. * Fix M3 remote button mapping in the vkeyboard: moving up/down was switched and select/accept didn't work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21454 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/keymaps/keymap-m3.c13
-rw-r--r--apps/keymaps/keymap-x5.c148
2 files changed, 113 insertions, 48 deletions
diff --git a/apps/keymaps/keymap-m3.c b/apps/keymaps/keymap-m3.c
index 6b68f1f881..c5c0796644 100644
--- a/apps/keymaps/keymap-m3.c
+++ b/apps/keymaps/keymap-m3.c
@@ -137,13 +137,13 @@ static const struct button_mapping remote_button_context_keyboard[] = {
137 { ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 137 { ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
138 { ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, 138 { ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
139 { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 139 { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
140 { ACTION_KBD_UP, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 140 { ACTION_KBD_UP, BUTTON_RC_VOL_UP, BUTTON_NONE },
141 { ACTION_KBD_UP, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 141 { ACTION_KBD_UP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
142 { ACTION_KBD_DOWN, BUTTON_RC_VOL_UP, BUTTON_NONE }, 142 { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
143 { ACTION_KBD_DOWN, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 143 { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
144 { ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE }, 144 { ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE },
145 { ACTION_KBD_SELECT, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_PLAY }, 145 { ACTION_KBD_SELECT, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
146 { ACTION_KBD_DONE, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 146 { ACTION_KBD_DONE, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
147 { ACTION_KBD_ABORT, BUTTON_RC_REC, BUTTON_NONE }, 147 { ACTION_KBD_ABORT, BUTTON_RC_REC, BUTTON_NONE },
148 148
149 LAST_ITEM_IN_LIST 149 LAST_ITEM_IN_LIST
@@ -423,6 +423,7 @@ static const struct button_mapping* get_context_mapping_remote( int context )
423 return remote_button_context_settings; 423 return remote_button_context_settings;
424 424
425 case CONTEXT_SETTINGS_EQ: 425 case CONTEXT_SETTINGS_EQ:
426 case CONTEXT_SETTINGS_TIME:
426 return remote_button_context_settings_r_is_inc; 427 return remote_button_context_settings_r_is_inc;
427 428
428 case CONTEXT_TREE: 429 case CONTEXT_TREE:
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index 4401f790d4..b6d8f9bb50 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -61,14 +61,15 @@ static const struct button_mapping button_context_standard[] = {
61}; /* button_context_standard */ 61}; /* button_context_standard */
62 62
63static const struct button_mapping remote_button_context_standard[] = { 63static const struct button_mapping remote_button_context_standard[] = {
64 { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE }, 64 { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE },
65 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 65 { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
66 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE }, 66 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
67 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 67 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
68 68
69 { ACTION_STD_CONTEXT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY }, 69 { ACTION_STD_CONTEXT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
70 { ACTION_STD_CANCEL, BUTTON_RC_MODE, BUTTON_NONE }, 70 { ACTION_STD_CANCEL, BUTTON_RC_REW, BUTTON_NONE },
71 { ACTION_STD_OK, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, 71 { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE },
72 { ACTION_STD_OK, BUTTON_RC_PLAY, BUTTON_NONE },
72 { ACTION_STD_MENU, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 73 { ACTION_STD_MENU, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
73 { ACTION_STD_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, 74 { ACTION_STD_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
74 75
@@ -82,6 +83,12 @@ static const struct button_mapping button_context_bmark[] = {
82 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), 83 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
83}; /* button_context_settings_bmark */ 84}; /* button_context_settings_bmark */
84 85
86static const struct button_mapping remote_button_context_bmark[] = {
87 { ACTION_BMS_DELETE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_RC_REC },
88
89 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
90}; /* button_context_settings_bmark */
91
85/** FM Radio Screen **/ 92/** FM Radio Screen **/
86static const struct button_mapping button_context_radio[] = { 93static const struct button_mapping button_context_radio[] = {
87 { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_NONE }, 94 { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_NONE },
@@ -97,6 +104,20 @@ static const struct button_mapping button_context_radio[] = {
97 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 104 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
98}; /* button_context_radio */ 105}; /* button_context_radio */
99 106
107static const struct button_mapping remote_button_context_radio[] = {
108 { ACTION_FM_MENU, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
109 { ACTION_FM_PRESET, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
110 { ACTION_FM_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
111 { ACTION_FM_PLAY, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
112 { ACTION_FM_MODE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_RC_REC },
113 { ACTION_FM_EXIT, BUTTON_RC_MENU, BUTTON_NONE },
114 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
115 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE },
116 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
117
118 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
119}; /* remote_button_context_radio */
120
100/** Keyboard **/ 121/** Keyboard **/
101static const struct button_mapping button_context_keyboard[] = { 122static const struct button_mapping button_context_keyboard[] = {
102 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, 123 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -116,27 +137,20 @@ static const struct button_mapping button_context_keyboard[] = {
116 137
117static const struct button_mapping remote_button_context_keyboard[] = { 138static const struct button_mapping remote_button_context_keyboard[] = {
118 { ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE }, 139 { ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE },
119 { ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 140 { ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
120 { ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, 141 { ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
121 { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 142 { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
122 { ACTION_KBD_SELECT_REM, BUTTON_RC_REC|BUTTON_REL, BUTTON_NONE }, 143 { ACTION_KBD_UP, BUTTON_RC_VOL_UP, BUTTON_NONE },
123 { ACTION_KBD_SELECT_REM, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, 144 { ACTION_KBD_UP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
124 { ACTION_KBD_DONE, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, 145 { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
125 { ACTION_KBD_ABORT, BUTTON_RC_MODE, BUTTON_NONE }, 146 { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
126 { ACTION_KBD_UP, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 147 { ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE },
127 { ACTION_KBD_UP, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 148 { ACTION_KBD_SELECT, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
128 { ACTION_KBD_DOWN, BUTTON_RC_VOL_UP, BUTTON_NONE }, 149 { ACTION_KBD_DONE, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
129 { ACTION_KBD_DOWN, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 150 { ACTION_KBD_ABORT, BUTTON_RC_REC, BUTTON_NONE },
130 151
131 LAST_ITEM_IN_LIST 152 LAST_ITEM_IN_LIST
132}; /* button_context_keyboard_h100remote */ 153}; /* remote_button_context_keyboard */
133
134static const struct button_mapping remote_button_context_mainmenu[] = {
135 { ACTION_STD_CANCEL, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
136 { ACTION_STD_OK, BUTTON_RC_VOL_UP, BUTTON_NONE },
137
138 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
139}; /* remote_button_context_mainmenu */
140 154
141/** Pitchscreen **/ 155/** Pitchscreen **/
142static const struct button_mapping button_context_pitchscreen[] = { 156static const struct button_mapping button_context_pitchscreen[] = {
@@ -166,7 +180,8 @@ static const struct button_mapping remote_button_context_pitchscreen[] = {
166 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_RC_REW|BUTTON_REL, BUTTON_NONE }, 180 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_RC_REW|BUTTON_REL, BUTTON_NONE },
167 { ACTION_PS_NUDGE_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, 181 { ACTION_PS_NUDGE_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
168 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RC_FF|BUTTON_REL, BUTTON_NONE }, 182 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RC_FF|BUTTON_REL, BUTTON_NONE },
169 { ACTION_PS_RESET, BUTTON_RC_MODE, BUTTON_NONE }, 183 { ACTION_PS_TOGGLE_MODE, BUTTON_RC_MODE, BUTTON_NONE },
184 { ACTION_PS_RESET, BUTTON_RC_REC, BUTTON_NONE },
170 { ACTION_PS_EXIT, BUTTON_RC_PLAY, BUTTON_NONE }, 185 { ACTION_PS_EXIT, BUTTON_RC_PLAY, BUTTON_NONE },
171 { ACTION_PS_SLOWER, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 186 { ACTION_PS_SLOWER, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
172 { ACTION_PS_FASTER, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 187 { ACTION_PS_FASTER, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
@@ -198,6 +213,7 @@ static const struct button_mapping remote_button_context_quickscreen[] = {
198 { ACTION_QS_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 213 { ACTION_QS_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
199 { ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, 214 { ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
200 { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 215 { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
216 { ACTION_STD_CANCEL, BUTTON_RC_REC, BUTTON_NONE },
201 217
202 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 218 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
203}; /* remote_button_context_quickscreen */ 219}; /* remote_button_context_quickscreen */
@@ -216,6 +232,19 @@ static const struct button_mapping button_context_recscreen[] = {
216 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 232 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
217}; /* button_context_recscreen */ 233}; /* button_context_recscreen */
218 234
235static const struct button_mapping remote_button_context_recscreen[] = {
236 { ACTION_REC_PAUSE, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
237 { ACTION_STD_CANCEL, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
238 { ACTION_REC_NEWFILE, BUTTON_RC_REC, BUTTON_NONE },
239 { ACTION_STD_MENU, BUTTON_RC_MENU, BUTTON_NONE },
240 { ACTION_SETTINGS_INC, BUTTON_RC_FF, BUTTON_NONE },
241 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
242 { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE },
243 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
244
245 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
246}; /* remote_button_context_recscreen */
247
219/** Settings - General Mappings **/ 248/** Settings - General Mappings **/
220static const struct button_mapping button_context_settings[] = { 249static const struct button_mapping button_context_settings[] = {
221 { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE }, 250 { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
@@ -228,6 +257,17 @@ static const struct button_mapping button_context_settings[] = {
228 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 257 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
229}; /* button_context_settings */ 258}; /* button_context_settings */
230 259
260static const struct button_mapping remote_button_context_settings[] = {
261 { ACTION_SETTINGS_INC, BUTTON_RC_VOL_UP, BUTTON_NONE },
262 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
263 { ACTION_SETTINGS_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
264 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
265 { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE },
266 { ACTION_STD_CANCEL, BUTTON_RC_REC, BUTTON_NONE },
267
268 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
269}; /* remote_button_context_settings */
270
231/** Settings - Using Sliders **/ 271/** Settings - Using Sliders **/
232static const struct button_mapping button_context_settings_r_is_inc[] = { 272static const struct button_mapping button_context_settings_r_is_inc[] = {
233 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, 273 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
@@ -244,14 +284,11 @@ static const struct button_mapping button_context_settings_r_is_inc[] = {
244}; /* button_context_settings_r_is_inc */ 284}; /* button_context_settings_r_is_inc */
245 285
246static const struct button_mapping remote_button_context_settings_r_is_inc[] = { 286static const struct button_mapping remote_button_context_settings_r_is_inc[] = {
247 { ACTION_SETTINGS_INC, BUTTON_RC_VOL_UP, BUTTON_NONE }, 287 { ACTION_SETTINGS_INC, BUTTON_RC_FF, BUTTON_NONE },
248 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 288 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
249 { ACTION_SETTINGS_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 289 { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE },
250 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 290 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE },
251 { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE }, 291 { ACTION_STD_CANCEL, BUTTON_RC_REC, BUTTON_NONE },
252 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
253 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE },
254 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
255 292
256 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 293 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
257}; /* remote_button_context_settings_r_is_inc */ 294}; /* remote_button_context_settings_r_is_inc */
@@ -275,10 +312,9 @@ static const struct button_mapping button_context_tree[] = {
275}; /* button_context_tree */ 312}; /* button_context_tree */
276 313
277static const struct button_mapping remote_button_context_tree[] = { 314static const struct button_mapping remote_button_context_tree[] = {
278 { ACTION_STD_CANCEL, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 315 { ACTION_NONE, BUTTON_RC_PLAY, BUTTON_NONE },
279 { ACTION_STD_OK, BUTTON_RC_VOL_UP, BUTTON_NONE }, 316 { ACTION_TREE_WPS, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
280 { ACTION_NONE, BUTTON_RC_MODE, BUTTON_NONE }, 317 { ACTION_TREE_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
281 { ACTION_TREE_WPS, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
282 318
283 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 319 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
284}; /* remote_button_context_tree */ 320}; /* remote_button_context_tree */
@@ -297,6 +333,20 @@ static const struct button_mapping button_context_tree_scroll_lr[] = {
297 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), 333 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
298}; /* button_context_tree_scroll_lr */ 334}; /* button_context_tree_scroll_lr */
299 335
336static const struct button_mapping remote_button_context_tree_scroll_lr[] = {
337 { ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE },
338 { ACTION_STD_CANCEL, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW },
339 { ACTION_TREE_ROOT_INIT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_RC_REW },
340 { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
341 { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT },
342 { ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE },
343 { ACTION_STD_OK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF },
344 { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
345 { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT },
346
347 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
348}; /* remote_button_context_tree_scroll_lr */
349
300/** While-Playing Screen (WPS) **/ 350/** While-Playing Screen (WPS) **/
301static const struct button_mapping button_context_wps[] = { 351static const struct button_mapping button_context_wps[] = {
302 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 352 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
@@ -341,7 +391,7 @@ static const struct button_mapping remote_button_context_wps[] = {
341 { ACTION_WPS_MENU, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 391 { ACTION_WPS_MENU, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
342 { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, 392 { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
343 393
344 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 394 LAST_ITEM_IN_LIST
345}; /* remote_button_context_wps */ 395}; /* remote_button_context_wps */
346 396
347/** Yes/No Screen **/ 397/** Yes/No Screen **/
@@ -367,24 +417,38 @@ static const struct button_mapping* get_context_mapping_remote( int context )
367 return remote_button_context_standard; 417 return remote_button_context_standard;
368 418
369 /* remote contexts with special mapping */ 419 /* remote contexts with special mapping */
420 case CONTEXT_BOOKMARKSCREEN:
421 return remote_button_context_bmark;
422
423 case CONTEXT_FM:
424 return remote_button_context_radio;
425
370 case CONTEXT_KEYBOARD: 426 case CONTEXT_KEYBOARD:
371 return remote_button_context_keyboard; 427 return remote_button_context_keyboard;
372 428
373 case CONTEXT_MAINMENU:
374 return remote_button_context_mainmenu;
375
376 case CONTEXT_PITCHSCREEN: 429 case CONTEXT_PITCHSCREEN:
377 return remote_button_context_pitchscreen; 430 return remote_button_context_pitchscreen;
378 431
379 case CONTEXT_QUICKSCREEN: 432 case CONTEXT_QUICKSCREEN:
380 return remote_button_context_quickscreen; 433 return remote_button_context_quickscreen;
381 434
435 case CONTEXT_RECSCREEN:
436 return remote_button_context_recscreen;
437
438 case CONTEXT_SETTINGS:
439 return remote_button_context_settings;
440
382 case CONTEXT_SETTINGS_COLOURCHOOSER: 441 case CONTEXT_SETTINGS_COLOURCHOOSER:
383 case CONTEXT_SETTINGS_EQ: 442 case CONTEXT_SETTINGS_EQ:
384 case CONTEXT_SETTINGS_TIME: 443 case CONTEXT_SETTINGS_TIME:
385 return remote_button_context_settings_r_is_inc; 444 return remote_button_context_settings_r_is_inc;
386 445
387 case CONTEXT_TREE: 446 case CONTEXT_TREE:
447 case CONTEXT_MAINMENU:
448 if (global_settings.hold_lr_for_scroll_in_list)
449 return remote_button_context_tree_scroll_lr;
450 /* else fall through to CONTEXT_TREE|CONTEXT_CUSTOM */
451 case CONTEXT_TREE|CONTEXT_CUSTOM:
388 return remote_button_context_tree; 452 return remote_button_context_tree;
389 453
390 case CONTEXT_WPS: 454 case CONTEXT_WPS: