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
This commit is contained in:
parent
955d889a15
commit
05e8488ad8
6 changed files with 32 additions and 7 deletions
|
@ -161,6 +161,13 @@ void audiohw_set_bass(int val)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_CODEC == MAS3507D
|
||||
void audiohw_set_prescaler(int val)
|
||||
{
|
||||
mas_writereg(MAS_REG_KPRESCALE, prescale_table[val/10]);
|
||||
}
|
||||
#endif
|
||||
|
||||
void audiohw_set_treble(int val)
|
||||
{
|
||||
#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
|
||||
|
|
|
@ -282,6 +282,11 @@ void audiohw_postinit(void)
|
|||
audiohw_mute(false);
|
||||
}
|
||||
|
||||
void audiohw_set_prescaler(int val)
|
||||
{
|
||||
audiohw_set_mixer_vol(tenthdb2mixer(-val), tenthdb2mixer(-val));
|
||||
}
|
||||
|
||||
/* Nice shutdown of UDA1380 codec */
|
||||
void audiohw_close(void)
|
||||
{
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#define BASS_CAP (1 << 1)
|
||||
#define BALANCE_CAP (1 << 2)
|
||||
#define CLIPPING_CAP (1 << 3)
|
||||
#define PRESCALER_CAP (1 << 4)
|
||||
|
||||
#ifdef HAVE_UDA1380
|
||||
#include "uda1380.h"
|
||||
|
@ -72,6 +73,10 @@
|
|||
#if (AUDIOHW_CAPS & CLIPPING_CAP)
|
||||
#define AUDIOHW_HAVE_CLIPPING
|
||||
#endif
|
||||
|
||||
#if (AUDIOHW_CAPS & PRESCALER_CAP)
|
||||
#define AUDIOHW_HAVE_PRESCALER
|
||||
#endif
|
||||
#endif /* AUDIOHW_CAPS */
|
||||
|
||||
enum {
|
||||
|
@ -164,6 +169,16 @@ void audiohw_close(void);
|
|||
void audiohw_set_volume(int val);
|
||||
#endif
|
||||
|
||||
#ifdef AUDIOHW_HAVE_PRESCALER
|
||||
/**
|
||||
* Set new prescaler value.
|
||||
* @param val to set.
|
||||
* NOTE: AUDIOHW_CAPS need to contain
|
||||
* PRESCALER_CAP
|
||||
*/
|
||||
void audiohw_set_prescaler(int val);
|
||||
#endif
|
||||
|
||||
#ifdef AUDIOHW_HAVE_BALANCE
|
||||
/**
|
||||
* Set new balance value
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#define VOLUME_MIN -780
|
||||
#define VOLUME_MAX 180
|
||||
#define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP)
|
||||
#define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP)
|
||||
|
||||
#else /* CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F */
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#define VOLUME_MIN -840
|
||||
#define VOLUME_MAX 0
|
||||
|
||||
#define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP)
|
||||
#define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP)
|
||||
|
||||
extern int tenthdb2master(int db);
|
||||
extern int tenthdb2mixer(int db);
|
||||
|
|
|
@ -264,12 +264,10 @@ static void set_prescaled_volume(void)
|
|||
prescale = VOLUME_MAX - current_volume;
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SW_TONE_CONTROLS)
|
||||
#if defined(AUDIOHW_HAVE_PRESCALER)
|
||||
audiohw_set_prescaler(prescale);
|
||||
#else
|
||||
dsp_callback(DSP_CALLBACK_SET_PRESCALE, prescale);
|
||||
#elif CONFIG_CODEC == MAS3507D
|
||||
mas_writereg(MAS_REG_KPRESCALE, prescale_table[prescale/10]);
|
||||
#elif defined(HAVE_UDA1380)
|
||||
audiohw_set_mixer_vol(tenthdb2mixer(-prescale), tenthdb2mixer(-prescale));
|
||||
#endif
|
||||
|
||||
if (current_volume == VOLUME_MIN)
|
||||
|
|
Loading…
Reference in a new issue