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/settings.h | 6 ++--- apps/sound_menu.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- apps/wps.c | 16 +++++++------- 3 files changed, 74 insertions(+), 14 deletions(-) (limited to 'apps') diff --git a/apps/settings.h b/apps/settings.h index d3b891c790..5f67b3b1bc 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -84,10 +84,10 @@ extern struct user_settings global_settings; /* system defines */ -#define DEFAULT_VOLUME_SETTING 70 +#define DEFAULT_VOLUME_SETTING 70/2 #define DEFAULT_BALANCE_SETTING 50 -#define DEFAULT_BASS_SETTING 50 -#define DEFAULT_TREBLE_SETTING 50 +#define DEFAULT_BASS_SETTING 50/2 +#define DEFAULT_TREBLE_SETTING 50/2 #define DEFAULT_LOUDNESS_SETTING 0 #define DEFAULT_BASS_BOOST_SETTING 0 #define DEFAULT_CONTRAST_SETTING 0 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) diff --git a/apps/wps.c b/apps/wps.c index 51add88872..2779af7a5d 100644 --- a/apps/wps.c +++ b/apps/wps.c @@ -176,17 +176,17 @@ void wps_show(void) #ifdef HAVE_RECORDER_KEYPAD case BUTTON_UP: - global_settings.volume += 2; - if(global_settings.volume > 100) - global_settings.volume = 100; - mpeg_volume(global_settings.volume); + global_settings.volume++; + if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) + global_settings.volume = mpeg_sound_max(SOUND_VOLUME); + mpeg_sound_set(SOUND_VOLUME, global_settings.volume); break; case BUTTON_DOWN: - global_settings.volume -= 2; - if(global_settings.volume < 0) - global_settings.volume = 0; - mpeg_volume(global_settings.volume); + global_settings.volume--; + if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) + global_settings.volume = mpeg_sound_min(SOUND_VOLUME); + mpeg_sound_set(SOUND_VOLUME, global_settings.volume); break; #endif -- cgit v1.2.3