diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2018-02-19 16:28:11 +1100 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-31 14:16:31 +0000 |
commit | dd82f13fa1241266576b508180fcf90b8d9bda2c (patch) | |
tree | cdae2331353e4f85a296782b14001d021923ddfc /firmware/drivers/audio | |
parent | ce9e7e712238dc69a825a49f4f226ff47fbbff69 (diff) | |
download | rockbox-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.c | 2 | ||||
-rw-r--r-- | firmware/drivers/audio/fiiolinux_codec.c | 8 | ||||
-rw-r--r-- | firmware/drivers/audio/nwzlinux-codec.c | 5 | ||||
-rw-r--r-- | firmware/drivers/audio/rocker_codec.c | 2 | ||||
-rw-r--r-- | firmware/drivers/audio/xduoolinux_codec.c | 2 |
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) |