From 7bade1a24f6fa725148d5c7fb66d267b05b0e333 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Tue, 6 Jul 2004 12:17:14 +0000 Subject: Bass boost removed in favour of some new sound settings: Super bass and five new MDB parameters: strength, harmonics, center, shape and enable git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4839 a1c6a512-1295-4272-9138-f99709370657 --- apps/lang/english.lang | 42 ++++++++++++++++++++++++++--- apps/main.c | 18 ++++++++++--- apps/recorder/radio.c | 18 ++----------- apps/recorder/recording.c | 9 +------ apps/settings.c | 35 +++++++++++++++++++------ apps/settings.h | 8 +++++- apps/sound_menu.c | 67 ++++++++++++++++++++++++++++++++++++++++++----- 7 files changed, 150 insertions(+), 47 deletions(-) (limited to 'apps') diff --git a/apps/lang/english.lang b/apps/lang/english.lang index f9f1bf3bc2..062c7a0d75 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -326,9 +326,9 @@ voice: "Loudness" new: id: LANG_BBOOST -desc: in sound settings -eng: "Bass Boost" -voice: "Bass Boost" +desc: DEPRECATED +eng: "" +voice: "" new: id: LANG_DECAY @@ -2757,3 +2757,39 @@ desc: in radio screen eng: "Action" voice: "" new: + +id: LANG_MDB_STRENGTH +desc: in sound settings +eng: "MDB Strength" +voice: "MDB Strength" +new: + +id: LANG_MDB_HARMONICS +desc: in sound settings +eng: "MDB Harmonics" +voice: "MDB Harmonics" +new: + +id: LANG_MDB_CENTER +desc: in sound settings +eng: "MDB Center frequency" +voice: "MDB Center frequency" +new: + +id: LANG_MDB_SHAPE +desc: in sound settings +eng: "MDB Shape" +voice: "MDB Shape" +new: + +id: LANG_MDB_ENABLE +desc: in sound settings +eng: "MDB Enable" +voice: "MDB Enable" +new: + +id: LANG_SUPERBASS +desc: in sound settings +eng: "Super bass" +voice: "Super bass" +new: diff --git a/apps/main.c b/apps/main.c index 9ead6e2db3..7a4590ebe1 100644 --- a/apps/main.c +++ b/apps/main.c @@ -89,9 +89,14 @@ void init(void) global_settings.treble, global_settings.balance, global_settings.loudness, - global_settings.bass_boost, global_settings.avc, - global_settings.channel_config ); + global_settings.channel_config, + global_settings.mdb_strength, + global_settings.mdb_harmonics, + global_settings.mdb_center, + global_settings.mdb_shape, + global_settings.mdb_enable, + global_settings.superbass); mpeg_init(); while (button_get(false) != 0) ; /* Empty the keyboard buffer */ @@ -227,9 +232,14 @@ void init(void) global_settings.treble, global_settings.balance, global_settings.loudness, - global_settings.bass_boost, global_settings.avc, - global_settings.channel_config ); + global_settings.channel_config, + global_settings.mdb_strength, + global_settings.mdb_harmonics, + global_settings.mdb_center, + global_settings.mdb_shape, + global_settings.mdb_enable, + global_settings.superbass); mpeg_init(); talk_init(); diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c index d4dc8a93aa..ce4bc8b4d6 100644 --- a/apps/recorder/radio.c +++ b/apps/recorder/radio.c @@ -203,14 +203,7 @@ bool radio_screen(void) mpeg_init_recording(); - mpeg_sound_channel_config(global_settings.channel_config); - mpeg_sound_set(SOUND_BASS, global_settings.bass); - mpeg_sound_set(SOUND_TREBLE, global_settings.treble); - mpeg_sound_set(SOUND_BALANCE, global_settings.balance); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); - mpeg_sound_set(SOUND_AVC, global_settings.avc); + sound_settings_apply(); /* Yes, we use the D/A for monitoring */ peak_meter_playback(true); @@ -532,14 +525,7 @@ bool radio_screen(void) mpeg_init_playback(); - mpeg_sound_channel_config(global_settings.channel_config); - mpeg_sound_set(SOUND_BASS, global_settings.bass); - mpeg_sound_set(SOUND_TREBLE, global_settings.treble); - mpeg_sound_set(SOUND_BALANCE, global_settings.balance); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); - mpeg_sound_set(SOUND_AVC, global_settings.avc); + sound_settings_apply(); fmradio_set_status(0); diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 40c416971a..60b6e4743e 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -606,14 +606,7 @@ bool recording_screen(void) mpeg_init_playback(); - mpeg_sound_channel_config(global_settings.channel_config); - mpeg_sound_set(SOUND_BASS, global_settings.bass); - mpeg_sound_set(SOUND_TREBLE, global_settings.treble); - mpeg_sound_set(SOUND_BALANCE, global_settings.balance); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); - mpeg_sound_set(SOUND_AVC, global_settings.avc); + sound_settings_apply(); lcd_setfont(FONT_UI); diff --git a/apps/settings.c b/apps/settings.c index 79fbfa5090..8434d3e211 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -71,7 +71,7 @@ char rockboxdir[] = ROCKBOX_DIR; /* config/font/data file directory */ char rec_base_directory[] = REC_BASE_DIR; -#define CONFIG_BLOCK_VERSION 13 +#define CONFIG_BLOCK_VERSION 14 #define CONFIG_BLOCK_SIZE 512 #define RTC_BLOCK_SIZE 44 @@ -165,8 +165,8 @@ static struct bit_entry rtc_bits[] = {5 | SIGNED, S_O(treble), 0, "treble", NULL }, /* -15..+15 / -12..+12 */ #ifdef HAVE_MAS3587F {5, S_O(loudness), 0, "loudness", NULL }, /* 0...17 */ - {7, S_O(bass_boost), 0, "bass boost", NULL }, /* 0...100 */ {3, S_O(avc), 0, "auto volume", "off,20ms,2,4,8" }, + {1, S_O(superbass), false, "superbass", off_on }, #endif {3, S_O(channel_config), 6, "channels", "stereo,stereo narrow,mono,mono left,mono right,karaoke,stereo wide" }, @@ -325,7 +325,11 @@ static struct bit_entry hd_bits[] = /* If values are just added to the end, no need to bump the version. */ {2, S_O(sort_file), 0, "sort files", "alpha,oldest,newest,type" }, {2, S_O(sort_dir), 0, "sort dirs", "alpha,oldest,newest" }, - + {7, S_O(mdb_strength), 0, "mdb strength", NULL}, + {7, S_O(mdb_harmonics), 0, "mdb harmonics", NULL}, + {9, S_O(mdb_center), 0, "mdb center", NULL}, + {9, S_O(mdb_shape), 0, "mdb shape", NULL}, + {1, S_O(mdb_enable), 0, "mdb enable", off_on}, /* Sum of all bit sizes must not grow beyond 0xB8*8 = 1472 */ }; @@ -667,10 +671,8 @@ void settings_apply_pm_range(void) } #endif /* HAVE_LCD_BITMAP */ -void settings_apply(void) +void sound_settings_apply(void) { - char buf[64]; - mpeg_sound_set(SOUND_BASS, global_settings.bass); mpeg_sound_set(SOUND_TREBLE, global_settings.treble); mpeg_sound_set(SOUND_BALANCE, global_settings.balance); @@ -678,9 +680,21 @@ void settings_apply(void) mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config); #ifdef HAVE_MAS3587F mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); mpeg_sound_set(SOUND_AVC, global_settings.avc); + mpeg_sound_set(SOUND_MDB_STRENGTH, global_settings.mdb_strength); + mpeg_sound_set(SOUND_MDB_HARMONICS, global_settings.mdb_harmonics); + mpeg_sound_set(SOUND_MDB_CENTER, global_settings.mdb_center); + mpeg_sound_set(SOUND_MDB_SHAPE, global_settings.mdb_shape); + mpeg_sound_set(SOUND_MDB_ENABLE, global_settings.mdb_enable); + mpeg_sound_set(SOUND_SUPERBASS, global_settings.superbass); #endif +} + +void settings_apply(void) +{ + char buf[64]; + + sound_settings_apply(); mpeg_set_buffer_margin(global_settings.buffer_margin); @@ -1207,9 +1221,14 @@ void settings_reset(void) { global_settings.bass = mpeg_sound_default(SOUND_BASS); global_settings.treble = mpeg_sound_default(SOUND_TREBLE); global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS); - global_settings.bass_boost = mpeg_sound_default(SOUND_SUPERBASS); global_settings.avc = mpeg_sound_default(SOUND_AVC); global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS); + global_settings.mdb_strength = mpeg_sound_default(SOUND_MDB_STRENGTH); + global_settings.mdb_harmonics = mpeg_sound_default(SOUND_MDB_HARMONICS); + global_settings.mdb_center = mpeg_sound_default(SOUND_MDB_CENTER); + global_settings.mdb_shape = mpeg_sound_default(SOUND_MDB_SHAPE); + global_settings.mdb_enable = mpeg_sound_default(SOUND_MDB_ENABLE); + global_settings.superbass = mpeg_sound_default(SOUND_SUPERBASS); global_settings.contrast = lcd_default_contrast(); global_settings.wps_file[0] = '\0'; global_settings.font_file[0] = '\0'; diff --git a/apps/settings.h b/apps/settings.h index baea723e4b..b7b0864b4c 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -71,9 +71,14 @@ struct user_settings int bass; /* bass eq: 0-100 0=off 100=max */ 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=off, 1=20ms, 2=2s 3=4s 4=8s */ int channel_config; /* Stereo, Mono, Mono left, Mono right */ + int mdb_strength; /* 0-127dB */ + int mdb_harmonics; /* 0-100% */ + int mdb_center; /* 20-300Hz */ + int mdb_shape; /* 50-300Hz */ + bool mdb_enable; /* true/false */ + bool superbass; /* true/false */ int rec_quality; /* 0-7 */ int rec_source; /* 0=mic, 1=line, 2=S/PDIF */ @@ -226,6 +231,7 @@ struct opt_items { int settings_save(void); void settings_load(int which); void settings_reset(void); +void sound_settings_apply(void); void settings_apply(void); void settings_apply_pm_range(void); void settings_display(void); diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 4a6857d0cb..fe01cd9560 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c @@ -55,9 +55,11 @@ bool set_sound(char* string, char* unit; char str[32]; int talkunit = UNIT_INT; + int steps; unit = mpeg_sound_unit(setting); numdec = mpeg_sound_numdecimals(setting); + steps = mpeg_sound_steps(setting); min = mpeg_sound_min(setting); max = mpeg_sound_max(setting); if (*unit == 'd') /* crude reconstruction */ @@ -103,7 +105,7 @@ bool set_sound(char* string, case BUTTON_RIGHT: case BUTTON_RIGHT | BUTTON_REPEAT: #endif - (*variable)++; + (*variable)+=steps; if(*variable > max ) *variable = max; changed = true; @@ -116,7 +118,7 @@ bool set_sound(char* string, case BUTTON_LEFT: case BUTTON_LEFT | BUTTON_REPEAT: #endif - (*variable)--; + (*variable)-=steps; if(*variable < min ) *variable = min; changed = true; @@ -176,10 +178,56 @@ static bool loudness(void) SOUND_LOUDNESS); } -static bool bass_boost(void) +static bool mdb_strength(void) { - return set_sound(str(LANG_BBOOST), &global_settings.bass_boost, - SOUND_SUPERBASS); + return set_sound(str(LANG_MDB_STRENGTH), &global_settings.mdb_strength, + SOUND_MDB_STRENGTH); +} + +static bool mdb_harmonics(void) +{ + return set_sound(str(LANG_MDB_HARMONICS), &global_settings.mdb_harmonics, + SOUND_MDB_HARMONICS); +} + +static bool mdb_center(void) +{ + return set_sound(str(LANG_MDB_CENTER), &global_settings.mdb_center, + SOUND_MDB_CENTER); +} + +static bool mdb_shape(void) +{ + return set_sound(str(LANG_MDB_SHAPE), &global_settings.mdb_shape, + SOUND_MDB_SHAPE); +} + +static void set_mdb_enable(bool value) +{ + mpeg_sound_set(SOUND_MDB_ENABLE, (int)value); +} + +static bool mdb_enable(void) +{ + return set_bool_options(str(LANG_MDB_ENABLE), + &global_settings.mdb_enable, + STR(LANG_SET_BOOL_YES), + STR(LANG_SET_BOOL_NO), + set_mdb_enable); +} + +static void set_superbass(bool value) +{ + mpeg_sound_set(SOUND_SUPERBASS, (int)value); +} + +static bool superbass(void) +{ + return set_bool_options(str(LANG_SUPERBASS), + &global_settings.superbass, + STR(LANG_SET_BOOL_YES), + STR(LANG_SET_BOOL_NO), + set_superbass); } static void set_avc(int val) @@ -363,8 +411,13 @@ bool sound_menu(void) { STR(LANG_CHANNEL_MENU), chanconf }, #ifdef HAVE_MAS3587F { STR(LANG_LOUDNESS), loudness }, - { STR(LANG_BBOOST), bass_boost }, - { STR(LANG_AUTOVOL), avc } + { STR(LANG_AUTOVOL), avc }, + { STR(LANG_SUPERBASS), superbass }, + { STR(LANG_MDB_ENABLE), mdb_enable }, + { STR(LANG_MDB_STRENGTH), mdb_strength }, + { STR(LANG_MDB_HARMONICS), mdb_harmonics }, + { STR(LANG_MDB_CENTER), mdb_center }, + { STR(LANG_MDB_SHAPE), mdb_shape }, #endif }; -- cgit v1.2.3