| OLD | NEW | 
|    1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include "chromeos/dbus/cras_audio_client.h" |    5 #include "chromeos/dbus/cras_audio_client.h" | 
|    6  |    6  | 
|    7 #include "base/bind.h" |    7 #include "base/bind.h" | 
|    8 #include "base/format_macros.h" |    8 #include "base/format_macros.h" | 
|    9 #include "base/strings/stringprintf.h" |    9 #include "base/strings/stringprintf.h" | 
|   10 #include "chromeos/dbus/cras_audio_client_stub_impl.h" |   10 #include "chromeos/dbus/cras_audio_client_stub_impl.h" | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|   22  |   22  | 
|   23 // The CrasAudioClient implementation used in production. |   23 // The CrasAudioClient implementation used in production. | 
|   24 class CrasAudioClientImpl : public CrasAudioClient { |   24 class CrasAudioClientImpl : public CrasAudioClient { | 
|   25  public: |   25  public: | 
|   26   CrasAudioClientImpl() : cras_proxy_(NULL), weak_ptr_factory_(this) {} |   26   CrasAudioClientImpl() : cras_proxy_(NULL), weak_ptr_factory_(this) {} | 
|   27  |   27  | 
|   28   virtual ~CrasAudioClientImpl() { |   28   virtual ~CrasAudioClientImpl() { | 
|   29   } |   29   } | 
|   30  |   30  | 
|   31   // CrasAudioClient overrides: |   31   // CrasAudioClient overrides: | 
|   32   virtual void AddObserver(Observer* observer) OVERRIDE { |   32   virtual void AddObserver(Observer* observer) override { | 
|   33     observers_.AddObserver(observer); |   33     observers_.AddObserver(observer); | 
|   34   } |   34   } | 
|   35  |   35  | 
|   36   virtual void RemoveObserver(Observer* observer) OVERRIDE { |   36   virtual void RemoveObserver(Observer* observer) override { | 
|   37     observers_.RemoveObserver(observer); |   37     observers_.RemoveObserver(observer); | 
|   38   } |   38   } | 
|   39  |   39  | 
|   40   virtual bool HasObserver(Observer* observer) OVERRIDE { |   40   virtual bool HasObserver(Observer* observer) override { | 
|   41     return observers_.HasObserver(observer); |   41     return observers_.HasObserver(observer); | 
|   42   } |   42   } | 
|   43  |   43  | 
|   44   virtual void GetVolumeState(const GetVolumeStateCallback& callback) OVERRIDE { |   44   virtual void GetVolumeState(const GetVolumeStateCallback& callback) override { | 
|   45     dbus::MethodCall method_call(cras::kCrasControlInterface, |   45     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|   46                                  cras::kGetVolumeState); |   46                                  cras::kGetVolumeState); | 
|   47     cras_proxy_->CallMethod( |   47     cras_proxy_->CallMethod( | 
|   48         &method_call, |   48         &method_call, | 
|   49         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |   49         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|   50         base::Bind(&CrasAudioClientImpl::OnGetVolumeState, |   50         base::Bind(&CrasAudioClientImpl::OnGetVolumeState, | 
|   51                    weak_ptr_factory_.GetWeakPtr(), callback)); |   51                    weak_ptr_factory_.GetWeakPtr(), callback)); | 
|   52   } |   52   } | 
|   53  |   53  | 
|   54   virtual void GetNodes(const GetNodesCallback& callback, |   54   virtual void GetNodes(const GetNodesCallback& callback, | 
|   55                         const ErrorCallback& error_callback) OVERRIDE { |   55                         const ErrorCallback& error_callback) override { | 
|   56     dbus::MethodCall method_call(cras::kCrasControlInterface, |   56     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|   57                                  cras::kGetNodes); |   57                                  cras::kGetNodes); | 
|   58     cras_proxy_->CallMethodWithErrorCallback( |   58     cras_proxy_->CallMethodWithErrorCallback( | 
|   59         &method_call, |   59         &method_call, | 
|   60         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |   60         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|   61         base::Bind(&CrasAudioClientImpl::OnGetNodes, |   61         base::Bind(&CrasAudioClientImpl::OnGetNodes, | 
|   62                    weak_ptr_factory_.GetWeakPtr(), callback), |   62                    weak_ptr_factory_.GetWeakPtr(), callback), | 
|   63         base::Bind(&CrasAudioClientImpl::OnError, |   63         base::Bind(&CrasAudioClientImpl::OnError, | 
|   64                    weak_ptr_factory_.GetWeakPtr(), error_callback)); |   64                    weak_ptr_factory_.GetWeakPtr(), error_callback)); | 
|   65   } |   65   } | 
|   66  |   66  | 
|   67   virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) OVERRIDE { |   67   virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) override { | 
|   68     dbus::MethodCall method_call(cras::kCrasControlInterface, |   68     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|   69                                  cras::kSetOutputNodeVolume); |   69                                  cras::kSetOutputNodeVolume); | 
|   70     dbus::MessageWriter writer(&method_call); |   70     dbus::MessageWriter writer(&method_call); | 
|   71     writer.AppendUint64(node_id); |   71     writer.AppendUint64(node_id); | 
|   72     writer.AppendInt32(volume); |   72     writer.AppendInt32(volume); | 
|   73     cras_proxy_->CallMethod( |   73     cras_proxy_->CallMethod( | 
|   74         &method_call, |   74         &method_call, | 
|   75         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |   75         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|   76         dbus::ObjectProxy::EmptyResponseCallback()); |   76         dbus::ObjectProxy::EmptyResponseCallback()); | 
|   77   } |   77   } | 
|   78  |   78  | 
|   79   virtual void SetOutputUserMute(bool mute_on) OVERRIDE { |   79   virtual void SetOutputUserMute(bool mute_on) override { | 
|   80     dbus::MethodCall method_call(cras::kCrasControlInterface, |   80     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|   81                                  cras::kSetOutputUserMute); |   81                                  cras::kSetOutputUserMute); | 
|   82     dbus::MessageWriter writer(&method_call); |   82     dbus::MessageWriter writer(&method_call); | 
|   83     writer.AppendBool(mute_on); |   83     writer.AppendBool(mute_on); | 
|   84     cras_proxy_->CallMethod( |   84     cras_proxy_->CallMethod( | 
|   85         &method_call, |   85         &method_call, | 
|   86         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |   86         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|   87         dbus::ObjectProxy::EmptyResponseCallback()); |   87         dbus::ObjectProxy::EmptyResponseCallback()); | 
|   88   } |   88   } | 
|   89  |   89  | 
|   90   virtual void SetInputNodeGain(uint64 node_id, int32 input_gain) OVERRIDE { |   90   virtual void SetInputNodeGain(uint64 node_id, int32 input_gain) override { | 
|   91     dbus::MethodCall method_call(cras::kCrasControlInterface, |   91     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|   92                                  cras::kSetInputNodeGain); |   92                                  cras::kSetInputNodeGain); | 
|   93     dbus::MessageWriter writer(&method_call); |   93     dbus::MessageWriter writer(&method_call); | 
|   94     writer.AppendUint64(node_id); |   94     writer.AppendUint64(node_id); | 
|   95     writer.AppendInt32(input_gain); |   95     writer.AppendInt32(input_gain); | 
|   96     cras_proxy_->CallMethod( |   96     cras_proxy_->CallMethod( | 
|   97         &method_call, |   97         &method_call, | 
|   98         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |   98         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|   99         dbus::ObjectProxy::EmptyResponseCallback()); |   99         dbus::ObjectProxy::EmptyResponseCallback()); | 
|  100   } |  100   } | 
|  101  |  101  | 
|  102   virtual void SetInputMute(bool mute_on) OVERRIDE { |  102   virtual void SetInputMute(bool mute_on) override { | 
|  103     dbus::MethodCall method_call(cras::kCrasControlInterface, |  103     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  104                                  cras::kSetInputMute); |  104                                  cras::kSetInputMute); | 
|  105     dbus::MessageWriter writer(&method_call); |  105     dbus::MessageWriter writer(&method_call); | 
|  106     writer.AppendBool(mute_on); |  106     writer.AppendBool(mute_on); | 
|  107     cras_proxy_->CallMethod( |  107     cras_proxy_->CallMethod( | 
|  108         &method_call, |  108         &method_call, | 
|  109         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  109         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  110         dbus::ObjectProxy::EmptyResponseCallback()); |  110         dbus::ObjectProxy::EmptyResponseCallback()); | 
|  111   } |  111   } | 
|  112  |  112  | 
|  113   virtual void SetActiveOutputNode(uint64 node_id) OVERRIDE { |  113   virtual void SetActiveOutputNode(uint64 node_id) override { | 
|  114     dbus::MethodCall method_call(cras::kCrasControlInterface, |  114     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  115                                  cras::kSetActiveOutputNode); |  115                                  cras::kSetActiveOutputNode); | 
|  116     dbus::MessageWriter writer(&method_call); |  116     dbus::MessageWriter writer(&method_call); | 
|  117     writer.AppendUint64(node_id); |  117     writer.AppendUint64(node_id); | 
|  118     cras_proxy_->CallMethod( |  118     cras_proxy_->CallMethod( | 
|  119         &method_call, |  119         &method_call, | 
|  120         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  120         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  121         dbus::ObjectProxy::EmptyResponseCallback()); |  121         dbus::ObjectProxy::EmptyResponseCallback()); | 
|  122   } |  122   } | 
|  123  |  123  | 
|  124   virtual void SetActiveInputNode(uint64 node_id) OVERRIDE { |  124   virtual void SetActiveInputNode(uint64 node_id) override { | 
|  125     dbus::MethodCall method_call(cras::kCrasControlInterface, |  125     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  126                                  cras::kSetActiveInputNode); |  126                                  cras::kSetActiveInputNode); | 
|  127     dbus::MessageWriter writer(&method_call); |  127     dbus::MessageWriter writer(&method_call); | 
|  128     writer.AppendUint64(node_id); |  128     writer.AppendUint64(node_id); | 
|  129     cras_proxy_->CallMethod( |  129     cras_proxy_->CallMethod( | 
|  130         &method_call, |  130         &method_call, | 
|  131         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  131         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  132         dbus::ObjectProxy::EmptyResponseCallback()); |  132         dbus::ObjectProxy::EmptyResponseCallback()); | 
|  133   } |  133   } | 
|  134  |  134  | 
|  135   virtual void AddActiveInputNode(uint64 node_id) OVERRIDE { |  135   virtual void AddActiveInputNode(uint64 node_id) override { | 
|  136     dbus::MethodCall method_call(cras::kCrasControlInterface, |  136     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  137                                  cras::kAddActiveInputNode); |  137                                  cras::kAddActiveInputNode); | 
|  138     dbus::MessageWriter writer(&method_call); |  138     dbus::MessageWriter writer(&method_call); | 
|  139     writer.AppendUint64(node_id); |  139     writer.AppendUint64(node_id); | 
|  140     cras_proxy_->CallMethod( |  140     cras_proxy_->CallMethod( | 
|  141         &method_call, |  141         &method_call, | 
|  142         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  142         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  143         dbus::ObjectProxy::EmptyResponseCallback()); |  143         dbus::ObjectProxy::EmptyResponseCallback()); | 
|  144   } |  144   } | 
|  145  |  145  | 
|  146   virtual void RemoveActiveInputNode(uint64 node_id) OVERRIDE { |  146   virtual void RemoveActiveInputNode(uint64 node_id) override { | 
|  147     dbus::MethodCall method_call(cras::kCrasControlInterface, |  147     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  148                                  cras::kRemoveActiveInputNode); |  148                                  cras::kRemoveActiveInputNode); | 
|  149     dbus::MessageWriter writer(&method_call); |  149     dbus::MessageWriter writer(&method_call); | 
|  150     writer.AppendUint64(node_id); |  150     writer.AppendUint64(node_id); | 
|  151     cras_proxy_->CallMethod( |  151     cras_proxy_->CallMethod( | 
|  152         &method_call, |  152         &method_call, | 
|  153         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  153         dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  154         dbus::ObjectProxy::EmptyResponseCallback()); |  154         dbus::ObjectProxy::EmptyResponseCallback()); | 
|  155   } |  155   } | 
|  156  |  156  | 
|  157   virtual void AddActiveOutputNode(uint64 node_id) OVERRIDE { |  157   virtual void AddActiveOutputNode(uint64 node_id) override { | 
|  158     dbus::MethodCall method_call(cras::kCrasControlInterface, |  158     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  159                                  cras::kAddActiveOutputNode); |  159                                  cras::kAddActiveOutputNode); | 
|  160     dbus::MessageWriter writer(&method_call); |  160     dbus::MessageWriter writer(&method_call); | 
|  161     writer.AppendUint64(node_id); |  161     writer.AppendUint64(node_id); | 
|  162     cras_proxy_->CallMethod(&method_call, |  162     cras_proxy_->CallMethod(&method_call, | 
|  163                             dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  163                             dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  164                             dbus::ObjectProxy::EmptyResponseCallback()); |  164                             dbus::ObjectProxy::EmptyResponseCallback()); | 
|  165   } |  165   } | 
|  166  |  166  | 
|  167   virtual void RemoveActiveOutputNode(uint64 node_id) OVERRIDE { |  167   virtual void RemoveActiveOutputNode(uint64 node_id) override { | 
|  168     dbus::MethodCall method_call(cras::kCrasControlInterface, |  168     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  169                                  cras::kRemoveActiveOutputNode); |  169                                  cras::kRemoveActiveOutputNode); | 
|  170     dbus::MessageWriter writer(&method_call); |  170     dbus::MessageWriter writer(&method_call); | 
|  171     writer.AppendUint64(node_id); |  171     writer.AppendUint64(node_id); | 
|  172     cras_proxy_->CallMethod(&method_call, |  172     cras_proxy_->CallMethod(&method_call, | 
|  173                             dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  173                             dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  174                             dbus::ObjectProxy::EmptyResponseCallback()); |  174                             dbus::ObjectProxy::EmptyResponseCallback()); | 
|  175   } |  175   } | 
|  176  |  176  | 
|  177   virtual void SwapLeftRight(uint64 node_id, bool swap) OVERRIDE { |  177   virtual void SwapLeftRight(uint64 node_id, bool swap) override { | 
|  178     dbus::MethodCall method_call(cras::kCrasControlInterface, |  178     dbus::MethodCall method_call(cras::kCrasControlInterface, | 
|  179                                  cras::kSwapLeftRight); |  179                                  cras::kSwapLeftRight); | 
|  180     dbus::MessageWriter writer(&method_call); |  180     dbus::MessageWriter writer(&method_call); | 
|  181     writer.AppendUint64(node_id); |  181     writer.AppendUint64(node_id); | 
|  182     writer.AppendBool(swap); |  182     writer.AppendBool(swap); | 
|  183     cras_proxy_->CallMethod(&method_call, |  183     cras_proxy_->CallMethod(&method_call, | 
|  184                             dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |  184                             dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 
|  185                             dbus::ObjectProxy::EmptyResponseCallback()); |  185                             dbus::ObjectProxy::EmptyResponseCallback()); | 
|  186   } |  186   } | 
|  187  |  187  | 
|  188  protected: |  188  protected: | 
|  189   virtual void Init(dbus::Bus* bus) OVERRIDE { |  189   virtual void Init(dbus::Bus* bus) override { | 
|  190     cras_proxy_ = bus->GetObjectProxy(cras::kCrasServiceName, |  190     cras_proxy_ = bus->GetObjectProxy(cras::kCrasServiceName, | 
|  191                                       dbus::ObjectPath(cras::kCrasServicePath)); |  191                                       dbus::ObjectPath(cras::kCrasServicePath)); | 
|  192  |  192  | 
|  193     // Monitor NameOwnerChanged signal. |  193     // Monitor NameOwnerChanged signal. | 
|  194     cras_proxy_->SetNameOwnerChangedCallback( |  194     cras_proxy_->SetNameOwnerChangedCallback( | 
|  195         base::Bind(&CrasAudioClientImpl::NameOwnerChangedReceived, |  195         base::Bind(&CrasAudioClientImpl::NameOwnerChangedReceived, | 
|  196                    weak_ptr_factory_.GetWeakPtr())); |  196                    weak_ptr_factory_.GetWeakPtr())); | 
|  197  |  197  | 
|  198     // Monitor the D-Bus signal for output mute change. |  198     // Monitor the D-Bus signal for output mute change. | 
|  199     cras_proxy_->ConnectToSignal( |  199     cras_proxy_->ConnectToSignal( | 
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  452  |  452  | 
|  453 CrasAudioClient::~CrasAudioClient() { |  453 CrasAudioClient::~CrasAudioClient() { | 
|  454 } |  454 } | 
|  455  |  455  | 
|  456 // static |  456 // static | 
|  457 CrasAudioClient* CrasAudioClient::Create() { |  457 CrasAudioClient* CrasAudioClient::Create() { | 
|  458   return new CrasAudioClientImpl(); |  458   return new CrasAudioClientImpl(); | 
|  459 } |  459 } | 
|  460  |  460  | 
|  461 }  // namespace chromeos |  461 }  // namespace chromeos | 
| OLD | NEW |