summaryrefslogtreecommitdiffstats
path: root/firmware/drivers/audio
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2018-02-19 16:28:11 +1100
committerSolomon Peachy <pizza@shaftnet.org>2020-10-31 14:16:31 +0000
commitdd82f13fa1241266576b508180fcf90b8d9bda2c (patch)
treecdae2331353e4f85a296782b14001d021923ddfc /firmware/drivers/audio
parentce9e7e712238dc69a825a49f4f226ff47fbbff69 (diff)
downloadrockbox-dd82f13fa1241266576b508180fcf90b8d9bda2c.tar.gz
rockbox-dd82f13fa1241266576b508180fcf90b8d9bda2c.zip
nwz/alsa: various improvements
Also audiohw driver to specific device name, rewrite alsa controls code to cache more data, thus making the code easier and use less stack. Avoid using short/long in pcm alsa code since it's the wrong size on 64-bit (simulator for example) Change-Id: Ibc1ec44396e37b6cbdedbcf37300878638e5d2d3
Diffstat (limited to 'firmware/drivers/audio')
-rw-r--r--firmware/drivers/audio/erosqlinux_codec.c2
-rw-r--r--firmware/drivers/audio/fiiolinux_codec.c8
-rw-r--r--firmware/drivers/audio/nwzlinux-codec.c5
-rw-r--r--firmware/drivers/audio/rocker_codec.c2
-rw-r--r--firmware/drivers/audio/xduoolinux_codec.c2
5 files changed, 9 insertions, 10 deletions
diff --git a/firmware/drivers/audio/erosqlinux_codec.c b/firmware/drivers/audio/erosqlinux_codec.c
index 3b7155faef..c288c63c4f 100644
--- a/firmware/drivers/audio/erosqlinux_codec.c
+++ b/firmware/drivers/audio/erosqlinux_codec.c
@@ -143,7 +143,7 @@ void erosq_set_output(int ps)
void audiohw_preinit(void)
{
logf("hw preinit");
- alsa_controls_init();
+ alsa_controls_init("default");
hw_open();
audiohw_mute(false); /* No need to stay muted */
}
diff --git a/firmware/drivers/audio/fiiolinux_codec.c b/firmware/drivers/audio/fiiolinux_codec.c
index 8b1f14662e..b2d95c91e9 100644
--- a/firmware/drivers/audio/fiiolinux_codec.c
+++ b/firmware/drivers/audio/fiiolinux_codec.c
@@ -67,7 +67,7 @@ static void hw_close(void)
void audiohw_preinit(void)
{
- alsa_controls_init();
+ alsa_controls_init("default");
hw_open();
// NOTE:
// Of the exported controls, only these do anything:
@@ -130,7 +130,7 @@ void audiohw_set_volume(int vol_l, int vol_r)
if (!muted) {
alsa_controls_set_ints("DACL Playback Volume", 1, &vol_hw[0]);
alsa_controls_set_ints("DACR Playback Volume", 1, &vol_hw[1]);
- pcm_alsa_set_digital_volume(vol_sw[0], vol_sw[1]);
+ pcm_set_mixer_volume(vol_sw[0], vol_sw[1]);
}
}
@@ -147,13 +147,13 @@ void audiohw_mute(int mute)
{
alsa_controls_set_ints("DACL Playback Volume", 1, &vol0);
alsa_controls_set_ints("DACR Playback Volume", 1, &vol0);
- pcm_alsa_set_digital_volume(0, 0);
+ pcm_set_mixer_volume(0, 0);
}
else
{
alsa_controls_set_ints("DACL Playback Volume", 1, &vol_hw[0]);
alsa_controls_set_ints("DACR Playback Volume", 1, &vol_hw[1]);
- pcm_alsa_set_digital_volume(vol_sw[0], vol_sw[1]);
+ pcm_set_mixer_volume(vol_sw[0], vol_sw[1]);
}
}
diff --git a/firmware/drivers/audio/nwzlinux-codec.c b/firmware/drivers/audio/nwzlinux-codec.c
index ca5e274255..5085befb20 100644
--- a/firmware/drivers/audio/nwzlinux-codec.c
+++ b/firmware/drivers/audio/nwzlinux-codec.c
@@ -26,7 +26,6 @@
#include "audio.h"
#include "sound.h"
#include "audiohw.h"
-#include "cscodec.h"
#include "nwzlinux_codec.h"
#include "stdlib.h"
#include "panic.h"
@@ -313,7 +312,7 @@ void audiohw_set_playback_src(enum nwz_src_t src)
void audiohw_preinit(void)
{
- alsa_controls_init();
+ alsa_controls_init("default");
/* turn on codec */
alsa_controls_set_bool("CODEC Power Switch", true);
/* mute */
@@ -416,7 +415,7 @@ void audiohw_set_volume(int vol_l, int vol_r)
printf(" set driver volume %d (%d dB)\n", drv_vol, curve->level[drv_vol] / 10);
nwz_set_driver_vol(drv_vol);
printf(" set digital volume %d dB\n", vol / 10);
- pcm_alsa_set_digital_volume(vol / 10, vol / 10);
+ pcm_set_mixer_volume(vol / 10, vol / 10);
}
void audiohw_close(void)
diff --git a/firmware/drivers/audio/rocker_codec.c b/firmware/drivers/audio/rocker_codec.c
index b4ebdd7816..20c6e1e795 100644
--- a/firmware/drivers/audio/rocker_codec.c
+++ b/firmware/drivers/audio/rocker_codec.c
@@ -69,7 +69,7 @@ void audiohw_mute(int mute)
void audiohw_preinit(void)
{
- alsa_controls_init();
+ alsa_controls_init("debug");
hw_open();
#if defined(AUDIOHW_MUTE_ON_STOP) || defined(AUDIOHW_NEEDS_INITIAL_UNMUTE)
audiohw_mute(true); /* Start muted to avoid the POP */
diff --git a/firmware/drivers/audio/xduoolinux_codec.c b/firmware/drivers/audio/xduoolinux_codec.c
index 5452a0f5c3..3ce35aa62a 100644
--- a/firmware/drivers/audio/xduoolinux_codec.c
+++ b/firmware/drivers/audio/xduoolinux_codec.c
@@ -166,7 +166,7 @@ void xduoo_set_output(int ps)
void audiohw_preinit(void)
{
logf("hw preinit");
- alsa_controls_init();
+ alsa_controls_init("default");
hw_open();
#if defined(XDUOO_X3II)