summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/action.h10
-rw-r--r--apps/gui/list.c16
-rw-r--r--apps/keymaps/keymap-av300.c2
-rw-r--r--apps/keymaps/keymap-e200.c8
-rw-r--r--apps/keymaps/keymap-gigabeat.c19
-rw-r--r--apps/keymaps/keymap-h10.c9
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c19
-rw-r--r--apps/keymaps/keymap-ipod.c9
-rw-r--r--apps/keymaps/keymap-ondio.c9
-rw-r--r--apps/keymaps/keymap-player.c9
-rw-r--r--apps/keymaps/keymap-recorder.c9
-rw-r--r--apps/keymaps/keymap-x5.c10
-rw-r--r--apps/menu.c4
-rw-r--r--firmware/export/config-gigabeat.h3
14 files changed, 46 insertions, 90 deletions
diff --git a/apps/action.h b/apps/action.h
index 7f476a8a88..29023720cc 100644
--- a/apps/action.h
+++ b/apps/action.h
@@ -44,7 +44,7 @@ enum {
44 CONTEXT_WPS = 1, 44 CONTEXT_WPS = 1,
45 CONTEXT_TREE = 2, 45 CONTEXT_TREE = 2,
46 CONTEXT_RECORD = 3, 46 CONTEXT_RECORD = 3,
47 CONTEXT_MAINMENU = 4, 47 CONTEXT_MAINMENU = 4, /* uses CONTEXT_TREE and ACTION_TREE_* */
48 CONTEXT_ID3DB = 5, 48 CONTEXT_ID3DB = 5,
49 /* Add new contexts here, no need to explicitly define a value for them */ 49 /* Add new contexts here, no need to explicitly define a value for them */
50 CONTEXT_LIST, 50 CONTEXT_LIST,
@@ -123,6 +123,10 @@ enum {
123 /* list and tree page up/down */ 123 /* list and tree page up/down */
124 ACTION_LISTTREE_PGUP,/* optional */ 124 ACTION_LISTTREE_PGUP,/* optional */
125 ACTION_LISTTREE_PGDOWN,/* optional */ 125 ACTION_LISTTREE_PGDOWN,/* optional */
126#ifdef HAVE_VOLUME_IN_LIST
127 ACTION_LIST_VOLUP,
128 ACTION_LIST_VOLDOWN,
129#endif
126 130
127 /* tree */ 131 /* tree */
128 ACTION_TREE_ROOT_INIT, 132 ACTION_TREE_ROOT_INIT,
@@ -152,13 +156,13 @@ enum {
152 ACTION_REC_F3, 156 ACTION_REC_F3,
153 157
154 /* main menu */ 158 /* main menu */
159 /* These are not strictly actions, but must be here
160 so they dont conflict with real actions in the menu code */
155 ACTION_REQUEST_MENUITEM, 161 ACTION_REQUEST_MENUITEM,
156 ACTION_EXIT_MENUITEM, 162 ACTION_EXIT_MENUITEM,
157 ACTION_EXIT_AFTER_THIS_MENUITEM, /* if a menu returns this the menu will exit 163 ACTION_EXIT_AFTER_THIS_MENUITEM, /* if a menu returns this the menu will exit
158 once the subitem returns */ 164 once the subitem returns */
159 ACTION_ENTER_MENUITEM, 165 ACTION_ENTER_MENUITEM,
160 ACTION_MENU_WPS,
161 ACTION_MENU_STOP,
162 166
163 /* id3db */ 167 /* id3db */
164 168
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 7f25903cae..52cbee2128 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -33,6 +33,7 @@
33#include "statusbar.h" 33#include "statusbar.h"
34#include "textarea.h" 34#include "textarea.h"
35#include "lang.h" 35#include "lang.h"
36#include "sound.h"
36 37
37#ifdef HAVE_LCD_CHARCELLS 38#ifdef HAVE_LCD_CHARCELLS
38#define SCROLL_LIMIT 1 39#define SCROLL_LIMIT 1
@@ -924,6 +925,21 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists,
924 925
925 switch(button) 926 switch(button)
926 { 927 {
928#ifdef HAVE_VOLUME_IN_LIST
929 case ACTION_LIST_VOLUP:
930 global_settings.volume += 2;
931 /* up two because the falthrough brings it down one */
932 case ACTION_LIST_VOLDOWN:
933 global_settings.volume--;
934
935 if (global_settings.volume < sound_min(SOUND_VOLUME))
936 global_settings.volume = sound_min(SOUND_VOLUME);
937 if (global_settings.volume > sound_max(SOUND_VOLUME))
938 global_settings.volume = sound_max(SOUND_VOLUME);
939 sound_set_volume(global_settings.volume);
940 settings_save();
941 return button;
942#endif
927 case ACTION_STD_PREV: 943 case ACTION_STD_PREV:
928 case ACTION_STD_PREVREPEAT: 944 case ACTION_STD_PREVREPEAT:
929 gui_synclist_select_previous(lists); 945 gui_synclist_select_previous(lists);
diff --git a/apps/keymaps/keymap-av300.c b/apps/keymaps/keymap-av300.c
index 22e1fcc9a1..f390b84b92 100644
--- a/apps/keymaps/keymap-av300.c
+++ b/apps/keymaps/keymap-av300.c
@@ -236,6 +236,7 @@ const struct button_mapping* get_context_mapping( int context )
236 case CONTEXT_BOOKMARKSCREEN: 236 case CONTEXT_BOOKMARKSCREEN:
237 return button_context_bmark; 237 return button_context_bmark;
238 case CONTEXT_TREE: 238 case CONTEXT_TREE:
239 case CONTEXT_MAINMENU:
239 if (global_settings.hold_lr_for_scroll_in_list) 240 if (global_settings.hold_lr_for_scroll_in_list)
240 return button_context_tree_scroll_lr; 241 return button_context_tree_scroll_lr;
241 /* else fall through to CUSTOM|1 */ 242 /* else fall through to CUSTOM|1 */
@@ -254,7 +255,6 @@ const struct button_mapping* get_context_mapping( int context )
254 255
255 case CONTEXT_STD: 256 case CONTEXT_STD:
256 case CONTEXT_LIST: 257 case CONTEXT_LIST:
257 case CONTEXT_MAINMENU:
258 default: 258 default:
259 return button_context_standard; 259 return button_context_standard;
260 } 260 }
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c
index b67a7a415f..6bbad1a86c 100644
--- a/apps/keymaps/keymap-e200.c
+++ b/apps/keymaps/keymap-e200.c
@@ -48,11 +48,6 @@ static const struct button_mapping button_context_standard[] = {
48 LAST_ITEM_IN_LIST 48 LAST_ITEM_IN_LIST
49}; /* button_context_standard */ 49}; /* button_context_standard */
50 50
51static const struct button_mapping button_context_menu[] = {
52 { ACTION_MENU_WPS, BUTTON_UP, BUTTON_NONE },
53
54 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
55}; /* button_context_menu */
56 51
57static const struct button_mapping button_context_wps[] = { 52static const struct button_mapping button_context_wps[] = {
58 { ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, 53 { ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
@@ -237,8 +232,6 @@ const struct button_mapping* get_context_mapping(int context)
237 { 232 {
238 case CONTEXT_STD: 233 case CONTEXT_STD:
239 return button_context_standard; 234 return button_context_standard;
240 case CONTEXT_MAINMENU:
241 return button_context_menu;
242 235
243 case CONTEXT_WPS: 236 case CONTEXT_WPS:
244 return button_context_wps; 237 return button_context_wps;
@@ -246,6 +239,7 @@ const struct button_mapping* get_context_mapping(int context)
246 case CONTEXT_LIST: 239 case CONTEXT_LIST:
247 return button_context_list; 240 return button_context_list;
248 case CONTEXT_TREE: 241 case CONTEXT_TREE:
242 case CONTEXT_MAINMENU:
249 if (global_settings.hold_lr_for_scroll_in_list) 243 if (global_settings.hold_lr_for_scroll_in_list)
250 return button_context_listtree_scroll_without_combo; 244 return button_context_listtree_scroll_without_combo;
251 else 245 else
diff --git a/apps/keymaps/keymap-gigabeat.c b/apps/keymaps/keymap-gigabeat.c
index 90fe30d1cf..56fb8de24f 100644
--- a/apps/keymaps/keymap-gigabeat.c
+++ b/apps/keymaps/keymap-gigabeat.c
@@ -104,6 +104,13 @@ static const struct button_mapping button_context_list[] = {
104 { ACTION_LISTTREE_PGDOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_POWER }, 104 { ACTION_LISTTREE_PGDOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_POWER },
105 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_POWER|BUTTON_DOWN }, 105 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_POWER|BUTTON_DOWN },
106 { ACTION_LISTTREE_PGDOWN, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 106 { ACTION_LISTTREE_PGDOWN, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
107#ifdef HAVE_VOLUME_IN_LIST
108 { ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
109 { ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
110 { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
111 { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
112#endif
113
107 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 114 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
108}; /* button_context_list */ 115}; /* button_context_list */
109 116
@@ -116,15 +123,6 @@ static const struct button_mapping button_context_tree[] = {
116 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) 123 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
117}; /* button_context_tree */ 124}; /* button_context_tree */
118 125
119static const struct button_mapping button_context_menu[] = {
120 { ACTION_MENU_WPS, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
121 { ACTION_MENU_STOP, BUTTON_A, BUTTON_NONE },
122 { ACTION_MENU_STOP, BUTTON_A|BUTTON_REL, BUTTON_A },
123 { ACTION_MENU_STOP, BUTTON_A|BUTTON_REPEAT, BUTTON_NONE },
124
125 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
126}; /* button_context_tree */
127
128static const struct button_mapping button_context_listtree_scroll_with_combo[] = { 126static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
129 { ACTION_NONE, BUTTON_POWER, BUTTON_NONE }, 127 { ACTION_NONE, BUTTON_POWER, BUTTON_NONE },
130 { ACTION_TREE_PGLEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER }, 128 { ACTION_TREE_PGLEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER },
@@ -271,13 +269,12 @@ const struct button_mapping* get_context_mapping(int context)
271 { 269 {
272 case CONTEXT_STD: 270 case CONTEXT_STD:
273 return button_context_standard; 271 return button_context_standard;
274 case CONTEXT_MAINMENU:
275 return button_context_menu;
276 case CONTEXT_WPS: 272 case CONTEXT_WPS:
277 return button_context_wps; 273 return button_context_wps;
278 274
279 case CONTEXT_LIST: 275 case CONTEXT_LIST:
280 return button_context_list; 276 return button_context_list;
277 case CONTEXT_MAINMENU:
281 case CONTEXT_TREE: 278 case CONTEXT_TREE:
282 if (global_settings.hold_lr_for_scroll_in_list) 279 if (global_settings.hold_lr_for_scroll_in_list)
283 return button_context_listtree_scroll_without_combo; 280 return button_context_listtree_scroll_without_combo;
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c
index c0e5614fcd..be3dc74b04 100644
--- a/apps/keymaps/keymap-h10.c
+++ b/apps/keymaps/keymap-h10.c
@@ -62,12 +62,6 @@ static const struct button_mapping remote_button_context_standard[] = {
62 LAST_ITEM_IN_LIST 62 LAST_ITEM_IN_LIST
63}; /* remote_button_context_standard */ 63}; /* remote_button_context_standard */
64 64
65static const struct button_mapping button_context_menu[] = {
66 { ACTION_MENU_WPS, BUTTON_PLAY, BUTTON_NONE },
67
68 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
69}; /* button_context_menu */
70
71static const struct button_mapping button_context_wps[] = { 65static const struct button_mapping button_context_wps[] = {
72 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 66 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
73 { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT,BUTTON_PLAY }, 67 { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT,BUTTON_PLAY },
@@ -358,8 +352,6 @@ const struct button_mapping* get_context_mapping(int context)
358 { 352 {
359 case CONTEXT_STD: 353 case CONTEXT_STD:
360 return button_context_standard; 354 return button_context_standard;
361 case CONTEXT_MAINMENU:
362 return button_context_menu;
363 355
364 case CONTEXT_WPS: 356 case CONTEXT_WPS:
365 return button_context_wps; 357 return button_context_wps;
@@ -367,6 +359,7 @@ const struct button_mapping* get_context_mapping(int context)
367 case CONTEXT_LIST: 359 case CONTEXT_LIST:
368 return button_context_list; 360 return button_context_list;
369 case CONTEXT_TREE: 361 case CONTEXT_TREE:
362 case CONTEXT_MAINMENU:
370 if (global_settings.hold_lr_for_scroll_in_list) 363 if (global_settings.hold_lr_for_scroll_in_list)
371 return button_context_listtree_scroll_without_combo; 364 return button_context_listtree_scroll_without_combo;
372 else 365 else
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index 2640e8c336..b31ce6e6db 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -65,13 +65,6 @@ static const struct button_mapping button_context_standard[] = {
65 LAST_ITEM_IN_LIST 65 LAST_ITEM_IN_LIST
66}; /* button_context_standard */ 66}; /* button_context_standard */
67 67
68static const struct button_mapping button_context_menu[] = {
69 { ACTION_MENU_WPS, BUTTON_ON, BUTTON_NONE },
70 { ACTION_MENU_STOP, BUTTON_OFF, BUTTON_NONE },
71
72 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
73}; /* button_context_menu */
74
75static const struct button_mapping button_context_wps[] = { 68static const struct button_mapping button_context_wps[] = {
76 { ACTION_WPS_PLAY, BUTTON_ON|BUTTON_REL, BUTTON_ON }, 69 { ACTION_WPS_PLAY, BUTTON_ON|BUTTON_REL, BUTTON_ON },
77 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, 70 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
@@ -721,17 +714,11 @@ static const struct button_mapping button_context_radio_h300lcdremote[] = {
721 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 714 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
722}; 715};
723 716
724static const struct button_mapping button_context_menu_remote[] = {
725 { ACTION_MENU_WPS, BUTTON_RC_ON, BUTTON_NONE },
726
727 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST|CONTEXT_REMOTE)
728};
729 717
730/* the actual used tables */ 718/* the actual used tables */
731static const struct button_mapping 719static const struct button_mapping
732 *remote_btn_ctxt_std = 0, 720 *remote_btn_ctxt_std = 0,
733 *remote_btn_ctxt_wps = 0, 721 *remote_btn_ctxt_wps = 0,
734 *remote_btn_ctxt_menu = button_context_menu_remote,
735 *remote_btn_ctxt_list = 0, 722 *remote_btn_ctxt_list = 0,
736 *remote_btn_ctxt_tree = 0, 723 *remote_btn_ctxt_tree = 0,
737 *remote_btn_ctxt_listtree_scroll_w_cmb = 0, 724 *remote_btn_ctxt_listtree_scroll_w_cmb = 0,
@@ -880,8 +867,6 @@ static const struct button_mapping* get_context_mapping_remote(int context)
880 { 867 {
881 case CONTEXT_STD: 868 case CONTEXT_STD:
882 return remote_btn_ctxt_std; 869 return remote_btn_ctxt_std;
883 case CONTEXT_MAINMENU:
884 return remote_btn_ctxt_menu;
885 case CONTEXT_WPS: /* common for all remotes */ 870 case CONTEXT_WPS: /* common for all remotes */
886 return button_context_wps_remotescommon; 871 return button_context_wps_remotescommon;
887 872
@@ -891,6 +876,7 @@ static const struct button_mapping* get_context_mapping_remote(int context)
891 case CONTEXT_LIST: 876 case CONTEXT_LIST:
892 return remote_btn_ctxt_list; 877 return remote_btn_ctxt_list;
893 case CONTEXT_TREE: 878 case CONTEXT_TREE:
879 case CONTEXT_MAINMENU:
894 if (global_settings.hold_lr_for_scroll_in_list) 880 if (global_settings.hold_lr_for_scroll_in_list)
895 return remote_btn_ctxt_listtree_scroll_wo_cmb; 881 return remote_btn_ctxt_listtree_scroll_wo_cmb;
896 else 882 else
@@ -929,14 +915,13 @@ const struct button_mapping* get_context_mapping(int context)
929 { 915 {
930 case CONTEXT_STD: 916 case CONTEXT_STD:
931 return button_context_standard; 917 return button_context_standard;
932 case CONTEXT_MAINMENU:
933 return button_context_menu;
934 case CONTEXT_WPS: 918 case CONTEXT_WPS:
935 return button_context_wps; 919 return button_context_wps;
936 920
937 case CONTEXT_LIST: 921 case CONTEXT_LIST:
938 return button_context_list; 922 return button_context_list;
939 case CONTEXT_TREE: 923 case CONTEXT_TREE:
924 case CONTEXT_MAINMENU:
940 if (global_settings.hold_lr_for_scroll_in_list) 925 if (global_settings.hold_lr_for_scroll_in_list)
941 return button_context_listtree_scroll_without_combo; 926 return button_context_listtree_scroll_without_combo;
942 else 927 else
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c
index 8b08f0cbd4..4e0fc1b862 100644
--- a/apps/keymaps/keymap-ipod.c
+++ b/apps/keymaps/keymap-ipod.c
@@ -60,12 +60,6 @@ static const struct button_mapping button_context_tree[] = {
60 60
61 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 61 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
62}; /* button_context_tree */ 62}; /* button_context_tree */
63static const struct button_mapping button_context_menu[] = {
64 { ACTION_MENU_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
65 { ACTION_MENU_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
66
67 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
68}; /* button_context_menu */
69 63
70static const struct button_mapping button_context_tree_scroll_lr[] = { 64static const struct button_mapping button_context_tree_scroll_lr[] = {
71 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, 65 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
@@ -190,6 +184,7 @@ const struct button_mapping* get_context_mapping(int context)
190 return button_context_wps; 184 return button_context_wps;
191 185
192 case CONTEXT_TREE: 186 case CONTEXT_TREE:
187 case CONTEXT_MAINMENU:
193 if (global_settings.hold_lr_for_scroll_in_list) 188 if (global_settings.hold_lr_for_scroll_in_list)
194 return button_context_tree_scroll_lr; 189 return button_context_tree_scroll_lr;
195 /* else fall through to CUSTOM|CONTEXT_TREE */ 190 /* else fall through to CUSTOM|CONTEXT_TREE */
@@ -198,8 +193,6 @@ const struct button_mapping* get_context_mapping(int context)
198 193
199 case CONTEXT_LIST: 194 case CONTEXT_LIST:
200 return button_context_standard; 195 return button_context_standard;
201 case CONTEXT_MAINMENU:
202 return button_context_menu;
203 196
204 case CONTEXT_SETTINGS_EQ: 197 case CONTEXT_SETTINGS_EQ:
205 case CONTEXT_SETTINGS_COLOURCHOOSER: 198 case CONTEXT_SETTINGS_COLOURCHOOSER:
diff --git a/apps/keymaps/keymap-ondio.c b/apps/keymaps/keymap-ondio.c
index 17b7fe4aba..506444e094 100644
--- a/apps/keymaps/keymap-ondio.c
+++ b/apps/keymaps/keymap-ondio.c
@@ -88,12 +88,6 @@ static const struct button_mapping button_context_tree[] = {
88 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 88 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
89}; /* button_context_listtree */ 89}; /* button_context_listtree */
90 90
91static const struct button_mapping button_context_menu[] = {
92 { ACTION_MENU_WPS, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
93
94 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
95}; /* button_context_menu */
96
97static const struct button_mapping button_context_tree_scroll_lr[] = { 91static const struct button_mapping button_context_tree_scroll_lr[] = {
98 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, 92 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
99 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, 93 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
@@ -205,6 +199,7 @@ const struct button_mapping* get_context_mapping( int context )
205 case CONTEXT_PITCHSCREEN: 199 case CONTEXT_PITCHSCREEN:
206 return button_context_pitchscreen; 200 return button_context_pitchscreen;
207 case CONTEXT_TREE: 201 case CONTEXT_TREE:
202 case CONTEXT_MAINMENU:
208 if (global_settings.hold_lr_for_scroll_in_list) 203 if (global_settings.hold_lr_for_scroll_in_list)
209 return button_context_tree_scroll_lr; 204 return button_context_tree_scroll_lr;
210 /* else fall through to CUSTOM|CONTEXT_TREE */ 205 /* else fall through to CUSTOM|CONTEXT_TREE */
@@ -218,8 +213,6 @@ const struct button_mapping* get_context_mapping( int context )
218 case CONTEXT_FM: 213 case CONTEXT_FM:
219 return button_context_radio; 214 return button_context_radio;
220#endif 215#endif
221 case CONTEXT_MAINMENU:
222 return button_context_menu;
223 case CONTEXT_LIST: 216 case CONTEXT_LIST:
224 default: 217 default:
225 return button_context_standard; 218 return button_context_standard;
diff --git a/apps/keymaps/keymap-player.c b/apps/keymaps/keymap-player.c
index af28bc9e48..1c0536d242 100644
--- a/apps/keymaps/keymap-player.c
+++ b/apps/keymaps/keymap-player.c
@@ -79,12 +79,6 @@ static const struct button_mapping button_context_tree[] = {
79 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 79 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
80}; /* button_context_listtree */ 80}; /* button_context_listtree */
81 81
82static const struct button_mapping button_context_menu[] = {
83 { ACTION_MENU_WPS, BUTTON_ON, BUTTON_NONE },
84
85 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
86}; /* button_context_menu */
87
88static const struct button_mapping button_context_yesno[] = { 82static const struct button_mapping button_context_yesno[] = {
89 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE }, 83 { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE },
90 84
@@ -157,11 +151,10 @@ const struct button_mapping* get_context_mapping( int context )
157 return button_context_yesno; 151 return button_context_yesno;
158 152
159 case CONTEXT_TREE: 153 case CONTEXT_TREE:
154 case CONTEXT_MAINMENU:
160 return button_context_tree; 155 return button_context_tree;
161 case CONTEXT_BOOKMARKSCREEN: 156 case CONTEXT_BOOKMARKSCREEN:
162 return button_context_bmark; 157 return button_context_bmark;
163 case CONTEXT_MAINMENU:
164 return button_context_menu;
165 case CONTEXT_STD: 158 case CONTEXT_STD:
166 case CONTEXT_LIST: 159 case CONTEXT_LIST:
167 default: 160 default:
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c
index fc781afa46..6f9aff635a 100644
--- a/apps/keymaps/keymap-recorder.c
+++ b/apps/keymaps/keymap-recorder.c
@@ -112,12 +112,6 @@ static const struct button_mapping button_context_tree[] = {
112 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 112 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
113}; /* button_context_listtree */ 113}; /* button_context_listtree */
114 114
115static const struct button_mapping button_context_menu[] = {
116 { ACTION_MENU_WPS, BUTTON_ON|BUTTON_REL, BUTTON_ON },
117 { ACTION_MENU_STOP, BUTTON_OFF, BUTTON_NONE },
118 { ACTION_NONE, BUTTON_ON, BUTTON_NONE },
119 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
120}; /* button_context_listtree */
121 115
122static const struct button_mapping button_context_tree_scroll_lr[] = { 116static const struct button_mapping button_context_tree_scroll_lr[] = {
123 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, 117 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
@@ -290,6 +284,7 @@ const struct button_mapping* get_context_mapping( int context )
290 case CONTEXT_BOOKMARKSCREEN: 284 case CONTEXT_BOOKMARKSCREEN:
291 return button_context_bmark; 285 return button_context_bmark;
292 case CONTEXT_TREE: 286 case CONTEXT_TREE:
287 case CONTEXT_MAINMENU:
293 if (global_settings.hold_lr_for_scroll_in_list) 288 if (global_settings.hold_lr_for_scroll_in_list)
294 return button_context_tree_scroll_lr; 289 return button_context_tree_scroll_lr;
295 /* else fall through to CUSTOM|1 */ 290 /* else fall through to CUSTOM|1 */
@@ -306,8 +301,6 @@ const struct button_mapping* get_context_mapping( int context )
306 case CONTEXT_FM: 301 case CONTEXT_FM:
307 return button_context_radio; 302 return button_context_radio;
308 303
309 case CONTEXT_MAINMENU:
310 return button_context_menu;
311 case CONTEXT_STD: 304 case CONTEXT_STD:
312 case CONTEXT_LIST: 305 case CONTEXT_LIST:
313 default: 306 default:
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index 1c88244053..b637e1ddd1 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -131,13 +131,6 @@ static const struct button_mapping remote_button_context_keyboard[] = {
131 LAST_ITEM_IN_LIST 131 LAST_ITEM_IN_LIST
132}; /* button_context_keyboard_h100remote */ 132}; /* button_context_keyboard_h100remote */
133 133
134/** Main Menu Context Menu **/
135static const struct button_mapping button_context_mainmenu[] = {
136 { ACTION_NONE, BUTTON_POWER, BUTTON_NONE },
137 { ACTION_MENU_WPS, BUTTON_PLAY, BUTTON_NONE },
138 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
139}; /* button_context_mainmenu */
140
141static const struct button_mapping remote_button_context_mainmenu[] = { 134static const struct button_mapping remote_button_context_mainmenu[] = {
142 { ACTION_STD_CANCEL, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 135 { ACTION_STD_CANCEL, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
143 { ACTION_STD_OK, BUTTON_RC_VOL_UP, BUTTON_NONE }, 136 { ACTION_STD_OK, BUTTON_RC_VOL_UP, BUTTON_NONE },
@@ -412,8 +405,6 @@ const struct button_mapping* get_context_mapping( int context )
412 case CONTEXT_KEYBOARD: 405 case CONTEXT_KEYBOARD:
413 return button_context_keyboard; 406 return button_context_keyboard;
414 407
415 case CONTEXT_MAINMENU:
416 return button_context_mainmenu;
417 408
418 case CONTEXT_PITCHSCREEN: 409 case CONTEXT_PITCHSCREEN:
419 return button_context_pitchscreen; 410 return button_context_pitchscreen;
@@ -435,6 +426,7 @@ const struct button_mapping* get_context_mapping( int context )
435 return button_context_settings_time; 426 return button_context_settings_time;
436 427
437 case CONTEXT_TREE: 428 case CONTEXT_TREE:
429 case CONTEXT_MAINMENU:
438 if (global_settings.hold_lr_for_scroll_in_list) 430 if (global_settings.hold_lr_for_scroll_in_list)
439 return button_context_tree_scroll_lr; 431 return button_context_tree_scroll_lr;
440 /* else fall through to CONTEXT_TREE|CONTEXT_CUSTOM */ 432 /* else fall through to CONTEXT_TREE|CONTEXT_CUSTOM */
diff --git a/apps/menu.c b/apps/menu.c
index 5722d1fae6..b1ba9ea0e0 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -468,12 +468,12 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
468 { 468 {
469 talk_menu_item(menu, &lists); 469 talk_menu_item(menu, &lists);
470 } 470 }
471 else if (action == ACTION_MENU_WPS) 471 else if (action == ACTION_TREE_WPS)
472 { 472 {
473 ret = GO_TO_PREVIOUS_MUSIC; 473 ret = GO_TO_PREVIOUS_MUSIC;
474 done = true; 474 done = true;
475 } 475 }
476 else if (action == ACTION_MENU_STOP) 476 else if (action == ACTION_TREE_STOP)
477 { 477 {
478 if (audio_status() && !global_settings.party_mode) 478 if (audio_status() && !global_settings.party_mode)
479 { 479 {
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
index fd97264707..588c92df6d 100644
--- a/firmware/export/config-gigabeat.h
+++ b/firmware/export/config-gigabeat.h
@@ -23,6 +23,9 @@
23/* define this if you would like tagcache to build on this target */ 23/* define this if you would like tagcache to build on this target */
24#define HAVE_TAGCACHE 24#define HAVE_TAGCACHE
25 25
26/* define this if the target has volume keys which can be used in the lists */
27#define HAVE_VOLUME_IN_LIST
28
26/* LCD dimensions */ 29/* LCD dimensions */
27#define LCD_WIDTH 240 30#define LCD_WIDTH 240
28#define LCD_HEIGHT 320 31#define LCD_HEIGHT 320