diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2008-05-14 21:35:19 +0000 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2008-05-14 21:35:19 +0000 |
commit | 05e8488ad8f3ff849ab63f2273e44132c64fbfcd (patch) | |
tree | 334b360767aecc3050d1d7b0fd80f51e47d893d7 | |
parent | 955d889a15e6d61e9cbd9b2f35af48ec7b6f3bac (diff) | |
download | rockbox-05e8488ad8f3ff849ab63f2273e44132c64fbfcd.tar.gz rockbox-05e8488ad8f3ff849ab63f2273e44132c64fbfcd.zip |
Introduce PRESCALER_CAP and move some driver specific code to the correct place.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17516 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/drivers/audio/mas35xx.c | 7 | ||||
-rw-r--r-- | firmware/drivers/audio/uda1380.c | 5 | ||||
-rw-r--r-- | firmware/export/audiohw.h | 15 | ||||
-rw-r--r-- | firmware/export/mas35xx.h | 2 | ||||
-rw-r--r-- | firmware/export/uda1380.h | 2 | ||||
-rw-r--r-- | firmware/sound.c | 8 |
6 files changed, 32 insertions, 7 deletions
diff --git a/firmware/drivers/audio/mas35xx.c b/firmware/drivers/audio/mas35xx.c index 403ce07068..1a0d2afe45 100644 --- a/firmware/drivers/audio/mas35xx.c +++ b/firmware/drivers/audio/mas35xx.c | |||
@@ -161,6 +161,13 @@ void audiohw_set_bass(int val) | |||
161 | #endif | 161 | #endif |
162 | } | 162 | } |
163 | 163 | ||
164 | #if CONFIG_CODEC == MAS3507D | ||
165 | void audiohw_set_prescaler(int val) | ||
166 | { | ||
167 | mas_writereg(MAS_REG_KPRESCALE, prescale_table[val/10]); | ||
168 | } | ||
169 | #endif | ||
170 | |||
164 | void audiohw_set_treble(int val) | 171 | void audiohw_set_treble(int val) |
165 | { | 172 | { |
166 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 173 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
diff --git a/firmware/drivers/audio/uda1380.c b/firmware/drivers/audio/uda1380.c index f6a7c730cb..388e59b1d2 100644 --- a/firmware/drivers/audio/uda1380.c +++ b/firmware/drivers/audio/uda1380.c | |||
@@ -282,6 +282,11 @@ void audiohw_postinit(void) | |||
282 | audiohw_mute(false); | 282 | audiohw_mute(false); |
283 | } | 283 | } |
284 | 284 | ||
285 | void audiohw_set_prescaler(int val) | ||
286 | { | ||
287 | audiohw_set_mixer_vol(tenthdb2mixer(-val), tenthdb2mixer(-val)); | ||
288 | } | ||
289 | |||
285 | /* Nice shutdown of UDA1380 codec */ | 290 | /* Nice shutdown of UDA1380 codec */ |
286 | void audiohw_close(void) | 291 | void audiohw_close(void) |
287 | { | 292 | { |
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index d11a3b5181..4c9271e03e 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #define BASS_CAP (1 << 1) | 28 | #define BASS_CAP (1 << 1) |
29 | #define BALANCE_CAP (1 << 2) | 29 | #define BALANCE_CAP (1 << 2) |
30 | #define CLIPPING_CAP (1 << 3) | 30 | #define CLIPPING_CAP (1 << 3) |
31 | #define PRESCALER_CAP (1 << 4) | ||
31 | 32 | ||
32 | #ifdef HAVE_UDA1380 | 33 | #ifdef HAVE_UDA1380 |
33 | #include "uda1380.h" | 34 | #include "uda1380.h" |
@@ -72,6 +73,10 @@ | |||
72 | #if (AUDIOHW_CAPS & CLIPPING_CAP) | 73 | #if (AUDIOHW_CAPS & CLIPPING_CAP) |
73 | #define AUDIOHW_HAVE_CLIPPING | 74 | #define AUDIOHW_HAVE_CLIPPING |
74 | #endif | 75 | #endif |
76 | |||
77 | #if (AUDIOHW_CAPS & PRESCALER_CAP) | ||
78 | #define AUDIOHW_HAVE_PRESCALER | ||
79 | #endif | ||
75 | #endif /* AUDIOHW_CAPS */ | 80 | #endif /* AUDIOHW_CAPS */ |
76 | 81 | ||
77 | enum { | 82 | enum { |
@@ -164,6 +169,16 @@ void audiohw_close(void); | |||
164 | void audiohw_set_volume(int val); | 169 | void audiohw_set_volume(int val); |
165 | #endif | 170 | #endif |
166 | 171 | ||
172 | #ifdef AUDIOHW_HAVE_PRESCALER | ||
173 | /** | ||
174 | * Set new prescaler value. | ||
175 | * @param val to set. | ||
176 | * NOTE: AUDIOHW_CAPS need to contain | ||
177 | * PRESCALER_CAP | ||
178 | */ | ||
179 | void audiohw_set_prescaler(int val); | ||
180 | #endif | ||
181 | |||
167 | #ifdef AUDIOHW_HAVE_BALANCE | 182 | #ifdef AUDIOHW_HAVE_BALANCE |
168 | /** | 183 | /** |
169 | * Set new balance value | 184 | * Set new balance value |
diff --git a/firmware/export/mas35xx.h b/firmware/export/mas35xx.h index d28db0fb33..a0da03d0a4 100644 --- a/firmware/export/mas35xx.h +++ b/firmware/export/mas35xx.h | |||
@@ -28,7 +28,7 @@ | |||
28 | 28 | ||
29 | #define VOLUME_MIN -780 | 29 | #define VOLUME_MIN -780 |
30 | #define VOLUME_MAX 180 | 30 | #define VOLUME_MAX 180 |
31 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP) | 31 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP) |
32 | 32 | ||
33 | #else /* CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F */ | 33 | #else /* CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F */ |
34 | 34 | ||
diff --git a/firmware/export/uda1380.h b/firmware/export/uda1380.h index c23f95265b..e0125d8d63 100644 --- a/firmware/export/uda1380.h +++ b/firmware/export/uda1380.h | |||
@@ -24,7 +24,7 @@ | |||
24 | #define VOLUME_MIN -840 | 24 | #define VOLUME_MIN -840 |
25 | #define VOLUME_MAX 0 | 25 | #define VOLUME_MAX 0 |
26 | 26 | ||
27 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP) | 27 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP) |
28 | 28 | ||
29 | extern int tenthdb2master(int db); | 29 | extern int tenthdb2master(int db); |
30 | extern int tenthdb2mixer(int db); | 30 | extern int tenthdb2mixer(int db); |
diff --git a/firmware/sound.c b/firmware/sound.c index 8282decbbe..5c6a821d48 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -264,12 +264,10 @@ static void set_prescaled_volume(void) | |||
264 | prescale = VOLUME_MAX - current_volume; | 264 | prescale = VOLUME_MAX - current_volume; |
265 | #endif | 265 | #endif |
266 | 266 | ||
267 | #if defined(HAVE_SW_TONE_CONTROLS) | 267 | #if defined(AUDIOHW_HAVE_PRESCALER) |
268 | audiohw_set_prescaler(prescale); | ||
269 | #else | ||
268 | dsp_callback(DSP_CALLBACK_SET_PRESCALE, prescale); | 270 | dsp_callback(DSP_CALLBACK_SET_PRESCALE, prescale); |
269 | #elif CONFIG_CODEC == MAS3507D | ||
270 | mas_writereg(MAS_REG_KPRESCALE, prescale_table[prescale/10]); | ||
271 | #elif defined(HAVE_UDA1380) | ||
272 | audiohw_set_mixer_vol(tenthdb2mixer(-prescale), tenthdb2mixer(-prescale)); | ||
273 | #endif | 271 | #endif |
274 | 272 | ||
275 | if (current_volume == VOLUME_MIN) | 273 | if (current_volume == VOLUME_MIN) |