diff options
Diffstat (limited to 'chromeos/audio')
-rw-r--r-- | chromeos/audio/cras_audio_handler.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/chromeos/audio/cras_audio_handler.cc b/chromeos/audio/cras_audio_handler.cc index f6ae05a..c6d92ec 100644 --- a/chromeos/audio/cras_audio_handler.cc +++ b/chromeos/audio/cras_audio_handler.cc @@ -399,8 +399,8 @@ void CrasAudioHandler::SetupAudioInputState() { void CrasAudioHandler::SetupAudioOutputState() { const AudioDevice* device = GetDeviceFromId(active_output_node_id_); if (!device) { - LOG(ERROR) << "Can't set up audio state for unknow output device id =" - << "0x" << std::hex << active_output_node_id_; + LOG(ERROR) << "Can't set up audio state for unknow output device id =" + << "0x" << std::hex << active_output_node_id_; return; } output_mute_on_ = audio_pref_handler_->GetMuteValue(*device); @@ -417,8 +417,14 @@ void CrasAudioHandler::InitializeAudioState() { void CrasAudioHandler::ApplyAudioPolicy() { output_mute_locked_ = false; if (!audio_pref_handler_->GetAudioOutputAllowedValue()) { - SetOutputMute(true); + // Mute the device, but do not update the preference. + SetOutputMuteInternal(true); output_mute_locked_ = true; + } else { + // Restore the mute state. + const AudioDevice* device = GetDeviceFromId(active_output_node_id_); + if (device) + SetOutputMuteInternal(audio_pref_handler_->GetMuteValue(*device)); } input_mute_locked_ = false; |