From 6d84e25c26ee33424552e36fe05b7724cbe0a676 Mon Sep 17 00:00:00 2001 From: "jennyz@chromium.org" Date: Sat, 29 Jun 2013 13:24:19 +0000 Subject: Integrate cras audio dbus api changes for transiting from SetOyutputMute to SetOutputUserMute into chrome. BUG=244597 Review URL: https://chromiumcodereview.appspot.com/18224003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209294 0039d316-1c4b-4281-b951-d872f2087c98 --- chromeos/audio/cras_audio_handler.cc | 2 +- chromeos/dbus/cras_audio_client.cc | 23 +++++++++++++---------- chromeos/dbus/cras_audio_client.h | 4 ++-- chromeos/dbus/volume_state.cc | 16 ++++++++-------- chromeos/dbus/volume_state.h | 3 ++- 5 files changed, 26 insertions(+), 22 deletions(-) diff --git a/chromeos/audio/cras_audio_handler.cc b/chromeos/audio/cras_audio_handler.cc index 9e1a892..b94c1c5 100644 --- a/chromeos/audio/cras_audio_handler.cc +++ b/chromeos/audio/cras_audio_handler.cc @@ -458,7 +458,7 @@ bool CrasAudioHandler::SetOutputMuteInternal(bool mute_on) { return false; chromeos::DBusThreadManager::Get()->GetCrasAudioClient()-> - SetOutputMute(mute_on); + SetOutputUserMute(mute_on); return true; } diff --git a/chromeos/dbus/cras_audio_client.cc b/chromeos/dbus/cras_audio_client.cc index ec20ea7..15aa5e4 100644 --- a/chromeos/dbus/cras_audio_client.cc +++ b/chromeos/dbus/cras_audio_client.cc @@ -139,9 +139,9 @@ class CrasAudioClientImpl : public CrasAudioClient { dbus::ObjectProxy::EmptyResponseCallback()); } - virtual void SetOutputMute(bool mute_on) OVERRIDE { + virtual void SetOutputUserMute(bool mute_on) OVERRIDE { dbus::MethodCall method_call(cras::kCrasControlInterface, - cras::kSetOutputMute); + cras::kSetOutputUserMute); dbus::MessageWriter writer(&method_call); writer.AppendBool(mute_on); cras_proxy_->CallMethod( @@ -220,13 +220,15 @@ class CrasAudioClientImpl : public CrasAudioClient { // Called when a OutputMuteChanged signal is received. void OutputMuteChangedReceived(dbus::Signal* signal) { + // Chrome should always call SetOutputUserMute api to set the output + // mute state and monitor user_mute state from OutputMuteChanged signal. dbus::MessageReader reader(signal); - bool mute; - if (!reader.PopBool(&mute)) { + bool system_mute, user_mute; + if (!reader.PopBool(&system_mute) || !reader.PopBool(&user_mute)) { LOG(ERROR) << "Error reading signal from cras:" << signal->ToString(); } - FOR_EACH_OBSERVER(Observer, observers_, OutputMuteChanged(mute)); + FOR_EACH_OBSERVER(Observer, observers_, OutputMuteChanged(user_mute)); } // Called when a InputGainChanged signal is received. @@ -282,9 +284,10 @@ class CrasAudioClientImpl : public CrasAudioClient { if (response) { dbus::MessageReader reader(response); if (!reader.PopInt32(&volume_state.output_volume) || - !reader.PopBool(&volume_state.output_mute) || + !reader.PopBool(&volume_state.output_system_mute) || !reader.PopInt32(&volume_state.input_gain) || - !reader.PopBool(&volume_state.input_mute)) { + !reader.PopBool(&volume_state.input_mute) || + !reader.PopBool(&volume_state.output_user_mute)) { success = false; LOG(ERROR) << "Error reading response from cras: " << response->ToString(); @@ -469,11 +472,11 @@ class CrasAudioClientStubImpl : public CrasAudioClient { OutputVolumeChanged(volume_state_.output_volume)); } - virtual void SetOutputMute(bool mute_on) OVERRIDE { - volume_state_.output_mute = mute_on; + virtual void SetOutputUserMute(bool mute_on) OVERRIDE { + volume_state_.output_user_mute = mute_on; FOR_EACH_OBSERVER(Observer, observers_, - OutputMuteChanged(volume_state_.output_mute)); + OutputMuteChanged(volume_state_.output_user_mute)); } virtual void SetInputGain(int32 input_gain) OVERRIDE { diff --git a/chromeos/dbus/cras_audio_client.h b/chromeos/dbus/cras_audio_client.h index 4ca0fea..20d3e86 100644 --- a/chromeos/dbus/cras_audio_client.h +++ b/chromeos/dbus/cras_audio_client.h @@ -81,8 +81,8 @@ class CHROMEOS_EXPORT CrasAudioClient { // Sets output volume to |volume|, in the range of [0, 100]. virtual void SetOutputVolume(int32 volume) = 0; - // Sets output mute state to |mute_on| value. - virtual void SetOutputMute(bool mute_on) = 0; + // Sets output mute from user action. + virtual void SetOutputUserMute(bool mute_on) = 0; // Sets input gain to |input_gain|. |input_gain| is specified in dBFS * 100. virtual void SetInputGain(int32 input_gain) = 0; diff --git a/chromeos/dbus/volume_state.cc b/chromeos/dbus/volume_state.cc index 7961520..9f105c4 100644 --- a/chromeos/dbus/volume_state.cc +++ b/chromeos/dbus/volume_state.cc @@ -11,9 +11,10 @@ namespace chromeos { VolumeState::VolumeState() : output_volume(0), - output_mute(false), + output_system_mute(false), input_gain(0), - input_mute(false) { + input_mute(false), + output_user_mute(false) { } std::string VolumeState::ToString() const { @@ -22,18 +23,17 @@ std::string VolumeState::ToString() const { "output_volume = %d ", output_volume); base::StringAppendF(&result, - "output_mute = %s ", - output_mute ? "true" : "false"); - base::StringAppendF(&result, - "output_mute = %s ", - output_mute ? "true" : "false"); + "output_system_mute = %s ", + output_system_mute ? "true" : "false"); base::StringAppendF(&result, "input_gain = %d ", input_gain); base::StringAppendF(&result, "input_mute = %s ", input_mute ? "true" : "false"); - + base::StringAppendF(&result, + "output_user_mute = %s ", + output_user_mute ? "true" : "false"); return result; } diff --git a/chromeos/dbus/volume_state.h b/chromeos/dbus/volume_state.h index 7fafd6e..0d0a305 100644 --- a/chromeos/dbus/volume_state.h +++ b/chromeos/dbus/volume_state.h @@ -14,9 +14,10 @@ namespace chromeos { struct CHROMEOS_EXPORT VolumeState { int32 output_volume; - bool output_mute; + bool output_system_mute; int32 input_gain; bool input_mute; + bool output_user_mute; VolumeState(); std::string ToString() const; -- cgit v1.1