diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | src/output/OutputCommand.cxx | 8 |
2 files changed, 10 insertions, 0 deletions
@@ -5,6 +5,8 @@ ver 0.19.11 (not yet released) - ffmpeg: fix crash due to wrong avio_alloc_context() call * encoder - flac: fix crash with 32 bit playback +* mixer + - fix mixer lag after enabling/disabling output ver 0.19.10 (2015/06/21) * input diff --git a/src/output/OutputCommand.cxx b/src/output/OutputCommand.cxx index 6afb70cf1..e6b8a8e7f 100644 --- a/src/output/OutputCommand.cxx +++ b/src/output/OutputCommand.cxx @@ -30,6 +30,7 @@ #include "Internal.hxx" #include "PlayerControl.hxx" #include "mixer/MixerControl.hxx" +#include "mixer/Volume.hxx" #include "Idle.hxx" extern unsigned audio_output_state_version; @@ -47,6 +48,11 @@ audio_output_enable_index(MultipleOutputs &outputs, unsigned idx) ao.enabled = true; idle_add(IDLE_OUTPUT); + if (ao.mixer != nullptr) { + InvalidateHardwareVolume(); + idle_add(IDLE_MIXER); + } + ao.player_control->UpdateAudio(); ++audio_output_state_version; @@ -70,6 +76,7 @@ audio_output_disable_index(MultipleOutputs &outputs, unsigned idx) Mixer *mixer = ao.mixer; if (mixer != nullptr) { mixer_close(mixer); + InvalidateHardwareVolume(); idle_add(IDLE_MIXER); } @@ -94,6 +101,7 @@ audio_output_toggle_index(MultipleOutputs &outputs, unsigned idx) Mixer *mixer = ao.mixer; if (mixer != nullptr) { mixer_close(mixer); + InvalidateHardwareVolume(); idle_add(IDLE_MIXER); } } |