summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorDan Everton <dan@iocaine.org>2007-11-24 07:51:00 +0000
committerDan Everton <dan@iocaine.org>2007-11-24 07:51:00 +0000
commitd7e1f7714699fa201bda4f14ed38bfce10949d94 (patch)
tree594b7a18c82f9fcedc8cd8681bb5e8aa196e1bfd /apps
parenta334bd2891d50fca3b073e2262d6b37ae624f1a0 (diff)
downloadrockbox-d7e1f7714699fa201bda4f14ed38bfce10949d94.zip
rockbox-d7e1f7714699fa201bda4f14ed38bfce10949d94.tar.gz
rockbox-d7e1f7714699fa201bda4f14ed38bfce10949d94.tar.bz2
rockbox-d7e1f7714699fa201bda4f14ed38bfce10949d94.tar.xz
Commit FS#7440. The iPod Video doesn't actually have a hardware equalizer. It does have hardware bass/treble settings with configurable cutoff. So make the bass/treble settings use the hardware and remove the hardware equalizer configuration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15782 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/lang/english.lang29
-rw-r--r--apps/menus/eq_menu.c153
-rw-r--r--apps/menus/eq_menu.h11
-rw-r--r--apps/menus/sound_menu.c18
-rw-r--r--apps/playback.c7
-rw-r--r--apps/settings.c5
-rw-r--r--apps/settings.h27
-rw-r--r--apps/settings_list.c63
8 files changed, 60 insertions, 253 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 1e7e515..118a01e 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -11478,3 +11478,32 @@
*: "Say file type"
</voice>
</phrase>
+<phrase>
+ id: LANG_BASS_CUTOFF
+ desc: Bass setting cut-off frequency
+ user:
+ <source>
+ *: "Bass Cutoff"
+ </source>
+ <dest>
+ *: "Bass Cutoff"
+ </dest>
+ <voice>
+ *: "Bass Cutoff"
+ </voice>
+</phrase>
+<phrase>
+ id: LANG_TREBLE_CUTOFF
+ desc: Treble setting cut-off frequency
+ user:
+ <source>
+ *: "Treble Cutoff"
+ </source>
+ <dest>
+ *: "Treble Cutoff"
+ </dest>
+ <voice>
+ *: "Treble Cutoff"
+ </voice>
+</phrase>
+
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 4dd8c06..2c2e596 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -46,11 +46,6 @@
#include "keyboard.h"
#include "gui/scrollbar.h"
#include "eq_menu.h"
-#ifdef HAVE_WM8758
-#include "wm8758.h"
-#endif
-
-
/*
* Utility functions
@@ -667,151 +662,3 @@ MAKE_MENU(equalizer_menu, ID2P(LANG_EQUALIZER), soundmenu_callback, Icon_EQ,
&eq_enable, &eq_graphical, &eq_precut, &gain_menu,
&advanced_eq_menu_, &eq_save, &eq_browse);
-
-#ifdef HAVE_WM8758
-
-void eq_hw_gain_format(char* buffer, size_t buffer_size, int value,
- const char* unit)
-{
- snprintf(buffer, buffer_size, "%d %s", value, unit);
-}
-
-static int band0_callback(int action, const struct menu_item_ex *this_item)
-{
- (void)this_item;
- if (action == ACTION_EXIT_MENUITEM)
- {
-#ifndef SIMULATOR
- audiohw_set_equalizer_band(0, global_settings.eq_hw_band0_cutoff, 0,
- global_settings.eq_hw_band0_gain);
-#endif
- }
- return action;
-}
-static int band1_callback(int action, const struct menu_item_ex *this_item)
-{
- (void)this_item;
- if (action == ACTION_EXIT_MENUITEM)
- {
-#ifndef SIMULATOR
- audiohw_set_equalizer_band(1, global_settings.eq_hw_band1_center,
- global_settings.eq_hw_band1_bandwidth,
- global_settings.eq_hw_band1_gain);
-#endif
- }
- return action;
-}
-static int band2_callback(int action, const struct menu_item_ex *this_item)
-{
- (void)this_item;
- if (action == ACTION_EXIT_MENUITEM)
- {
-#ifndef SIMULATOR
- audiohw_set_equalizer_band(2, global_settings.eq_hw_band2_center,
- global_settings.eq_hw_band2_bandwidth,
- global_settings.eq_hw_band2_gain);
-#endif
- }
- return action;
-}
-static int band3_callback(int action, const struct menu_item_ex *this_item)
-{
- (void)this_item;
- if (action == ACTION_EXIT_MENUITEM)
- {
-#ifndef SIMULATOR
- audiohw_set_equalizer_band(3, global_settings.eq_hw_band3_center,
- global_settings.eq_hw_band3_bandwidth,
- global_settings.eq_hw_band3_gain);
-#endif
- }
- return action;
-}
-static int band4_callback(int action, const struct menu_item_ex *this_item)
-{
- (void)this_item;
- if (action == ACTION_EXIT_MENUITEM)
- {
-#ifndef SIMULATOR
- audiohw_set_equalizer_band(4, global_settings.eq_hw_band4_cutoff, 0,
- global_settings.eq_hw_band4_gain);
-#endif
- }
- return action;
-}
-void eq_hw_enable(bool enable)
-{
-#ifdef SIMULATOR
- (void) enable;
-#else
- if (enable) {
- audiohw_set_equalizer_band(0, global_settings.eq_hw_band0_cutoff,
- 0, global_settings.eq_hw_band0_gain);
- audiohw_set_equalizer_band(1, global_settings.eq_hw_band1_center,
- global_settings.eq_hw_band1_bandwidth,
- global_settings.eq_hw_band1_gain);
- audiohw_set_equalizer_band(2, global_settings.eq_hw_band2_center,
- global_settings.eq_hw_band2_bandwidth,
- global_settings.eq_hw_band2_gain);
- audiohw_set_equalizer_band(3, global_settings.eq_hw_band3_center,
- global_settings.eq_hw_band3_bandwidth,
- global_settings.eq_hw_band3_gain);
- audiohw_set_equalizer_band(4, global_settings.eq_hw_band4_cutoff,
- 0, global_settings.eq_hw_band4_gain);
- } else {
- audiohw_set_equalizer_band(0, global_settings.eq_hw_band0_cutoff, 0, 0);
- audiohw_set_equalizer_band(1, global_settings.eq_hw_band1_center,
- global_settings.eq_hw_band1_bandwidth, 0);
- audiohw_set_equalizer_band(2, global_settings.eq_hw_band2_center,
- global_settings.eq_hw_band2_bandwidth, 0);
- audiohw_set_equalizer_band(3, global_settings.eq_hw_band3_center,
- global_settings.eq_hw_band3_bandwidth, 0);
- audiohw_set_equalizer_band(4, global_settings.eq_hw_band4_cutoff, 0, 0);
- }
-#endif
-}
-static int hweq_enable_callback(int action, const struct menu_item_ex *this_item)
-{
- (void)this_item;
- if (action == ACTION_EXIT_MENUITEM)
- {
- eq_hw_enable(global_settings.eq_hw_enabled);
- }
- return action;
-}
-MENUITEM_SETTING(hw_eq_enable, &global_settings.eq_hw_enabled, hweq_enable_callback);
-
-MENUITEM_SETTING(hw_eq_cutoff_0, &global_settings.eq_hw_band0_cutoff, band0_callback);
-MENUITEM_SETTING(hw_eq_gain_0, &global_settings.eq_hw_band0_gain, band0_callback);
-MAKE_MENU(hw_eq_band0, ID2P(LANG_EQUALIZER_BAND_LOW_SHELF), NULL, Icon_NOICON,
- &hw_eq_cutoff_0, &hw_eq_gain_0);
-
-MENUITEM_SETTING(hw_eq_cutoff_1, &global_settings.eq_hw_band1_center, band1_callback);
-MENUITEM_SETTING(hw_eq_bandwidth_1, &global_settings.eq_hw_band1_bandwidth, band1_callback);
-MENUITEM_SETTING(hw_eq_gain_1, &global_settings.eq_hw_band1_gain, band1_callback);
-MAKE_MENU(hw_eq_band1, "Peak Filter 1", NULL, Icon_NOICON,
- &hw_eq_cutoff_1, &hw_eq_bandwidth_1, &hw_eq_gain_1);
-
-MENUITEM_SETTING(hw_eq_cutoff_2, &global_settings.eq_hw_band2_center, band2_callback);
-MENUITEM_SETTING(hw_eq_bandwidth_2, &global_settings.eq_hw_band2_bandwidth, band2_callback);
-MENUITEM_SETTING(hw_eq_gain_2, &global_settings.eq_hw_band2_gain, band2_callback);
-MAKE_MENU(hw_eq_band2, "Peak Filter 2", NULL, Icon_NOICON,
- &hw_eq_cutoff_2, &hw_eq_bandwidth_2, &hw_eq_gain_2);
-
-MENUITEM_SETTING(hw_eq_cutoff_3, &global_settings.eq_hw_band3_center, band3_callback);
-MENUITEM_SETTING(hw_eq_bandwidth_3, &global_settings.eq_hw_band3_bandwidth, band3_callback);
-MENUITEM_SETTING(hw_eq_gain_3, &global_settings.eq_hw_band3_gain, band3_callback);
-MAKE_MENU(hw_eq_band3, "Peak Filter 3", NULL, Icon_NOICON,
- &hw_eq_cutoff_3, &hw_eq_bandwidth_3, &hw_eq_gain_3);
-
-MENUITEM_SETTING(hw_eq_cutoff_4, &global_settings.eq_hw_band4_cutoff, band4_callback);
-MENUITEM_SETTING(hw_eq_gain_4, &global_settings.eq_hw_band4_gain, band4_callback);
-MAKE_MENU(hw_eq_band4, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL, Icon_NOICON,
- &hw_eq_cutoff_4, &hw_eq_gain_4);
-
-MAKE_MENU(hw_eq_menu, ID2P(LANG_EQUALIZER_HARDWARE), NULL, Icon_EQ,
- &hw_eq_enable, &hw_eq_band0, &hw_eq_band1,
- &hw_eq_band2, &hw_eq_band3, &hw_eq_band4);
-
-
-#endif
diff --git a/apps/menus/eq_menu.h b/apps/menus/eq_menu.h
index b101ff3..ebeedff 100644
--- a/apps/menus/eq_menu.h
+++ b/apps/menus/eq_menu.h
@@ -44,16 +44,5 @@ bool eq_menu_graphical(void);
void eq_gain_format(char* buffer, size_t buffer_size, int value, const char* unit);
void eq_q_format(char* buffer, size_t buffer_size, int value, const char* unit);
void eq_precut_format(char* buffer, size_t buffer_size, int value, const char* unit);
-#ifdef HAVE_WM8758
-void eq_hw_gain_format(char* buffer, size_t buffer_size, int value,
- const char* unit);
-/* WM8758 equalizer supports -12 to +12 dB gain in 1 dB increments. */
-#define EQ_HW_GAIN_STEP 1
-#define EQ_HW_GAIN_MIN -12
-#define EQ_HW_GAIN_MAX 12
-
-bool eq_hw_menu(void);
-void eq_hw_enable(bool enable);
-#endif
#endif
diff --git a/apps/menus/sound_menu.c b/apps/menus/sound_menu.c
index 4d6a3e2..127b01d 100644
--- a/apps/menus/sound_menu.c
+++ b/apps/menus/sound_menu.c
@@ -58,7 +58,13 @@ int soundmenu_callback(int action, const struct menu_item_ex *this_item)
MENUITEM_SETTING(volume, &global_settings.volume, soundmenu_callback);
MENUITEM_SETTING(bass, &global_settings.bass, soundmenu_callback);
+#ifdef HAVE_WM8758
+MENUITEM_SETTING(bass_cutoff, &global_settings.bass_cutoff, soundmenu_callback);
+#endif
MENUITEM_SETTING(treble, &global_settings.treble, soundmenu_callback);
+#ifdef HAVE_WM8758
+MENUITEM_SETTING(treble_cutoff, &global_settings.treble_cutoff, soundmenu_callback);
+#endif
MENUITEM_SETTING(balance, &global_settings.balance, soundmenu_callback);
MENUITEM_SETTING(channel_config, &global_settings.channel_config, soundmenu_callback);
MENUITEM_SETTING(stereo_width, &global_settings.stereo_width, soundmenu_callback);
@@ -97,14 +103,18 @@ MENUITEM_SETTING(stereo_width, &global_settings.stereo_width, soundmenu_callback
MAKE_MENU(sound_settings, ID2P(LANG_SOUND_SETTINGS), NULL, Icon_Audio,
&volume,
- &bass,&treble,
+ &bass,
+#ifdef HAVE_WM8758
+ &bass_cutoff,
+#endif
+ &treble,
+#ifdef HAVE_WM8758
+ &treble_cutoff,
+#endif
&balance,&channel_config,&stereo_width
#if CONFIG_CODEC == SWCODEC
,&crossfeed_menu, &equalizer_menu, &dithering_enabled
#endif
-#ifdef HAVE_WM8758
- ,&hw_eq_menu
-#endif
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
,&loudness,&avc,&superbass,&mdb_enable,&mdb_strength
,&mdb_harmonics,&mdb_center,&mdb_shape
diff --git a/apps/playback.c b/apps/playback.c
index a880e4e..5e42b76 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -83,10 +83,6 @@
#include "talk.h"
#endif
-#ifdef HAVE_WM8758
-#include "menus/eq_menu.h"
-#endif
-
#define PLAYBACK_VOICE
/* default point to start buffer refill */
@@ -2601,9 +2597,6 @@ void audio_init(void)
audio_is_initialized = true;
sound_settings_apply();
-#ifdef HAVE_WM8758
- eq_hw_enable(global_settings.eq_hw_enabled);
-#endif
#ifndef HAVE_FLASH_STORAGE
audio_set_buffer_margin(global_settings.buffer_margin);
#endif
diff --git a/apps/settings.c b/apps/settings.c
index 0b82ad4..6467a0e 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -648,6 +648,11 @@ void sound_settings_apply(void)
sound_set(SOUND_SUPERBASS, global_settings.superbass);
#endif
+#ifdef HAVE_WM8758
+ sound_set(SOUND_BASS_CUTOFF, global_settings.bass_cutoff);
+ sound_set(SOUND_TREBLE_CUTOFF, global_settings.treble_cutoff);
+#endif
+
#ifdef HAVE_USB_POWER
#if CONFIG_CHARGING
usb_charging_enable(global_settings.usb_charging);
diff --git a/apps/settings.h b/apps/settings.h
index e5a2b17..369c7fd 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -306,6 +306,11 @@ struct user_settings
bool superbass; /* true/false */
#endif
+#ifdef HAVE_WM8758
+ int bass_cutoff;
+ int treble_cutoff;
+#endif
+
#if CONFIG_CODEC == SWCODEC
int crossfade; /* Enable crossfade (0=off,1=shuffle,2=trackskip,3=shuff&trackskip,4=always) */
int crossfade_fade_in_delay; /* Fade in delay (0-15s) */
@@ -616,6 +621,7 @@ struct user_settings
bool dithering_enabled;
#endif
+
#if LCD_DEPTH > 1
unsigned char backdrop_file[MAX_FILENAME+1]; /* backdrop bitmap file */
#endif
@@ -656,27 +662,6 @@ struct user_settings
#endif
#endif
-#ifdef HAVE_WM8758
- bool eq_hw_enabled; /* Enable hardware equalizer */
-
- int eq_hw_band0_cutoff;
- int eq_hw_band0_gain;
-
- int eq_hw_band1_center;
- int eq_hw_band1_bandwidth;
- int eq_hw_band1_gain;
-
- int eq_hw_band2_center;
- int eq_hw_band2_bandwidth;
- int eq_hw_band2_gain;
-
- int eq_hw_band3_center;
- int eq_hw_band3_bandwidth;
- int eq_hw_band3_gain;
-
- int eq_hw_band4_cutoff;
- int eq_hw_band4_gain;
-#endif
bool hold_lr_for_scroll_in_list; /* hold L/R scrolls the list left/right */
int show_path_in_browser; /* 0=off, 1=current directory, 2=full path */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 6aa816f..ea1e2f9 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1001,6 +1001,12 @@ const struct settings_list settings[] = {
OFFON_SETTING(0, dithering_enabled, LANG_DITHERING,
false, "dithering enabled", dsp_dither_enable),
#endif
+#ifdef HAVE_WM8758
+ SOUND_SETTING(F_NO_WRAP, bass_cutoff, LANG_BASS_CUTOFF, "bass cutoff",
+ SOUND_BASS_CUTOFF),
+ SOUND_SETTING(F_NO_WRAP, treble_cutoff, LANG_TREBLE_CUTOFF, "treble cutoff",
+ SOUND_TREBLE_CUTOFF),
+#endif
#ifdef HAVE_DIRCACHE
OFFON_SETTING(0,dircache,LANG_DIRCACHE_ENABLE,false,"dircache",NULL),
SYSTEM_SETTING(NVRAM(4),dircache_size,0),
@@ -1059,63 +1065,6 @@ const struct settings_list settings[] = {
#endif
#endif /* HAVE_BACKLIGHT */
-#ifdef HAVE_WM8758
- OFFON_SETTING(0,eq_hw_enabled,LANG_EQUALIZER_HARDWARE_ENABLED,false,
- "eq hardware enabled",NULL),
-
- STRINGCHOICE_SETTING(0, eq_hw_band0_cutoff, LANG_EQUALIZER_BAND_CUTOFF, 1,
- "eq hardware band 0 cutoff", "80Hz,105Hz,135Hz,175Hz", NULL, 4,
- TALK_ID(80, UNIT_HERTZ), TALK_ID(105, UNIT_HERTZ),
- TALK_ID(135, UNIT_HERTZ), TALK_ID(175, UNIT_HERTZ)),
- INT_SETTING(0, eq_hw_band0_gain, LANG_GAIN, 0,
- "eq hardware band 0 gain", UNIT_DB, EQ_HW_GAIN_MIN,
- EQ_HW_GAIN_MAX, EQ_HW_GAIN_STEP, eq_hw_gain_format, NULL, NULL),
-
- STRINGCHOICE_SETTING(0, eq_hw_band1_center, LANG_EQUALIZER_BAND_CENTER, 1,
- "eq hardware band 1 center", "230Hz,300Hz,385Hz,500Hz", NULL, 4,
- TALK_ID(230, UNIT_HERTZ), TALK_ID(300, UNIT_HERTZ),
- TALK_ID(385, UNIT_HERTZ), TALK_ID(500, UNIT_HERTZ)),
- CHOICE_SETTING(0, eq_hw_band1_bandwidth, LANG_EQUALIZER_BANDWIDTH, 0,
- "eq hardware band 1 bandwidth", "narrow,wide", NULL, 2,
- ID2P(LANG_EQUALIZER_HARDWARE_BANDWIDTH_NARROW),
- ID2P(LANG_EQUALIZER_HARDWARE_BANDWIDTH_WIDE)),
- INT_SETTING(0, eq_hw_band1_gain, LANG_GAIN, 0,
- "eq hardware band 1 gain", UNIT_DB, EQ_HW_GAIN_MIN,
- EQ_HW_GAIN_MAX, EQ_HW_GAIN_STEP, eq_hw_gain_format, NULL, NULL),
-
- STRINGCHOICE_SETTING(0, eq_hw_band2_center, LANG_EQUALIZER_BAND_CENTER, 1,
- "eq hardware band 2 center", "650Hz,850Hz,1.1kHz,1.4kHz", NULL, 4,
- TALK_ID(650, UNIT_HERTZ), TALK_ID(850, UNIT_HERTZ),
- TALK_ID(1100, UNIT_HERTZ), TALK_ID(1400, UNIT_HERTZ)),
- CHOICE_SETTING(0, eq_hw_band2_bandwidth, LANG_EQUALIZER_BANDWIDTH, 0,
- "eq hardware band 2 bandwidth", "narrow,wide", NULL, 2,
- ID2P(LANG_EQUALIZER_HARDWARE_BANDWIDTH_NARROW),
- ID2P(LANG_EQUALIZER_HARDWARE_BANDWIDTH_WIDE)),
- INT_SETTING(0, eq_hw_band2_gain, LANG_GAIN, 0,
- "eq hardware band 2 gain", UNIT_DB, EQ_HW_GAIN_MIN,
- EQ_HW_GAIN_MAX, EQ_HW_GAIN_STEP, eq_hw_gain_format, NULL, NULL),
-
- STRINGCHOICE_SETTING(0, eq_hw_band3_center, LANG_EQUALIZER_BAND_CENTER, 1,
- "eq hardware band 3 center", "1.8kHz,2.4kHz,3.2kHz,4.1kHz", NULL, 4,
- TALK_ID(1800, UNIT_HERTZ), TALK_ID(2400, UNIT_HERTZ),
- TALK_ID(3200, UNIT_HERTZ), TALK_ID(4100, UNIT_HERTZ)),
- CHOICE_SETTING(0, eq_hw_band3_bandwidth, LANG_EQUALIZER_BANDWIDTH, 0,
- "eq hardware band 3 bandwidth", "narrow,wide", NULL, 2,
- ID2P(LANG_EQUALIZER_HARDWARE_BANDWIDTH_NARROW),
- ID2P(LANG_EQUALIZER_HARDWARE_BANDWIDTH_WIDE)),
- INT_SETTING(0, eq_hw_band3_gain, LANG_GAIN, 0,
- "eq hardware band 3 gain", UNIT_DB, EQ_HW_GAIN_MIN,
- EQ_HW_GAIN_MAX, EQ_HW_GAIN_STEP, eq_hw_gain_format, NULL, NULL),
-
- STRINGCHOICE_SETTING(0, eq_hw_band4_cutoff, LANG_EQUALIZER_BAND_CUTOFF, 1,
- "eq hardware band 4 cutoff", "5.3kHz,6.9kHz,9kHz,11.7kHz", NULL, 4,
- TALK_ID(5300, UNIT_HERTZ), TALK_ID(6900, UNIT_HERTZ),
- TALK_ID(9000, UNIT_HERTZ), TALK_ID(11700, UNIT_HERTZ)),
- INT_SETTING(0, eq_hw_band4_gain, LANG_GAIN, 0,
- "eq hardware band 4 gain", UNIT_DB, EQ_HW_GAIN_MIN,
- EQ_HW_GAIN_MAX, EQ_HW_GAIN_STEP, eq_hw_gain_format, NULL, NULL),
-#endif
-
OFFON_SETTING(0,hold_lr_for_scroll_in_list,-1,true,
"hold_lr_for_scroll_in_list",NULL),
CHOICE_SETTING(0, show_path_in_browser, LANG_SHOW_PATH, SHOW_PATH_OFF,