From 667fb7c6e94060294dd1a9f95934b841f7df9f71 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Fri, 28 Jun 2002 11:48:53 +0000 Subject: First step towards a better sound setting API git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1243 a1c6a512-1295-4272-9138-f99709370657 --- apps/sound_menu.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) (limited to 'apps/sound_menu.c') diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 183c3439a3..50ba26582d 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c @@ -19,23 +19,83 @@ #include "config.h" #include #include +#include "lcd.h" #include "menu.h" +#include "button.h" #include "mpeg.h" #include "settings.h" +void set_sound(char* string, + int* variable, + int setting) +{ + bool done = false; + int min, max; + int val; + char* unit; + char str[32]; + + unit = mpeg_sound_unit(setting); + min = mpeg_sound_min(setting); + max = mpeg_sound_max(setting); + + lcd_clear_display(); + lcd_puts_scroll(0,0,string); + + while (!done) { + val = mpeg_val2phys(setting, *variable); + snprintf(str,sizeof str,"%d %s ", val, unit); + lcd_puts(0,1,str); + lcd_update(); + + switch( button_get(true) ) { +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_UP: +#else + case BUTTON_RIGHT: +#endif + (*variable)++; + if(*variable > max ) + *variable = max; + break; + +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_DOWN: +#else + case BUTTON_LEFT: +#endif + (*variable)--; + if(*variable < min ) + *variable = min; + break; + +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_LEFT: +#else + case BUTTON_STOP: + case BUTTON_MENU: +#endif + done = true; + break; + } + mpeg_sound_set(setting, *variable); + } + lcd_stop_scroll(); +} + static void volume(void) { - set_int("Volume","%", &global_settings.volume, mpeg_volume, 2, 0, 100); + set_sound("Volume", &global_settings.volume, SOUND_VOLUME); } static void bass(void) { - set_int("Bass","%", &global_settings.bass, mpeg_bass, 2, 0, 100); + set_sound("Bass", &global_settings.bass, SOUND_BASS); }; static void treble(void) { - set_int("Treble","%", &global_settings.treble, mpeg_treble, 2, 0, 100); + set_sound("Treble", &global_settings.treble, SOUND_TREBLE); } void sound_menu(void) -- cgit v1.2.3