diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-10-12 09:29:21 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-12 13:40:37 +0000 |
commit | 141e91ef1fc5ce6c487988c29c00e57fa6e52fb6 (patch) | |
tree | 96a29cb38a833565e099ce3b00016bb653695699 /firmware/drivers/audio/xduoolinux_codec.c | |
parent | 9ad30869b86dd827fbbf56a67122d662a51514f5 (diff) | |
download | rockbox-141e91ef1fc5ce6c487988c29c00e57fa6e52fb6.tar.gz rockbox-141e91ef1fc5ce6c487988c29c00e57fa6e52fb6.zip |
Hosted PCM: Rework auto-muting code a bit
* If AUDIOHW_MUTE_ON_PAUSE, no meaningful change
* Unconditionally unmute on playback start
* xduoox3ii: Mute on sample rate change
* rocker/xduoo: Stay muted after startup
This avoids the nasty "pop" on startup, without doing
the full mute-on-pause stuff that causes unacceptable
dropouts on the X3ii.
Change-Id: I2e3ee0bb8094e288f37a0acada86a80016ce5cac
Diffstat (limited to 'firmware/drivers/audio/xduoolinux_codec.c')
-rw-r--r-- | firmware/drivers/audio/xduoolinux_codec.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/firmware/drivers/audio/xduoolinux_codec.c b/firmware/drivers/audio/xduoolinux_codec.c index b114b1bbc9..59ef562d0a 100644 --- a/firmware/drivers/audio/xduoolinux_codec.c +++ b/firmware/drivers/audio/xduoolinux_codec.c @@ -55,6 +55,8 @@ static void hw_close(void) close(fd_hw); } +static int muted = -1; + void audiohw_mute(int mute) { logf("mute %d", mute); @@ -69,6 +71,7 @@ void audiohw_mute(int mute) last_ps = 0; xduoo_get_outputs(); } + muted = mute; } int xduoo_get_outputs(void){ @@ -102,7 +105,7 @@ int xduoo_get_outputs(void){ void xduoo_set_output(int ps) { - if (!inited) return; + if (!inited || muted) return; if (last_ps != ps) { @@ -128,7 +131,7 @@ void audiohw_postinit(void) // const char * const codec_pmdown = "/sys/devices/platform/ingenic-x3ii.0/x3ii-ak4490-i2s/pmdown_time"; // in ms, defaults 5000 logf("hw postinit"); - xduoo_set_output(xduoo_get_outputs()); /* Unmute */ + // xduoo_get_outputs(); // Unmute happens upon playback. } void audiohw_close(void) |