summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/action.c7
-rw-r--r--apps/action.h8
-rw-r--r--apps/keymaps/keymap-h10.c14
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c46
-rw-r--r--apps/keymaps/keymap-ifp7xx.c10
-rw-r--r--apps/keymaps/keymap-ipod.c12
-rw-r--r--apps/keymaps/keymap-ondio.c10
-rw-r--r--apps/keymaps/keymap-player.c10
-rw-r--r--apps/keymaps/keymap-recorder.c16
-rw-r--r--apps/keymaps/keymap-x5.c20
10 files changed, 76 insertions, 77 deletions
diff --git a/apps/action.c b/apps/action.c
index e031ce0312..c0d6021995 100644
--- a/apps/action.c
+++ b/apps/action.c
@@ -161,11 +161,8 @@ int get_action_worker(int context, int timeout,
161 161
162 ret = do_button_check(items,button,last_button,&i); 162 ret = do_button_check(items,button,last_button,&i);
163 163
164 if ((context == CONTEXT_STD) 164 if (context == CONTEXT_STOPSEARCHING)
165#if (BUTTON_REMOTE != 0) 165 break;
166 || ((unsigned)context == (CONTEXT_STD|CONTEXT_REMOTE))
167#endif
168 ) break;
169 166
170 if (ret == ACTION_UNKNOWN ) 167 if (ret == ACTION_UNKNOWN )
171 { 168 {
diff --git a/apps/action.h b/apps/action.h
index 147b1532b7..549886b549 100644
--- a/apps/action.h
+++ b/apps/action.h
@@ -21,14 +21,16 @@
21#include "stdbool.h" 21#include "stdbool.h"
22#include "button.h" 22#include "button.h"
23 23
24#define LAST_ITEM_IN_LIST { ACTION_NONE, BUTTON_NONE, BUTTON_NONE }
25#define LAST_ITEM_IN_LIST__NEXTLIST(a) { a, BUTTON_NONE, BUTTON_NONE }
26
27#define TIMEOUT_BLOCK -1 24#define TIMEOUT_BLOCK -1
28#define TIMEOUT_NOBLOCK 0 25#define TIMEOUT_NOBLOCK 0
26
27#define CONTEXT_STOPSEARCHING 0xFFFFFFFF
29#define CONTEXT_REMOTE 0x80000000 /* | this against another context to get remote buttons for that context */ 28#define CONTEXT_REMOTE 0x80000000 /* | this against another context to get remote buttons for that context */
30#define CONTEXT_CUSTOM 0x40000000 /* | this against anything to get your context number */ 29#define CONTEXT_CUSTOM 0x40000000 /* | this against anything to get your context number */
31 30
31#define LAST_ITEM_IN_LIST { CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE }
32#define LAST_ITEM_IN_LIST__NEXTLIST(a) { a, BUTTON_NONE, BUTTON_NONE }
33
32#ifndef HAS_BUTTON_HOLD 34#ifndef HAS_BUTTON_HOLD
33#define ALLOW_SOFTLOCK 0x20000000 /* will be stripped.. never needed except in calls to get_action() */ 35#define ALLOW_SOFTLOCK 0x20000000 /* will be stripped.. never needed except in calls to get_action() */
34#else 36#else
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c
index db55f825e9..25ee13022f 100644
--- a/apps/keymaps/keymap-h10.c
+++ b/apps/keymaps/keymap-h10.c
@@ -80,7 +80,7 @@ const struct button_mapping button_context_settings[] = {
80 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, 80 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
81 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, 81 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
82 82
83 LAST_ITEM_IN_LIST 83 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
84}; /* button_context_settings */ 84}; /* button_context_settings */
85 85
86const struct button_mapping button_context_tree[] = { 86const struct button_mapping button_context_tree[] = {
@@ -88,7 +88,7 @@ const struct button_mapping button_context_tree[] = {
88 { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 88 { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
89 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 89 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
90 90
91 LAST_ITEM_IN_LIST 91 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
92}; /* button_context_tree */ 92}; /* button_context_tree */
93 93
94const struct button_mapping button_context_tree_scroll_lr[] = { 94const struct button_mapping button_context_tree_scroll_lr[] = {
@@ -105,7 +105,7 @@ const struct button_mapping button_context_tree_scroll_lr[] = {
105 105
106const struct button_mapping button_context_yesno[] = { 106const struct button_mapping button_context_yesno[] = {
107 { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE }, 107 { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE },
108 LAST_ITEM_IN_LIST 108 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
109}; /* button_context_settings_yesno */ 109}; /* button_context_settings_yesno */
110 110
111const struct button_mapping button_context_quickscreen[] = { 111const struct button_mapping button_context_quickscreen[] = {
@@ -119,7 +119,7 @@ const struct button_mapping button_context_quickscreen[] = {
119 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 119 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
120 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, 120 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
121 121
122 LAST_ITEM_IN_LIST 122 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
123}; /* button_context_quickscreen */ 123}; /* button_context_quickscreen */
124 124
125const struct button_mapping button_context_settings_r_is_inc[] = { 125const struct button_mapping button_context_settings_r_is_inc[] = {
@@ -134,7 +134,7 @@ const struct button_mapping button_context_settings_r_is_inc[] = {
134 { ACTION_STD_OK, BUTTON_PLAY, BUTTON_NONE }, 134 { ACTION_STD_OK, BUTTON_PLAY, BUTTON_NONE },
135 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, 135 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
136 136
137 LAST_ITEM_IN_LIST 137 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
138}; /* button_context_settings_r_is_inc */ 138}; /* button_context_settings_r_is_inc */
139 139
140const struct button_mapping button_context_pitchscreen[] = { 140const struct button_mapping button_context_pitchscreen[] = {
@@ -149,7 +149,7 @@ const struct button_mapping button_context_pitchscreen[] = {
149 { ACTION_PS_RESET, BUTTON_PLAY, BUTTON_NONE }, 149 { ACTION_PS_RESET, BUTTON_PLAY, BUTTON_NONE },
150 { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE }, 150 { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE },
151 151
152 LAST_ITEM_IN_LIST 152 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
153}; /* button_context_pitchscreen */ 153}; /* button_context_pitchscreen */
154 154
155 155
@@ -159,7 +159,7 @@ const struct button_mapping* get_context_mapping(int context)
159{ 159{
160 switch (context) 160 switch (context)
161 { 161 {
162 case CONTEXT_STD: 162 case CONTEXT_STD:
163 return button_context_standard; 163 return button_context_standard;
164 164
165 case CONTEXT_WPS: 165 case CONTEXT_WPS:
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index b68aed8a37..ff87bff7d3 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -100,7 +100,7 @@ const struct button_mapping button_context_list[] = {
100 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON }, 100 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON },
101 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_ON|BUTTON_DOWN }, 101 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_ON|BUTTON_DOWN },
102 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 102 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
103 LAST_ITEM_IN_LIST 103 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
104}; /* button_context_list */ 104}; /* button_context_list */
105 105
106const struct button_mapping button_context_tree[] = { 106const struct button_mapping button_context_tree[] = {
@@ -148,7 +148,7 @@ const struct button_mapping button_context_settings[] = {
148 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 148 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
149 { ACTION_SETTINGS_RESET, BUTTON_ON, BUTTON_NONE }, 149 { ACTION_SETTINGS_RESET, BUTTON_ON, BUTTON_NONE },
150 150
151 LAST_ITEM_IN_LIST 151 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
152}; /* button_context_settings */ 152}; /* button_context_settings */
153 153
154const struct button_mapping button_context_settings_right_is_inc[] = { 154const struct button_mapping button_context_settings_right_is_inc[] = {
@@ -162,12 +162,12 @@ const struct button_mapping button_context_settings_right_is_inc[] = {
162 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 162 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
163 { ACTION_SETTINGS_RESET, BUTTON_ON, BUTTON_NONE }, 163 { ACTION_SETTINGS_RESET, BUTTON_ON, BUTTON_NONE },
164 164
165 LAST_ITEM_IN_LIST 165 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
166}; /* button_context_settingsgraphical */ 166}; /* button_context_settingsgraphical */
167 167
168const struct button_mapping button_context_yesno[] = { 168const struct button_mapping button_context_yesno[] = {
169 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE }, 169 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
170 LAST_ITEM_IN_LIST 170 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
171}; /* button_context_settings_yesno */ 171}; /* button_context_settings_yesno */
172 172
173const struct button_mapping button_context_colorchooser[] = { 173const struct button_mapping button_context_colorchooser[] = {
@@ -203,7 +203,7 @@ const struct button_mapping button_context_quickscreen[] = {
203 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 203 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
204 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE }, 204 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
205 205
206 LAST_ITEM_IN_LIST 206 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
207}; /* button_context_quickscreen */ 207}; /* button_context_quickscreen */
208 208
209const struct button_mapping button_context_pitchscreen[] = { 209const struct button_mapping button_context_pitchscreen[] = {
@@ -218,7 +218,7 @@ const struct button_mapping button_context_pitchscreen[] = {
218 { ACTION_PS_RESET, BUTTON_ON, BUTTON_NONE }, 218 { ACTION_PS_RESET, BUTTON_ON, BUTTON_NONE },
219 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE }, 219 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE },
220 220
221 LAST_ITEM_IN_LIST 221 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
222}; /* button_context_pitchcreen */ 222}; /* button_context_pitchcreen */
223 223
224const struct button_mapping button_context_recscreen[] = { 224const struct button_mapping button_context_recscreen[] = {
@@ -229,7 +229,7 @@ const struct button_mapping button_context_recscreen[] = {
229 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, 229 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
230 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 230 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
231 231
232 LAST_ITEM_IN_LIST 232 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
233}; /* button_context_recscreen */ 233}; /* button_context_recscreen */
234 234
235/***************************************************************************** 235/*****************************************************************************
@@ -251,7 +251,7 @@ const struct button_mapping button_context_standard_h100remote[] = {
251 { ACTION_STD_OK, BUTTON_RC_ON, BUTTON_NONE }, 251 { ACTION_STD_OK, BUTTON_RC_ON, BUTTON_NONE },
252 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 252 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
253 253
254 LAST_ITEM_IN_LIST 254 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
255}; /* button_context_standard_h100lcdremote */ 255}; /* button_context_standard_h100lcdremote */
256 256
257const struct button_mapping button_context_standard_h300lcdremote[] = { 257const struct button_mapping button_context_standard_h300lcdremote[] = {
@@ -268,7 +268,7 @@ const struct button_mapping button_context_standard_h300lcdremote[] = {
268 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 268 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
269 { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE }, 269 { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE },
270 270
271 LAST_ITEM_IN_LIST 271 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
272 272
273}; 273};
274 274
@@ -302,12 +302,12 @@ const struct button_mapping button_context_wps_remotescommon[] = {
302const struct button_mapping button_context_wps_h100remote[] = { 302const struct button_mapping button_context_wps_h100remote[] = {
303 { ACTION_WPSAB_RESET, BUTTON_RC_ON|BUTTON_RC_MENU, BUTTON_RC_ON }, 303 { ACTION_WPSAB_RESET, BUTTON_RC_ON|BUTTON_RC_MENU, BUTTON_RC_ON },
304 { ACTION_WPS_ID3SCREEN, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE }, 304 { ACTION_WPS_ID3SCREEN, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE },
305 LAST_ITEM_IN_LIST 305 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
306}; 306};
307const struct button_mapping button_context_wps_h300lcdremote[] = { 307const struct button_mapping button_context_wps_h300lcdremote[] = {
308 { ACTION_WPSAB_RESET, BUTTON_RC_MENU|BUTTON_RC_ON, BUTTON_RC_MENU }, 308 { ACTION_WPSAB_RESET, BUTTON_RC_MENU|BUTTON_RC_ON, BUTTON_RC_MENU },
309 { ACTION_WPS_ID3SCREEN, BUTTON_RC_MENU|BUTTON_RC_MODE, BUTTON_NONE }, 309 { ACTION_WPS_ID3SCREEN, BUTTON_RC_MENU|BUTTON_RC_MODE, BUTTON_NONE },
310 LAST_ITEM_IN_LIST 310 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
311}; 311};
312 312
313const struct button_mapping button_context_list_h100remote[] = { 313const struct button_mapping button_context_list_h100remote[] = {
@@ -315,7 +315,7 @@ const struct button_mapping button_context_list_h100remote[] = {
315 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, 315 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
316 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, 316 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE },
317 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, 317 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
318 LAST_ITEM_IN_LIST 318 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
319}; 319};
320 320
321const struct button_mapping *button_context_list_h300lcdremote = 321const struct button_mapping *button_context_list_h300lcdremote =
@@ -392,7 +392,7 @@ const struct button_mapping button_context_settings_h100remote[] = {
392 { ACTION_NONE, BUTTON_RC_STOP, BUTTON_NONE }, 392 { ACTION_NONE, BUTTON_RC_STOP, BUTTON_NONE },
393 { ACTION_NONE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, 393 { ACTION_NONE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE },
394*/ 394*/
395 LAST_ITEM_IN_LIST 395 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
396}; /* button_context_settings */ 396}; /* button_context_settings */
397 397
398const struct button_mapping button_context_settings_h300lcdremote[] = { 398const struct button_mapping button_context_settings_h300lcdremote[] = {
@@ -403,7 +403,7 @@ const struct button_mapping button_context_settings_h300lcdremote[] = {
403 { ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE }, 403 { ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE },
404 { ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE }, 404 { ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE },
405 405
406 LAST_ITEM_IN_LIST 406 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
407}; /* button_context_settings */ 407}; /* button_context_settings */
408 408
409 409
@@ -418,7 +418,7 @@ const struct button_mapping button_context_settingsgraphical_h100remote[] = {
418 { ACTION_STD_NEXT, BUTTON_RC_BITRATE, BUTTON_NONE }, 418 { ACTION_STD_NEXT, BUTTON_RC_BITRATE, BUTTON_NONE },
419 { ACTION_STD_NEXTREPEAT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, 419 { ACTION_STD_NEXTREPEAT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
420 420
421 LAST_ITEM_IN_LIST 421 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
422}; /* button_context_settingsgraphical_h100remote */ 422}; /* button_context_settingsgraphical_h100remote */
423 423
424const struct button_mapping button_context_settingsgraphical_h300lcdremote[] = { 424const struct button_mapping button_context_settingsgraphical_h300lcdremote[] = {
@@ -431,12 +431,12 @@ const struct button_mapping button_context_settingsgraphical_h300lcdremote[] =
431 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 431 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
432 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 432 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
433 433
434 LAST_ITEM_IN_LIST 434 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
435}; /* button_context_settingsgraphical_h300remote */ 435}; /* button_context_settingsgraphical_h300remote */
436 436
437const struct button_mapping button_context_yesno_h100remote[] = { 437const struct button_mapping button_context_yesno_h100remote[] = {
438 { ACTION_YESNO_ACCEPT, BUTTON_RC_MENU, BUTTON_NONE }, 438 { ACTION_YESNO_ACCEPT, BUTTON_RC_MENU, BUTTON_NONE },
439 LAST_ITEM_IN_LIST 439 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
440}; /* button_context_settings_yesno */ 440}; /* button_context_settings_yesno */
441 441
442const struct button_mapping *button_context_yesno_h300lcdremote = 442const struct button_mapping *button_context_yesno_h300lcdremote =
@@ -465,7 +465,7 @@ const struct button_mapping button_context_quickscreen_h100remote[] = {
465 { ACTION_QS_RIGHT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, 465 { ACTION_QS_RIGHT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
466 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE }, 466 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
467 467
468 LAST_ITEM_IN_LIST 468 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
469}; /* button_context_quickscreen */ 469}; /* button_context_quickscreen */
470 470
471const struct button_mapping button_context_quickscreen_h300lcdremote[] = { 471const struct button_mapping button_context_quickscreen_h300lcdremote[] = {
@@ -479,7 +479,7 @@ const struct button_mapping button_context_quickscreen_h300lcdremote[] = {
479 { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 479 { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
480 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE }, 480 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
481 481
482 LAST_ITEM_IN_LIST 482 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
483}; /* button_context_quickscreen */ 483}; /* button_context_quickscreen */
484 484
485const struct button_mapping button_context_pitchscreen_h100remote[] = { 485const struct button_mapping button_context_pitchscreen_h100remote[] = {
@@ -494,7 +494,7 @@ const struct button_mapping button_context_pitchscreen_h100remote[] = {
494 { ACTION_PS_RESET, BUTTON_RC_ON, BUTTON_NONE }, 494 { ACTION_PS_RESET, BUTTON_RC_ON, BUTTON_NONE },
495 { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE }, 495 { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
496 496
497 LAST_ITEM_IN_LIST 497 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
498}; /* button_context_pitchcreen */ 498}; /* button_context_pitchcreen */
499 499
500const struct button_mapping button_context_pitchscreen_h300lcdremote[] = { 500const struct button_mapping button_context_pitchscreen_h300lcdremote[] = {
@@ -509,7 +509,7 @@ const struct button_mapping button_context_pitchscreen_h300lcdremote[] = {
509 { ACTION_PS_RESET, BUTTON_RC_ON, BUTTON_NONE }, 509 { ACTION_PS_RESET, BUTTON_RC_ON, BUTTON_NONE },
510 { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE }, 510 { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
511 511
512 LAST_ITEM_IN_LIST 512 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
513}; 513};
514 514
515const struct button_mapping button_context_recscreen_h100remote[] = { 515const struct button_mapping button_context_recscreen_h100remote[] = {
@@ -521,7 +521,7 @@ const struct button_mapping button_context_recscreen_h100remote[] = {
521 { ACTION_SETTINGS_DEC, BUTTON_RC_SOURCE, BUTTON_NONE }, 521 { ACTION_SETTINGS_DEC, BUTTON_RC_SOURCE, BUTTON_NONE },
522 { ACTION_SETTINGS_DEC, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, 522 { ACTION_SETTINGS_DEC, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
523 523
524 LAST_ITEM_IN_LIST 524 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
525}; /* button_context_recscreen_h100remote */ 525}; /* button_context_recscreen_h100remote */
526 526
527const struct button_mapping button_context_recscreen_h300lcdremote[] = { 527const struct button_mapping button_context_recscreen_h300lcdremote[] = {
@@ -533,7 +533,7 @@ const struct button_mapping button_context_recscreen_h300lcdremote[] = {
533 { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE }, 533 { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE },
534 { ACTION_SETTINGS_DEC, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 534 { ACTION_SETTINGS_DEC, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
535 535
536 LAST_ITEM_IN_LIST 536 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
537}; /* button_context_recscreen_h300lcdremote */ 537}; /* button_context_recscreen_h300lcdremote */
538 538
539 539
diff --git a/apps/keymaps/keymap-ifp7xx.c b/apps/keymaps/keymap-ifp7xx.c
index 359aa5b6e2..5ffa71593c 100644
--- a/apps/keymaps/keymap-ifp7xx.c
+++ b/apps/keymaps/keymap-ifp7xx.c
@@ -79,7 +79,7 @@ const struct button_mapping button_context_settings[] = {
79 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, 79 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
80 { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE }, 80 { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
81 81
82 LAST_ITEM_IN_LIST 82 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
83}; /* button_context_settings */ 83}; /* button_context_settings */
84 84
85const struct button_mapping button_context_settings_r_is_inc[] = { 85const struct button_mapping button_context_settings_r_is_inc[] = {
@@ -92,12 +92,12 @@ const struct button_mapping button_context_settings_r_is_inc[] = {
92 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, 92 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
93 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 93 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
94 94
95 LAST_ITEM_IN_LIST 95 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
96}; /* button_context_settingsgraphical */ 96}; /* button_context_settingsgraphical */
97 97
98const struct button_mapping button_context_yesno[] = { 98const struct button_mapping button_context_yesno[] = {
99 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE }, 99 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
100 LAST_ITEM_IN_LIST 100 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
101}; /* button_context_settings_yesno */ 101}; /* button_context_settings_yesno */
102 102
103const struct button_mapping button_context_bmark[] = { 103const struct button_mapping button_context_bmark[] = {
@@ -116,7 +116,7 @@ const struct button_mapping button_context_quickscreen[] = {
116 { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, 116 { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
117 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 117 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
118 118
119 LAST_ITEM_IN_LIST 119 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
120}; /* button_context_quickscreen */ 120}; /* button_context_quickscreen */
121 121
122const struct button_mapping button_context_pitchscreen[] = { 122const struct button_mapping button_context_pitchscreen[] = {
@@ -131,7 +131,7 @@ const struct button_mapping button_context_pitchscreen[] = {
131 { ACTION_PS_RESET, BUTTON_MODE, BUTTON_NONE }, 131 { ACTION_PS_RESET, BUTTON_MODE, BUTTON_NONE },
132 { ACTION_PS_EXIT, BUTTON_PLAY, BUTTON_NONE }, 132 { ACTION_PS_EXIT, BUTTON_PLAY, BUTTON_NONE },
133 133
134 LAST_ITEM_IN_LIST 134 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
135}; /* button_context_pitchcreen */ 135}; /* button_context_pitchcreen */
136 136
137/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ 137/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c
index 4f4ac4ad33..bfef9c153b 100644
--- a/apps/keymaps/keymap-ipod.c
+++ b/apps/keymaps/keymap-ipod.c
@@ -57,7 +57,7 @@ const struct button_mapping button_context_tree[] = {
57 { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 57 { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
58 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 58 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
59 59
60 LAST_ITEM_IN_LIST 60 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
61}; /* button_context_tree */ 61}; /* button_context_tree */
62 62
63const struct button_mapping button_context_tree_scroll_lr[] = { 63const struct button_mapping button_context_tree_scroll_lr[] = {
@@ -90,7 +90,7 @@ const struct button_mapping button_context_wps[] = {
90 { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 90 { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
91 { ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, 91 { ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
92 92
93 LAST_ITEM_IN_LIST 93 LAST_ITEM_IN_LIST,
94}; /* button_context_wps */ 94}; /* button_context_wps */
95 95
96const struct button_mapping button_context_settings[] = { 96const struct button_mapping button_context_settings[] = {
@@ -105,12 +105,12 @@ const struct button_mapping button_context_settings[] = {
105 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, 105 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
106 { ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 106 { ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
107 107
108 LAST_ITEM_IN_LIST 108 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
109}; /* button_context_settings */ 109}; /* button_context_settings */
110 110
111const struct button_mapping button_context_yesno[] = { 111const struct button_mapping button_context_yesno[] = {
112 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE }, 112 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE },
113 LAST_ITEM_IN_LIST 113 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
114}; /* button_context_settings_yesno */ 114}; /* button_context_settings_yesno */
115 115
116const struct button_mapping button_context_bmark[] = { 116const struct button_mapping button_context_bmark[] = {
@@ -127,7 +127,7 @@ const struct button_mapping button_context_quickscreen[] = {
127 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 127 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
128 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE }, 128 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
129 129
130 LAST_ITEM_IN_LIST 130 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
131}; /* button_context_quickscreen */ 131}; /* button_context_quickscreen */
132 132
133const struct button_mapping button_context_pitchscreen[] = { 133const struct button_mapping button_context_pitchscreen[] = {
@@ -142,7 +142,7 @@ const struct button_mapping button_context_pitchscreen[] = {
142 { ACTION_PS_RESET, BUTTON_MENU, BUTTON_NONE }, 142 { ACTION_PS_RESET, BUTTON_MENU, BUTTON_NONE },
143 { ACTION_PS_EXIT, BUTTON_SELECT, BUTTON_NONE }, 143 { ACTION_PS_EXIT, BUTTON_SELECT, BUTTON_NONE },
144 144
145 LAST_ITEM_IN_LIST 145 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
146}; /* button_context_pitchscreen */ 146}; /* button_context_pitchscreen */
147 147
148/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ 148/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
diff --git a/apps/keymaps/keymap-ondio.c b/apps/keymaps/keymap-ondio.c
index 141d23b5d1..1a1411093e 100644
--- a/apps/keymaps/keymap-ondio.c
+++ b/apps/keymaps/keymap-ondio.c
@@ -77,13 +77,13 @@ const struct button_mapping button_context_settings[] = {
77 { ACTION_STD_OK, BUTTON_LEFT, BUTTON_NONE }, 77 { ACTION_STD_OK, BUTTON_LEFT, BUTTON_NONE },
78 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE }, 78 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
79 79
80 LAST_ITEM_IN_LIST 80 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
81}; 81};
82const struct button_mapping button_context_tree[] = { 82const struct button_mapping button_context_tree[] = {
83 { ACTION_TREE_WPS, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 83 { ACTION_TREE_WPS, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
84 { ACTION_TREE_STOP, BUTTON_OFF, BUTTON_NONE }, 84 { ACTION_TREE_STOP, BUTTON_OFF, BUTTON_NONE },
85 85
86 LAST_ITEM_IN_LIST 86 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
87}; /* button_context_listtree */ 87}; /* button_context_listtree */
88const struct button_mapping button_context_tree_scroll_lr[] = { 88const struct button_mapping button_context_tree_scroll_lr[] = {
89 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, 89 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
@@ -101,7 +101,7 @@ const struct button_mapping button_context_tree_scroll_lr[] = {
101const struct button_mapping button_context_yesno[] = { 101const struct button_mapping button_context_yesno[] = {
102 { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE }, 102 { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE },
103 103
104 LAST_ITEM_IN_LIST 104 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
105}; 105};
106 106
107struct button_mapping button_context_bmark[] = { 107struct button_mapping button_context_bmark[] = {
@@ -124,7 +124,7 @@ const struct button_mapping button_context_pitchscreen[] = {
124 { ACTION_PS_RESET, BUTTON_MENU, BUTTON_NONE }, 124 { ACTION_PS_RESET, BUTTON_MENU, BUTTON_NONE },
125 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE }, 125 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE },
126 126
127 LAST_ITEM_IN_LIST 127 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
128}; /* button_context_quickscreen */ 128}; /* button_context_quickscreen */
129 129
130const struct button_mapping button_context_recscreen[] = { 130const struct button_mapping button_context_recscreen[] = {
@@ -134,7 +134,7 @@ const struct button_mapping button_context_recscreen[] = {
134 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, 134 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
135 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 135 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
136 136
137 LAST_ITEM_IN_LIST 137 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
138}; /* button_context_recscreen */ 138}; /* button_context_recscreen */
139 139
140const struct button_mapping* get_context_mapping( int context ) 140const struct button_mapping* get_context_mapping( int context )
diff --git a/apps/keymaps/keymap-player.c b/apps/keymaps/keymap-player.c
index 0681dc2ded..a3165b2498 100644
--- a/apps/keymaps/keymap-player.c
+++ b/apps/keymaps/keymap-player.c
@@ -69,19 +69,19 @@ static const struct button_mapping button_context_settings[] = {
69 { ACTION_SETTINGS_DEC, BUTTON_RIGHT, BUTTON_NONE }, 69 { ACTION_SETTINGS_DEC, BUTTON_RIGHT, BUTTON_NONE },
70 { ACTION_SETTINGS_DECREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 70 { ACTION_SETTINGS_DECREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
71 71
72 LAST_ITEM_IN_LIST 72 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
73}; 73};
74 74
75static const struct button_mapping button_context_tree[] = { 75static const struct button_mapping button_context_tree[] = {
76 { ACTION_TREE_WPS, BUTTON_ON, BUTTON_NONE }, 76 { ACTION_TREE_WPS, BUTTON_ON, BUTTON_NONE },
77 77
78 LAST_ITEM_IN_LIST 78 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
79}; /* button_context_listtree */ 79}; /* button_context_listtree */
80 80
81static const struct button_mapping button_context_yesno[] = { 81static const struct button_mapping button_context_yesno[] = {
82 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE }, 82 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE },
83 83
84 LAST_ITEM_IN_LIST 84 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
85}; /* button_context_settings_yesno */ 85}; /* button_context_settings_yesno */
86 86
87/***************************************************************************** 87/*****************************************************************************
@@ -94,7 +94,7 @@ static const struct button_mapping remote_button_context_standard[] = {
94 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE }, 94 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE },
95 { ACTION_STD_OK, BUTTON_RC_PLAY, BUTTON_NONE }, 95 { ACTION_STD_OK, BUTTON_RC_PLAY, BUTTON_NONE },
96 96
97 LAST_ITEM_IN_LIST 97 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
98}; 98};
99 99
100static const struct button_mapping remote_button_context_wps[] = { 100static const struct button_mapping remote_button_context_wps[] = {
@@ -106,7 +106,7 @@ static const struct button_mapping remote_button_context_wps[] = {
106 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 106 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
107 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, 107 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE },
108 108
109 LAST_ITEM_IN_LIST 109 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
110}; 110};
111 111
112 112
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c
index 3e6eda99fc..85c4213cf4 100644
--- a/apps/keymaps/keymap-recorder.c
+++ b/apps/keymaps/keymap-recorder.c
@@ -91,14 +91,14 @@ static const struct button_mapping button_context_settings[] = {
91 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, 91 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
92 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 92 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
93 93
94 LAST_ITEM_IN_LIST 94 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
95}; 95};
96 96
97static const struct button_mapping button_context_tree[] = { 97static const struct button_mapping button_context_tree[] = {
98 { ACTION_TREE_WPS, BUTTON_ON, BUTTON_NONE }, 98 { ACTION_TREE_WPS, BUTTON_ON, BUTTON_NONE },
99 { ACTION_TREE_STOP, BUTTON_OFF, BUTTON_NONE }, 99 { ACTION_TREE_STOP, BUTTON_OFF, BUTTON_NONE },
100 100
101 LAST_ITEM_IN_LIST 101 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
102}; /* button_context_listtree */ 102}; /* button_context_listtree */
103 103
104static const struct button_mapping button_context_tree_scroll_lr[] = { 104static const struct button_mapping button_context_tree_scroll_lr[] = {
@@ -116,7 +116,7 @@ static const struct button_mapping button_context_tree_scroll_lr[] = {
116static const struct button_mapping button_context_yesno[] = { 116static const struct button_mapping button_context_yesno[] = {
117 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE }, 117 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE },
118 118
119 LAST_ITEM_IN_LIST 119 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
120}; 120};
121static const struct button_mapping button_context_quickscreen[] = { 121static const struct button_mapping button_context_quickscreen[] = {
122 { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE }, 122 { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
@@ -129,7 +129,7 @@ static const struct button_mapping button_context_quickscreen[] = {
129 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 129 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
130 { ACTION_STD_CANCEL, BUTTON_PLAY, BUTTON_NONE }, 130 { ACTION_STD_CANCEL, BUTTON_PLAY, BUTTON_NONE },
131 131
132 LAST_ITEM_IN_LIST 132 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
133}; /* button_context_quickscreen */ 133}; /* button_context_quickscreen */
134 134
135static const struct button_mapping button_context_pitchscreen[] = { 135static const struct button_mapping button_context_pitchscreen[] = {
@@ -144,7 +144,7 @@ static const struct button_mapping button_context_pitchscreen[] = {
144 { ACTION_PS_RESET, BUTTON_ON, BUTTON_NONE }, 144 { ACTION_PS_RESET, BUTTON_ON, BUTTON_NONE },
145 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE }, 145 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE },
146 146
147 LAST_ITEM_IN_LIST 147 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
148}; /* button_context_pitchcreen */ 148}; /* button_context_pitchcreen */
149 149
150const struct button_mapping button_context_recscreen[] = { 150const struct button_mapping button_context_recscreen[] = {
@@ -156,7 +156,7 @@ const struct button_mapping button_context_recscreen[] = {
156 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, 156 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
157 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 157 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
158 158
159 LAST_ITEM_IN_LIST 159 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
160}; /* button_context_recscreen */ 160}; /* button_context_recscreen */
161 161
162/***************************************************************************** 162/*****************************************************************************
@@ -169,7 +169,7 @@ static const struct button_mapping remote_button_context_standard[] = {
169 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE }, 169 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE },
170 { ACTION_STD_OK, BUTTON_RC_PLAY, BUTTON_NONE }, 170 { ACTION_STD_OK, BUTTON_RC_PLAY, BUTTON_NONE },
171 171
172 LAST_ITEM_IN_LIST 172 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
173}; 173};
174 174
175static const struct button_mapping remote_button_context_wps[] = { 175static const struct button_mapping remote_button_context_wps[] = {
@@ -181,7 +181,7 @@ static const struct button_mapping remote_button_context_wps[] = {
181 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 181 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
182 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, 182 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE },
183 183
184 LAST_ITEM_IN_LIST 184 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
185}; 185};
186 186
187 187
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index e92baf4dbe..f7480d0d38 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -84,7 +84,7 @@ const struct button_mapping button_context_settings[] = {
84 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, 84 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
85 { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE }, 85 { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE },
86 86
87 LAST_ITEM_IN_LIST 87 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
88}; 88};
89 89
90const struct button_mapping button_context_tree[] = { 90const struct button_mapping button_context_tree[] = {
@@ -92,7 +92,7 @@ const struct button_mapping button_context_tree[] = {
92 { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 92 { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
93 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 93 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
94 94
95 LAST_ITEM_IN_LIST 95 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
96}; 96};
97 97
98const struct button_mapping button_context_tree_scroll_lr[] = { 98const struct button_mapping button_context_tree_scroll_lr[] = {
@@ -109,7 +109,7 @@ const struct button_mapping button_context_tree_scroll_lr[] = {
109 109
110const struct button_mapping button_context_yesno[] = { 110const struct button_mapping button_context_yesno[] = {
111 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE }, 111 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
112 LAST_ITEM_IN_LIST 112 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
113}; /* button_context_settings_yesno */ 113}; /* button_context_settings_yesno */
114 114
115const struct button_mapping button_context_quickscreen[] = { 115const struct button_mapping button_context_quickscreen[] = {
@@ -123,7 +123,7 @@ const struct button_mapping button_context_quickscreen[] = {
123 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 123 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
124 { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE }, 124 { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE },
125 125
126 LAST_ITEM_IN_LIST 126 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
127}; /* button_context_quickscreen */ 127}; /* button_context_quickscreen */
128 128
129const struct button_mapping button_context_settings_r_is_inc[] = { 129const struct button_mapping button_context_settings_r_is_inc[] = {
@@ -137,7 +137,7 @@ const struct button_mapping button_context_settings_r_is_inc[] = {
137 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 137 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
138 { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE }, 138 { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE },
139 139
140 LAST_ITEM_IN_LIST 140 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
141}; /* button_context_settingsgraphical */ 141}; /* button_context_settingsgraphical */
142 142
143const struct button_mapping button_context_pitchscreen[] = { 143const struct button_mapping button_context_pitchscreen[] = {
@@ -152,7 +152,7 @@ const struct button_mapping button_context_pitchscreen[] = {
152 { ACTION_PS_RESET, BUTTON_POWER, BUTTON_NONE }, 152 { ACTION_PS_RESET, BUTTON_POWER, BUTTON_NONE },
153 { ACTION_PS_EXIT, BUTTON_PLAY, BUTTON_NONE }, 153 { ACTION_PS_EXIT, BUTTON_PLAY, BUTTON_NONE },
154 154
155 LAST_ITEM_IN_LIST 155 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
156}; /* button_context_pitchscreen */ 156}; /* button_context_pitchscreen */
157 157
158 158
@@ -168,14 +168,14 @@ const struct button_mapping remote_button_context_standard[] = {
168 { ACTION_STD_MENU, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 168 { ACTION_STD_MENU, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
169 { ACTION_STD_QUICKSCREEN,BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, 169 { ACTION_STD_QUICKSCREEN,BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
170 170
171 LAST_ITEM_IN_LIST 171 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
172}; 172};
173 173
174const struct button_mapping remote_button_context_tree[] = { 174const struct button_mapping remote_button_context_tree[] = {
175 { ACTION_TREE_WPS, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, 175 { ACTION_TREE_WPS, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
176 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 176 { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
177 177
178 LAST_ITEM_IN_LIST 178 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
179}; 179};
180 180
181const struct button_mapping remote_button_context_wps[] = { 181const struct button_mapping remote_button_context_wps[] = {
@@ -199,7 +199,7 @@ const struct button_mapping remote_button_context_wps[] = {
199 { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, 199 { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
200 200
201 201
202 LAST_ITEM_IN_LIST 202 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
203}; 203};
204 204
205const struct button_mapping button_context_recscreen[] = { 205const struct button_mapping button_context_recscreen[] = {
@@ -212,7 +212,7 @@ const struct button_mapping button_context_recscreen[] = {
212 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, 212 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
213 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 213 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
214 214
215 LAST_ITEM_IN_LIST 215 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
216}; /* button_context_recscreen */ 216}; /* button_context_recscreen */
217 217
218 218