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:
parent
9ad30869b8
commit
141e91ef1f
5 changed files with 44 additions and 22 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue