summaryrefslogtreecommitdiff
path: root/apps/menus
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menus')
-rw-r--r--apps/menus/eq_menu.c2
-rw-r--r--apps/menus/exported_menus.h8
-rw-r--r--apps/menus/main_menu.c63
-rw-r--r--apps/menus/playback_menu.c5
-rw-r--r--apps/menus/playlist_menu.c8
-rw-r--r--apps/menus/recording_menu.c6
-rw-r--r--apps/menus/settings_menu.c5
-rw-r--r--apps/menus/sound_menu.c2
8 files changed, 22 insertions, 77 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index c66e5a20c0..25ab170169 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -187,7 +187,7 @@ int do_center_band_menu(void* param)
187 menu.flags = MT_MENU|(3<<MENU_COUNT_SHIFT)|MENU_HAS_DESC; 187 menu.flags = MT_MENU|(3<<MENU_COUNT_SHIFT)|MENU_HAS_DESC;
188 menu.submenus = band_items[band-1]; 188 menu.submenus = band_items[band-1];
189 menu.callback_and_desc = &cb_and_desc; 189 menu.callback_and_desc = &cb_and_desc;
190 do_menu(&menu); 190 do_menu(&menu, NULL);
191 return 0; 191 return 0;
192} 192}
193MAKE_MENU(band_0_menu, ID2P(LANG_EQUALIZER_BAND_LOW_SHELF), NULL, 193MAKE_MENU(band_0_menu, ID2P(LANG_EQUALIZER_BAND_LOW_SHELF), NULL,
diff --git a/apps/menus/exported_menus.h b/apps/menus/exported_menus.h
index f6b6f5a708..a4f8512a73 100644
--- a/apps/menus/exported_menus.h
+++ b/apps/menus/exported_menus.h
@@ -28,12 +28,14 @@ extern const struct menu_item_ex
28 display_menu, /* display_menu.c */ 28 display_menu, /* display_menu.c */
29 playback_menu_item, /* playback_menu.c */ 29 playback_menu_item, /* playback_menu.c */
30#ifdef HAVE_RECORDING 30#ifdef HAVE_RECORDING
31 recording_settings_menu, /* recording_menu.c */ 31 recording_settings, /* recording_menu.c */
32#endif 32#endif
33 sound_settings, /* sound_menu.c */ 33 sound_settings, /* sound_menu.c */
34 settings_menu_item, /* settings_menu.c */ 34 settings_menu_item, /* settings_menu.c */
35 playlist_menu_item, /* playlist_menu.c */ 35 playlist_settings, /* playlist_menu.c */
36 equalizer_menu; /* eq_menu.c */ 36 playlist_options, /* playlist_menu.c */
37 equalizer_menu, /* eq_menu.c */
38 info_menu; /* info_menu.c */
37 39
38#ifdef HAVE_WM8758 40#ifdef HAVE_WM8758
39extern const struct menu_item_ex hw_eq_menu; /* eq_menu.c */ 41extern const struct menu_item_ex hw_eq_menu; /* eq_menu.c */
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c
index b367fded35..d986436311 100644
--- a/apps/menus/main_menu.c
+++ b/apps/menus/main_menu.c
@@ -30,9 +30,6 @@
30#include "settings_menu.h" 30#include "settings_menu.h"
31#include "exported_menus.h" 31#include "exported_menus.h"
32#include "tree.h" 32#include "tree.h"
33#if CONFIG_TUNER
34#include "radio.h"
35#endif
36#ifdef HAVE_RECORDING 33#ifdef HAVE_RECORDING
37#include "recording.h" 34#include "recording.h"
38#endif 35#endif
@@ -49,9 +46,6 @@
49#include "logfdisp.h" 46#include "logfdisp.h"
50#endif 47#endif
51 48
52/* lazy coders can use this function if the needed callback
53 is just to say if the item is shown or not */
54int dynamicitem_callback(int action,const struct menu_item_ex *this_item);
55 49
56 50
57struct browse_folder_info { 51struct browse_folder_info {
@@ -59,12 +53,11 @@ struct browse_folder_info {
59 int show_options; 53 int show_options;
60}; 54};
61static struct browse_folder_info theme = {THEME_DIR, SHOW_CFG}; 55static struct browse_folder_info theme = {THEME_DIR, SHOW_CFG};
62static struct browse_folder_info rocks = {PLUGIN_DIR, SHOW_PLUGINS};
63static struct browse_folder_info config = {ROCKBOX_DIR, SHOW_CFG}; 56static struct browse_folder_info config = {ROCKBOX_DIR, SHOW_CFG};
64static int browse_folder(void *param) 57static int browse_folder(void *param)
65{ 58{
66 const struct browse_folder_info *info = 59 const struct browse_folder_info *info =
67 (const struct browse_folder_info*)param; 60 (const struct browse_folder_info*)param;
68 return rockbox_browse(info->dir, info->show_options); 61 return rockbox_browse(info->dir, info->show_options);
69} 62}
70 63
@@ -384,26 +377,6 @@ MAKE_MENU(info_menu, ID2P(LANG_INFO), 0, bitmap_icons_6x8[Icon_Questionmark],
384 377
385MENUITEM_FUNCTION_WPARAM(browse_themes, ID2P(LANG_CUSTOM_THEME), 378MENUITEM_FUNCTION_WPARAM(browse_themes, ID2P(LANG_CUSTOM_THEME),
386 browse_folder, (void*)&theme, NULL, bitmap_icons_6x8[Icon_Folder]); 379 browse_folder, (void*)&theme, NULL, bitmap_icons_6x8[Icon_Folder]);
387MENUITEM_FUNCTION_WPARAM(browse_plugins, ID2P(LANG_PLUGINS),
388 browse_folder, (void*)&rocks, NULL, bitmap_icons_6x8[Icon_Plugin]);
389
390#if CONFIG_TUNER
391MENUITEM_FUNCTION(load_radio_screen, ID2P(LANG_FM_RADIO),
392 (menu_function)radio_screen, dynamicitem_callback,
393 bitmap_icons_6x8[Icon_Radio_screen]);
394#endif
395
396MENUITEM_FUNCTION(mrb_bookmarks, ID2P(LANG_BOOKMARK_MENU_RECENT_BOOKMARKS),
397 (menu_function)bookmark_mrb_load, NULL, bitmap_icons_6x8[Icon_Bookmark]);
398
399#ifdef HAVE_LCD_CHARCELLS
400static int do_shutdown(void)
401{
402 sys_poweroff();
403 return 0;
404}
405MENUITEM_FUNCTION(do_shutdown_item, ID2P(LANG_SHUTDOWN), do_shutdown, NULL, NOICON);
406#endif
407 380
408#ifdef HAVE_LCD_CHARCELLS 381#ifdef HAVE_LCD_CHARCELLS
409int mainmenu_callback(int action,const struct menu_item_ex *this_item) 382int mainmenu_callback(int action,const struct menu_item_ex *this_item)
@@ -423,42 +396,14 @@ int mainmenu_callback(int action,const struct menu_item_ex *this_item)
423#else 396#else
424#define mainmenu_callback NULL 397#define mainmenu_callback NULL
425#endif 398#endif
426/* NOTE: This title will be translatable once we decide what to call this menu 399MAKE_MENU(main_menu_, ID2P(LANG_SETTINGS_MENU), mainmenu_callback,
427 when the root menu comes in... hopefully in the next few days */
428MAKE_MENU(main_menu_, "Rockbox Main Menu", mainmenu_callback,
429 bitmap_icons_6x8[Icon_Submenu_Entered], 400 bitmap_icons_6x8[Icon_Submenu_Entered],
430 &mrb_bookmarks, &sound_settings, 401 &sound_settings,
431 &settings_menu_item, &manage_settings, &browse_themes, 402 &settings_menu_item, &manage_settings, &browse_themes,
432#if CONFIG_TUNER
433 &load_radio_screen,
434#endif
435#ifdef HAVE_RECORDING 403#ifdef HAVE_RECORDING
436 &recording_settings_menu, 404 &recording_settings,
437#endif
438 &playlist_menu_item, &browse_plugins, &info_menu
439#ifdef HAVE_LCD_CHARCELLS
440 ,&do_shutdown_item
441#endif 405#endif
442 ); 406 );
443/* MAIN MENU */ 407/* MAIN MENU */
444/***********************************/ 408/***********************************/
445 409
446/* lazy coders can use this function if the needed
447 callback is just to say if the item is shown or not */
448int dynamicitem_callback(int action,const struct menu_item_ex *this_item)
449{
450 if (action != ACTION_REQUEST_MENUITEM)
451 return action;
452
453#if CONFIG_TUNER
454 if (this_item == &load_radio_screen)
455 {
456 if (radio_hardware_present() == 0)
457 return ACTION_EXIT_MENUITEM;
458 }
459#else
460 (void)this_item;
461#endif
462
463 return action;
464}
diff --git a/apps/menus/playback_menu.c b/apps/menus/playback_menu.c
index 6345b67ace..ae735609a8 100644
--- a/apps/menus/playback_menu.c
+++ b/apps/menus/playback_menu.c
@@ -57,7 +57,6 @@ int playback_callback(int action,const struct menu_item_ex *this_item);
57MENUITEM_SETTING(shuffle_item, &global_settings.playlist_shuffle, playback_callback); 57MENUITEM_SETTING(shuffle_item, &global_settings.playlist_shuffle, playback_callback);
58MENUITEM_SETTING(repeat_mode, &global_settings.repeat_mode, playback_callback); 58MENUITEM_SETTING(repeat_mode, &global_settings.repeat_mode, playback_callback);
59MENUITEM_SETTING(play_selected, &global_settings.play_selected, NULL); 59MENUITEM_SETTING(play_selected, &global_settings.play_selected, NULL);
60MENUITEM_SETTING(resume, &global_settings.resume, NULL);
61 60
62MENUITEM_SETTING(ff_rewind_accel, &global_settings.ff_rewind_accel, NULL); 61MENUITEM_SETTING(ff_rewind_accel, &global_settings.ff_rewind_accel, NULL);
63MENUITEM_SETTING(ff_rewind_min_step, &global_settings.ff_rewind_min_step, NULL); 62MENUITEM_SETTING(ff_rewind_min_step, &global_settings.ff_rewind_min_step, NULL);
@@ -108,7 +107,7 @@ int replaygain_callback(int action,const struct menu_item_ex *this_item)
108 (void)this_item; 107 (void)this_item;
109 switch (action) 108 switch (action)
110 { 109 {
111 case ACTION_EXIT_MENUITEM: /* on exit */ 110 case ACTION_EXIT_MENUITEM: /* on exit */
112 dsp_set_replaygain(); 111 dsp_set_replaygain();
113 break; 112 break;
114 } 113 }
@@ -172,7 +171,7 @@ MAKE_MENU(unplug_menu, ID2P(LANG_UNPLUG), 0, NOICON,
172 171
173MAKE_MENU(playback_menu_item,ID2P(LANG_PLAYBACK),0, 172MAKE_MENU(playback_menu_item,ID2P(LANG_PLAYBACK),0,
174 bitmap_icons_6x8[Icon_Playback_menu], 173 bitmap_icons_6x8[Icon_Playback_menu],
175 &shuffle_item, &repeat_mode, &play_selected, &resume, 174 &shuffle_item, &repeat_mode, &play_selected,
176 &ff_rewind_settings_menu, 175 &ff_rewind_settings_menu,
177 &buffer_margin, &fade_on_stop, &party_mode, 176 &buffer_margin, &fade_on_stop, &party_mode,
178 177
diff --git a/apps/menus/playlist_menu.c b/apps/menus/playlist_menu.c
index f179265279..d0d491f74e 100644
--- a/apps/menus/playlist_menu.c
+++ b/apps/menus/playlist_menu.c
@@ -73,12 +73,14 @@ MENUITEM_FUNCTION(catalog, ID2P(LANG_CATALOG),
73MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL); 73MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL);
74MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL); 74MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL);
75 75
76MAKE_MENU(playlist_menu_item, ID2P(LANG_PLAYLIST_MENU), NULL, 76MAKE_MENU(playlist_settings, ID2P(LANG_PLAYLIST_MENU), NULL,
77 bitmap_icons_6x8[Icon_Playlist], 77 bitmap_icons_6x8[Icon_Playlist],
78 &create_playlist_item, &view_playlist, &save_playlist, &catalog,
79 &recursive_dir_insert, &warn_on_erase); 78 &recursive_dir_insert, &warn_on_erase);
79MAKE_MENU(playlist_options, ID2P(LANG_PLAYLIST_MENU), NULL,
80 bitmap_icons_6x8[Icon_Playlist],
81 &create_playlist_item, &view_playlist, &save_playlist, &catalog);
80 82
81bool playlist_menu(void) 83bool playlist_menu(void)
82{ 84{
83 return do_menu(&playlist_menu_item); 85 return do_menu(&playlist_options, NULL);
84} 86}
diff --git a/apps/menus/recording_menu.c b/apps/menus/recording_menu.c
index 0b4ba52715..028b57bb99 100644
--- a/apps/menus/recording_menu.c
+++ b/apps/menus/recording_menu.c
@@ -29,14 +29,8 @@
29#include "recording.h" 29#include "recording.h"
30 30
31#ifdef HAVE_RECORDING 31#ifdef HAVE_RECORDING
32MENUITEM_FUNCTION(rec_menu_recording_screen_item, ID2P(LANG_RECORDING_MENU),
33 (menu_function)recording_screen, NULL, NOICON);
34/* TEMP */ 32/* TEMP */
35bool recording_menu(bool no_source); /* from apps/sound_menu.h */ 33bool recording_menu(bool no_source); /* from apps/sound_menu.h */
36MENUITEM_FUNCTION_WPARAM(recording_settings, ID2P(LANG_RECORDING_SETTINGS), 34MENUITEM_FUNCTION_WPARAM(recording_settings, ID2P(LANG_RECORDING_SETTINGS),
37 (int (*)(void*))recording_menu,0, NULL, NOICON); 35 (int (*)(void*))recording_menu,0, NULL, NOICON);
38
39MAKE_MENU(recording_settings_menu,ID2P(LANG_RECORDING),
40 0, bitmap_icons_6x8[Icon_Recording],
41 &rec_menu_recording_screen_item, &recording_settings);
42#endif 36#endif
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index 92c169e43a..35b7e2bf2f 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -281,9 +281,11 @@ MENUITEM_SETTING(line_in, &global_settings.line_in, linein_callback);
281#if CONFIG_CHARGING 281#if CONFIG_CHARGING
282MENUITEM_SETTING(car_adapter_mode, &global_settings.car_adapter_mode, NULL); 282MENUITEM_SETTING(car_adapter_mode, &global_settings.car_adapter_mode, NULL);
283#endif 283#endif
284MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL);
284 285
285MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), 286MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
286 0, bitmap_icons_6x8[Icon_System_menu], 287 0, bitmap_icons_6x8[Icon_System_menu],
288 &start_screen,
287#ifndef SIMULATOR 289#ifndef SIMULATOR
288 &battery_menu, 290 &battery_menu,
289#endif 291#endif
@@ -385,7 +387,8 @@ MENUITEM_FUNCTION(browse_langs, ID2P(LANG_LANGUAGE), language_browse,
385 387
386MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0, 388MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
387 bitmap_icons_6x8[Icon_General_settings_menu], 389 bitmap_icons_6x8[Icon_General_settings_menu],
388 &playback_menu_item, &file_menu, &display_menu, &system_menu, 390 &playback_menu_item, &playlist_settings, &file_menu,
391 &display_menu, &system_menu,
389 &bookmark_settings_menu, &browse_langs, &voice_settings_menu ); 392 &bookmark_settings_menu, &browse_langs, &voice_settings_menu );
390/* SETTINGS MENU */ 393/* SETTINGS MENU */
391/***********************************/ 394/***********************************/
diff --git a/apps/menus/sound_menu.c b/apps/menus/sound_menu.c
index 287b3ec904..1fa8ec6d02 100644
--- a/apps/menus/sound_menu.c
+++ b/apps/menus/sound_menu.c
@@ -113,5 +113,5 @@ MAKE_MENU(sound_settings, ID2P(LANG_SOUND_SETTINGS), NULL, bitmap_icons_6x8[Icon
113 113
114bool sound_menu(void) 114bool sound_menu(void)
115{ 115{
116 return do_menu(&sound_settings); 116 return do_menu(&sound_settings, 0);
117} 117}