From 60b356ea25dca1b103eec7a59ace90a710db31fe Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 27 Jun 2002 01:08:11 +0000 Subject: Abstracted settings user interface into set_bool, set_int and set_option. Removed the unnecessary menu entry ids. Made playlist_shuffle and scroll_speed proper global settings. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1220 a1c6a512-1295-4272-9138-f99709370657 --- apps/settings_menu.c | 180 +++++---------------------------------------------- 1 file changed, 17 insertions(+), 163 deletions(-) (limited to 'apps/settings_menu.c') diff --git a/apps/settings_menu.c b/apps/settings_menu.c index 00c5dfb77d..a27f4feac1 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c @@ -33,190 +33,44 @@ #include "backlight.h" #include "playlist.h" /* for playlist_shuffle */ -enum { Shuffle, Backlight, Scroll, Wps, numsettings }; - static void shuffle(void) { - bool done = false; - - lcd_clear_display(); - lcd_puts(0,0,"[Shuffle]"); - - while ( !done ) { - lcd_puts(0, 1, playlist_shuffle ? "on " : "off"); - lcd_update(); - - switch ( button_get(true) ) { -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_LEFT: -#else - case BUTTON_STOP: -#endif - done = true; - break; + set_bool( "[Shuffle]", &global_settings.playlist_shuffle ); +} - default: - playlist_shuffle = !playlist_shuffle; - break; - } - } +static void mp3_filter(void) +{ + set_bool( "[MP3/M3U filter]", &global_settings.mp3filter ); } static void backlight_timer(void) { - bool done = false; - int timer = global_settings.backlight; - char str[16]; - - lcd_clear_display(); - lcd_puts_scroll(0,0,"Backlight"); - - while (!done) { - snprintf(str,sizeof str,"Timeout: %d s ", timer); - lcd_puts(0,1,str); - lcd_update(); - switch( button_get(true) ) { -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_UP: -#else - case BUTTON_RIGHT: -#endif - timer++; - if(timer > 60) - timer = 60; - break; - -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_DOWN: -#else - case BUTTON_LEFT: -#endif - timer--; - if ( timer < 0 ) - timer = 0; - break; - -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_LEFT: -#else - case BUTTON_STOP: - case BUTTON_MENU: -#endif - done = true; - global_settings.backlight = timer; - backlight_on(); - break; - } - } + set_int( "[Backlight]", "s", &global_settings.backlight, + backlight_time, 1, 0, 60 ); + backlight_on(); } static void scroll_speed(void) { - bool done=false; - int speed=10; - char str[16]; - - lcd_clear_display(); - lcd_puts_scroll(0,0,"Scroll speed indicator"); - - while (!done) { - snprintf(str,sizeof str,"Speed: %d ",speed); - lcd_puts(0,1,str); - lcd_update(); - lcd_scroll_speed(speed); - switch( button_get(true) ) { -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_UP: -#else - case BUTTON_RIGHT: -#endif - speed++; - break; - -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_DOWN: -#else - case BUTTON_LEFT: -#endif - speed--; - if ( speed < 1 ) - speed = 1; - break; - -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_LEFT: -#else - case BUTTON_STOP: - case BUTTON_MENU: -#endif - done = true; - lcd_stop_scroll(); - break; - } - } + set_int("Scroll speed indicator...", "", &global_settings.scroll_speed, + &lcd_scroll_speed, 1, 1, 20 ); } - -void wps_set(void) +static void wps_set(void) { - /* Simple menu for selecting what the display shows during playback */ - - bool done = false; - int itemp = 0; char* names[] = { "Id3 ", "File ", "Parse" }; - - lcd_clear_display(); - lcd_puts(0,0,"[Display]"); - - while (!done) { - lcd_puts(0,1,names[itemp]); - lcd_update(); - - switch ( button_get(true) ) { -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_DOWN: -#else - case BUTTON_LEFT: -#endif - itemp--; - if (itemp <= 0) - itemp = 0; - break; -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_UP: -#else - case BUTTON_RIGHT: -#endif - itemp++; - if (itemp >= 2) - itemp = 2; - break; -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_LEFT: -#else - case BUTTON_STOP: - case BUTTON_MENU: -#endif - done = true; - break; - default: - itemp = 0; - break; - } - } - - - global_settings.wps_display = itemp; //savedsettings[itemp]; + set_option("[WPS display]", &global_settings.wps_display, names, 3 ); } void settings_menu(void) { int m; struct menu_items items[] = { - { Shuffle, "Shuffle", shuffle }, - { Backlight, "Backlight Timer", backlight_timer }, - { Scroll, "Scroll speed", scroll_speed }, - { Wps, "While Playing", wps_set }, + { "Shuffle", shuffle }, + { "MP3/M3U filter", mp3_filter }, + { "Backlight Timer", backlight_timer }, + { "Scroll speed", scroll_speed }, + { "While Playing", wps_set }, }; m=menu_init( items, sizeof items / sizeof(struct menu_items) ); -- cgit v1.2.3