summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-06-19 23:33:23 +0000
committerJens Arnold <amiconn@rockbox.org>2005-06-19 23:33:23 +0000
commit12a0e221de7ae39b221f38fe5cd8165440a79d2e (patch)
tree1bf2f60f5c212c30d28778887ff4294d8d51ce61 /firmware/drivers
parent2c28390972fd55e61e34055e2c412c03ea981371 (diff)
downloadrockbox-12a0e221de7ae39b221f38fe5cd8165440a79d2e.zip
rockbox-12a0e221de7ae39b221f38fe5cd8165440a79d2e.tar.gz
rockbox-12a0e221de7ae39b221f38fe5cd8165440a79d2e.tar.bz2
rockbox-12a0e221de7ae39b221f38fe5cd8165440a79d2e.tar.xz
iriver: Prescale the digital volume when boosting treble/bass by decreasing the mixer volume.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6770 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/uda1380.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/firmware/drivers/uda1380.c b/firmware/drivers/uda1380.c
index bba7d19..7fd65a7 100644
--- a/firmware/drivers/uda1380.c
+++ b/firmware/drivers/uda1380.c
@@ -54,7 +54,7 @@ unsigned short uda1380_defaults[2*NUM_DEFAULT_REGS] =
REG_MIX_VOL, MIX_VOL_CH_1(0) | MIX_VOL_CH_2(0xff), /* 00=max, ff=mute */
REG_EQ, EQ_MODE_MAX, /* Bass and tremble = 0 dB */
REG_MUTE, MUTE_MASTER, /* Mute everything to start with */
- REG_MIX_CTL, 0,
+ REG_MIX_CTL, MIX_CTL_MIX, /* Enable mixer */
REG_DEC_VOL, 0,
REG_PGA, MUTE_ADC,
REG_ADC, SKIP_DCFIL,
@@ -87,14 +87,23 @@ int uda1380_write_reg(unsigned char reg, unsigned short value)
/**
* Sets left and right master volume (0(max) to 252(muted))
*/
-int uda1380_setvol(int vol_l, int vol_r)
+int uda1380_set_master_vol(int vol_l, int vol_r)
{
return uda1380_write_reg(REG_MASTER_VOL,
MASTER_VOL_LEFT(vol_l) | MASTER_VOL_RIGHT(vol_r));
}
/**
- * Sets the bass value (0-15)
+ * Sets mixer volume for both channels (0(max) to 228(muted))
+ */
+int uda1380_set_mixer_vol(int channel1, int channel2)
+{
+ return uda1380_write_reg(REG_MIX_VOL,
+ MIX_VOL_CH_1(channel1) | MIX_VOL_CH_2(channel2));
+}
+
+/**
+ * Sets the bass value (0-12)
*/
void uda1380_set_bass(int value)
{