From d731cdd0db2e5e0ba2272f89df47f44348943500 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Thu, 25 Jul 2002 15:55:22 +0000 Subject: Automatic Volume Control for Recorder by Heikki Hannikainen git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1447 a1c6a512-1295-4272-9138-f99709370657 --- apps/main.c | 3 ++- apps/settings.c | 7 +++++++ apps/settings.h | 4 +++- apps/sound_menu.c | 10 +++++++++- 4 files changed, 21 insertions(+), 3 deletions(-) (limited to 'apps') diff --git a/apps/main.c b/apps/main.c index caa5517c4d..38a0c878d8 100644 --- a/apps/main.c +++ b/apps/main.c @@ -150,7 +150,8 @@ void init(void) global_settings.bass, global_settings.treble, global_settings.loudness, - global_settings.bass_boost ); + global_settings.bass_boost, + global_settings.avc ); status_init(); usb_start_monitoring(); diff --git a/apps/settings.c b/apps/settings.c index 84ac584951..5eebc61b41 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -54,6 +54,7 @@ offset abs 0x0e 0x22 0x0f 0x23 0x10 0x24 +0x11 0x25 @@ -216,6 +217,8 @@ int settings_save( void ) ((global_settings.scroll_speed << 3) | (global_settings.wps_display & 7)); + rtc_config_block[0x11] = (unsigned char)global_settings.avc; + memcpy(&rtc_config_block[0x24], &global_settings.total_uptime, 4); memcpy(&rtc_config_block[0x28], &global_settings.total_boots, 2); @@ -277,6 +280,9 @@ void settings_load(void) c = rtc_config_block[0xf] & 7; if (c != 7) global_settings.wps_display = c; + + if (rtc_config_block[0x11] != 0xFF) + global_settings.avc = rtc_config_block[0x11]; if (rtc_config_block[0x24] != 0xFF) memcpy(&global_settings.total_uptime, &rtc_config_block[0x24], 4); @@ -300,6 +306,7 @@ void settings_reset(void) { global_settings.treble = mpeg_sound_default(SOUND_TREBLE); global_settings.loudness = DEFAULT_LOUDNESS_SETTING; global_settings.bass_boost = DEFAULT_BASS_BOOST_SETTING; + global_settings.avc = DEFAULT_AVC_SETTING; global_settings.contrast = DEFAULT_CONTRAST_SETTING; global_settings.poweroff = DEFAULT_POWEROFF_SETTING; global_settings.backlight = DEFAULT_BACKLIGHT_SETTING; diff --git a/apps/settings.h b/apps/settings.h index 3921fb1f52..6a9f0ea636 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -38,7 +38,8 @@ struct user_settings int treble; /* treble eq: 0-100 0=low 100=high */ int loudness; /* loudness eq: 0-100 0=off 100=max */ int bass_boost; /* bass boost eq: 0-100 0=off 100=max */ - + int avc; /* auto volume correct: 0=disable, 1=2s 2=4s 3=8s */ + /* device settings */ int contrast; /* lcd contrast: 0-100 0=low 100=high */ @@ -94,6 +95,7 @@ extern struct user_settings global_settings; #define DEFAULT_TREBLE_SETTING 50/2 #define DEFAULT_LOUDNESS_SETTING 0 #define DEFAULT_BASS_BOOST_SETTING 0 +#define DEFAULT_AVC_SETTING 0 #define DEFAULT_CONTRAST_SETTING 0 #define DEFAULT_POWEROFF_SETTING 0 #define DEFAULT_BACKLIGHT_SETTING 5 diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 015e8d08a9..2fd7a00946 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c @@ -128,6 +128,13 @@ static void bass_boost(void) { set_sound("Bass boost", &global_settings.bass_boost, SOUND_SUPERBASS); }; + +static void avc(void) +{ + char* names[] = { "off", "2s ", "4s ", "8s " }; + set_option("[AVC decay time]", &global_settings.avc, names, 4 ); + mpeg_sound_set(SOUND_AVC, global_settings.avc); +} #endif /* ARCHOS_RECORDER */ void sound_menu(void) @@ -139,7 +146,8 @@ void sound_menu(void) { "Treble", treble }, #ifdef ARCHOS_RECORDER { "Loudness", loudness }, - { "Bass Boost", bass_boost } + { "Bass Boost", bass_boost }, + { "AVC", avc } #endif }; -- cgit v1.2.3