1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Solomon Peachy 2020-10-12 09:29:21 -04:00
parent 9ad30869b8
commit 141e91ef1f
5 changed files with 44 additions and 22 deletions

View file

@ -56,6 +56,8 @@ static void hw_close(void)
close(fd_hw);
}
static int muted = -1;
void audiohw_mute(int mute)
{
logf("mute %d", mute);
@ -70,6 +72,7 @@ void audiohw_mute(int mute)
last_ps = 0;
erosq_get_outputs();
}
muted = mute;
}
int erosq_get_outputs(void) {
@ -95,7 +98,7 @@ int erosq_get_outputs(void) {
void erosq_set_output(int ps)
{
if (!inited) return;
if (!inited || muted) return;
if (last_ps != ps)
{
@ -119,7 +122,7 @@ void audiohw_preinit(void)
void audiohw_postinit(void)
{
logf("hw postinit");
erosq_set_output(erosq_get_outputs()); /* Unmute */
erosq_get_outputs(); // Unmutes
}
void audiohw_close(void)