summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Bartell <wingedtachikoma@gmail.com>2011-08-21 17:18:09 -0400
committerNils Wallménius <nils@rockbox.org>2012-04-27 16:33:27 +0200
commita6dea9e13d6e53dacef183bd3cbbb363c2fa2073 (patch)
tree8a0c3b160791698a2a5dcdd7f9226876685243ec
parent79a667d3e247f0bf0fdbfb96b57f45d0403ca21c (diff)
downloadrockbox-a6dea9e13d6e53dacef183bd3cbbb363c2fa2073.tar.gz
rockbox-a6dea9e13d6e53dacef183bd3cbbb363c2fa2073.tar.bz2
rockbox-a6dea9e13d6e53dacef183bd3cbbb363c2fa2073.zip
rbcodec refactoring: dsp_set_eq_coefs
dsp_set_eq_coefs now has parameters for the band settings, so it doesn't need to access global_settings. Change-Id: I29ac19fc353b15a79cb25f0e45132aef0881e4c9 Reviewed-on: http://gerrit.rockbox.org/138 Reviewed-by: Nils Wallménius <nils@rockbox.org>
-rw-r--r--apps/menus/eq_menu.c12
-rw-r--r--apps/settings.c5
-rw-r--r--lib/rbcodec/dsp/dsp.c9
-rw-r--r--lib/rbcodec/dsp/dsp.h2
4 files changed, 15 insertions, 13 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index d920c93ca3..2cfb80f76a 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -70,12 +70,13 @@ const char* eq_precut_format(char* buffer, size_t buffer_size, int value, const
*/
static void eq_apply(void)
{
- int i;
dsp_set_eq(global_settings.eq_enabled);
dsp_set_eq_precut(global_settings.eq_precut);
/* Update all bands */
- for(i = 0; i < 5; i++) {
- dsp_set_eq_coefs(i);
+ for(int i = 0; i < 5; i++) {
+ dsp_set_eq_coefs(i, global_settings.eq_band_settings[i].cutoff,
+ global_settings.eq_band_settings[i].q,
+ global_settings.eq_band_settings[i].gain);
}
}
@@ -578,7 +579,10 @@ bool eq_menu_graphical(void)
/* Update the filter if the user changed something */
if (has_changed) {
- dsp_set_eq_coefs(current_band);
+ dsp_set_eq_coefs(current_band,
+ global_settings.eq_band_settings[current_band].cutoff,
+ global_settings.eq_band_settings[current_band].q,
+ global_settings.eq_band_settings[current_band].gain);
has_changed = false;
}
}
diff --git a/apps/settings.c b/apps/settings.c
index a267f51765..acc38c2388 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -988,8 +988,11 @@ void settings_apply(bool read_disk)
/* Configure software equalizer, hardware eq is handled in audio_init() */
dsp_set_eq(global_settings.eq_enabled);
dsp_set_eq_precut(global_settings.eq_precut);
+
for(int i = 0; i < 5; i++) {
- dsp_set_eq_coefs(i);
+ dsp_set_eq_coefs(i, global_settings.eq_band_settings[i].cutoff,
+ global_settings.eq_band_settings[i].q,
+ global_settings.eq_band_settings[i].gain);
}
dsp_dither_enable(global_settings.dithering_enabled);
diff --git a/lib/rbcodec/dsp/dsp.c b/lib/rbcodec/dsp/dsp.c
index 4061fa7186..de647dc0dd 100644
--- a/lib/rbcodec/dsp/dsp.c
+++ b/lib/rbcodec/dsp/dsp.c
@@ -951,15 +951,10 @@ void dsp_set_eq_precut(int precut)
*
* @param band the equalizer band to synchronize
*/
-void dsp_set_eq_coefs(int band)
+void dsp_set_eq_coefs(int band, int cutoff, int q, int gain)
{
- /* Adjust setting pointer to the band we actually want to change */
- struct eq_band_setting *setting = &global_settings.eq_band_settings[band];
-
/* Convert user settings to format required by coef generator functions */
- unsigned long cutoff = 0xffffffff / NATIVE_FREQUENCY * setting->cutoff;
- unsigned long q = setting->q;
- int gain = setting->gain;
+ cutoff = 0xffffffff / NATIVE_FREQUENCY * cutoff;
if (q == 0)
q = 1;
diff --git a/lib/rbcodec/dsp/dsp.h b/lib/rbcodec/dsp/dsp.h
index 0da62747a3..a99df17468 100644
--- a/lib/rbcodec/dsp/dsp.h
+++ b/lib/rbcodec/dsp/dsp.h
@@ -111,7 +111,7 @@ void dsp_set_crossfeed_cross_params(long lf_gain, long hf_gain,
long cutoff);
void dsp_set_eq(bool enable);
void dsp_set_eq_precut(int precut);
-void dsp_set_eq_coefs(int band);
+void dsp_set_eq_coefs(int band, int cutoff, int q, int gain);
void dsp_dither_enable(bool enable);
void dsp_timestretch_enable(bool enable);
bool dsp_timestretch_available(void);