| 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 <stdint.h> |
| 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/format_macros.h" | 10 #include "base/format_macros.h" |
| 11 #include "base/macros.h" |
| 9 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 10 #include "dbus/bus.h" | 13 #include "dbus/bus.h" |
| 11 #include "dbus/message.h" | 14 #include "dbus/message.h" |
| 12 #include "dbus/object_path.h" | 15 #include "dbus/object_path.h" |
| 13 #include "dbus/object_proxy.h" | 16 #include "dbus/object_proxy.h" |
| 14 #include "third_party/cros_system_api/dbus/service_constants.h" | 17 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 15 | 18 |
| 16 namespace chromeos { | 19 namespace chromeos { |
| 17 | 20 |
| 18 // Error name if cras dbus call fails with empty ErrorResponse. | 21 // Error name if cras dbus call fails with empty ErrorResponse. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 cras::kGetNodes); | 58 cras::kGetNodes); |
| 56 cras_proxy_->CallMethodWithErrorCallback( | 59 cras_proxy_->CallMethodWithErrorCallback( |
| 57 &method_call, | 60 &method_call, |
| 58 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 61 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 59 base::Bind(&CrasAudioClientImpl::OnGetNodes, | 62 base::Bind(&CrasAudioClientImpl::OnGetNodes, |
| 60 weak_ptr_factory_.GetWeakPtr(), callback), | 63 weak_ptr_factory_.GetWeakPtr(), callback), |
| 61 base::Bind(&CrasAudioClientImpl::OnError, | 64 base::Bind(&CrasAudioClientImpl::OnError, |
| 62 weak_ptr_factory_.GetWeakPtr(), error_callback)); | 65 weak_ptr_factory_.GetWeakPtr(), error_callback)); |
| 63 } | 66 } |
| 64 | 67 |
| 65 void SetOutputNodeVolume(uint64 node_id, int32 volume) override { | 68 void SetOutputNodeVolume(uint64_t node_id, int32_t volume) override { |
| 66 dbus::MethodCall method_call(cras::kCrasControlInterface, | 69 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 67 cras::kSetOutputNodeVolume); | 70 cras::kSetOutputNodeVolume); |
| 68 dbus::MessageWriter writer(&method_call); | 71 dbus::MessageWriter writer(&method_call); |
| 69 writer.AppendUint64(node_id); | 72 writer.AppendUint64(node_id); |
| 70 writer.AppendInt32(volume); | 73 writer.AppendInt32(volume); |
| 71 cras_proxy_->CallMethod( | 74 cras_proxy_->CallMethod( |
| 72 &method_call, | 75 &method_call, |
| 73 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 76 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 74 dbus::ObjectProxy::EmptyResponseCallback()); | 77 dbus::ObjectProxy::EmptyResponseCallback()); |
| 75 } | 78 } |
| 76 | 79 |
| 77 void SetOutputUserMute(bool mute_on) override { | 80 void SetOutputUserMute(bool mute_on) override { |
| 78 dbus::MethodCall method_call(cras::kCrasControlInterface, | 81 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 79 cras::kSetOutputUserMute); | 82 cras::kSetOutputUserMute); |
| 80 dbus::MessageWriter writer(&method_call); | 83 dbus::MessageWriter writer(&method_call); |
| 81 writer.AppendBool(mute_on); | 84 writer.AppendBool(mute_on); |
| 82 cras_proxy_->CallMethod( | 85 cras_proxy_->CallMethod( |
| 83 &method_call, | 86 &method_call, |
| 84 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 87 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 85 dbus::ObjectProxy::EmptyResponseCallback()); | 88 dbus::ObjectProxy::EmptyResponseCallback()); |
| 86 } | 89 } |
| 87 | 90 |
| 88 void SetInputNodeGain(uint64 node_id, int32 input_gain) override { | 91 void SetInputNodeGain(uint64_t node_id, int32_t input_gain) override { |
| 89 dbus::MethodCall method_call(cras::kCrasControlInterface, | 92 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 90 cras::kSetInputNodeGain); | 93 cras::kSetInputNodeGain); |
| 91 dbus::MessageWriter writer(&method_call); | 94 dbus::MessageWriter writer(&method_call); |
| 92 writer.AppendUint64(node_id); | 95 writer.AppendUint64(node_id); |
| 93 writer.AppendInt32(input_gain); | 96 writer.AppendInt32(input_gain); |
| 94 cras_proxy_->CallMethod( | 97 cras_proxy_->CallMethod( |
| 95 &method_call, | 98 &method_call, |
| 96 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 99 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 97 dbus::ObjectProxy::EmptyResponseCallback()); | 100 dbus::ObjectProxy::EmptyResponseCallback()); |
| 98 } | 101 } |
| 99 | 102 |
| 100 void SetInputMute(bool mute_on) override { | 103 void SetInputMute(bool mute_on) override { |
| 101 dbus::MethodCall method_call(cras::kCrasControlInterface, | 104 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 102 cras::kSetInputMute); | 105 cras::kSetInputMute); |
| 103 dbus::MessageWriter writer(&method_call); | 106 dbus::MessageWriter writer(&method_call); |
| 104 writer.AppendBool(mute_on); | 107 writer.AppendBool(mute_on); |
| 105 cras_proxy_->CallMethod( | 108 cras_proxy_->CallMethod( |
| 106 &method_call, | 109 &method_call, |
| 107 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 110 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 108 dbus::ObjectProxy::EmptyResponseCallback()); | 111 dbus::ObjectProxy::EmptyResponseCallback()); |
| 109 } | 112 } |
| 110 | 113 |
| 111 void SetActiveOutputNode(uint64 node_id) override { | 114 void SetActiveOutputNode(uint64_t node_id) override { |
| 112 dbus::MethodCall method_call(cras::kCrasControlInterface, | 115 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 113 cras::kSetActiveOutputNode); | 116 cras::kSetActiveOutputNode); |
| 114 dbus::MessageWriter writer(&method_call); | 117 dbus::MessageWriter writer(&method_call); |
| 115 writer.AppendUint64(node_id); | 118 writer.AppendUint64(node_id); |
| 116 cras_proxy_->CallMethod( | 119 cras_proxy_->CallMethod( |
| 117 &method_call, | 120 &method_call, |
| 118 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 121 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 119 dbus::ObjectProxy::EmptyResponseCallback()); | 122 dbus::ObjectProxy::EmptyResponseCallback()); |
| 120 } | 123 } |
| 121 | 124 |
| 122 void SetActiveInputNode(uint64 node_id) override { | 125 void SetActiveInputNode(uint64_t node_id) override { |
| 123 dbus::MethodCall method_call(cras::kCrasControlInterface, | 126 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 124 cras::kSetActiveInputNode); | 127 cras::kSetActiveInputNode); |
| 125 dbus::MessageWriter writer(&method_call); | 128 dbus::MessageWriter writer(&method_call); |
| 126 writer.AppendUint64(node_id); | 129 writer.AppendUint64(node_id); |
| 127 cras_proxy_->CallMethod( | 130 cras_proxy_->CallMethod( |
| 128 &method_call, | 131 &method_call, |
| 129 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 132 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 130 dbus::ObjectProxy::EmptyResponseCallback()); | 133 dbus::ObjectProxy::EmptyResponseCallback()); |
| 131 } | 134 } |
| 132 | 135 |
| 133 void AddActiveInputNode(uint64 node_id) override { | 136 void AddActiveInputNode(uint64_t node_id) override { |
| 134 dbus::MethodCall method_call(cras::kCrasControlInterface, | 137 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 135 cras::kAddActiveInputNode); | 138 cras::kAddActiveInputNode); |
| 136 dbus::MessageWriter writer(&method_call); | 139 dbus::MessageWriter writer(&method_call); |
| 137 writer.AppendUint64(node_id); | 140 writer.AppendUint64(node_id); |
| 138 cras_proxy_->CallMethod( | 141 cras_proxy_->CallMethod( |
| 139 &method_call, | 142 &method_call, |
| 140 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 143 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 141 dbus::ObjectProxy::EmptyResponseCallback()); | 144 dbus::ObjectProxy::EmptyResponseCallback()); |
| 142 } | 145 } |
| 143 | 146 |
| 144 void RemoveActiveInputNode(uint64 node_id) override { | 147 void RemoveActiveInputNode(uint64_t node_id) override { |
| 145 dbus::MethodCall method_call(cras::kCrasControlInterface, | 148 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 146 cras::kRemoveActiveInputNode); | 149 cras::kRemoveActiveInputNode); |
| 147 dbus::MessageWriter writer(&method_call); | 150 dbus::MessageWriter writer(&method_call); |
| 148 writer.AppendUint64(node_id); | 151 writer.AppendUint64(node_id); |
| 149 cras_proxy_->CallMethod( | 152 cras_proxy_->CallMethod( |
| 150 &method_call, | 153 &method_call, |
| 151 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 154 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 152 dbus::ObjectProxy::EmptyResponseCallback()); | 155 dbus::ObjectProxy::EmptyResponseCallback()); |
| 153 } | 156 } |
| 154 | 157 |
| 155 void AddActiveOutputNode(uint64 node_id) override { | 158 void AddActiveOutputNode(uint64_t node_id) override { |
| 156 dbus::MethodCall method_call(cras::kCrasControlInterface, | 159 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 157 cras::kAddActiveOutputNode); | 160 cras::kAddActiveOutputNode); |
| 158 dbus::MessageWriter writer(&method_call); | 161 dbus::MessageWriter writer(&method_call); |
| 159 writer.AppendUint64(node_id); | 162 writer.AppendUint64(node_id); |
| 160 cras_proxy_->CallMethod(&method_call, | 163 cras_proxy_->CallMethod(&method_call, |
| 161 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 164 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 162 dbus::ObjectProxy::EmptyResponseCallback()); | 165 dbus::ObjectProxy::EmptyResponseCallback()); |
| 163 } | 166 } |
| 164 | 167 |
| 165 void RemoveActiveOutputNode(uint64 node_id) override { | 168 void RemoveActiveOutputNode(uint64_t node_id) override { |
| 166 dbus::MethodCall method_call(cras::kCrasControlInterface, | 169 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 167 cras::kRemoveActiveOutputNode); | 170 cras::kRemoveActiveOutputNode); |
| 168 dbus::MessageWriter writer(&method_call); | 171 dbus::MessageWriter writer(&method_call); |
| 169 writer.AppendUint64(node_id); | 172 writer.AppendUint64(node_id); |
| 170 cras_proxy_->CallMethod(&method_call, | 173 cras_proxy_->CallMethod(&method_call, |
| 171 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 174 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 172 dbus::ObjectProxy::EmptyResponseCallback()); | 175 dbus::ObjectProxy::EmptyResponseCallback()); |
| 173 } | 176 } |
| 174 | 177 |
| 175 void SwapLeftRight(uint64 node_id, bool swap) override { | 178 void SwapLeftRight(uint64_t node_id, bool swap) override { |
| 176 dbus::MethodCall method_call(cras::kCrasControlInterface, | 179 dbus::MethodCall method_call(cras::kCrasControlInterface, |
| 177 cras::kSwapLeftRight); | 180 cras::kSwapLeftRight); |
| 178 dbus::MessageWriter writer(&method_call); | 181 dbus::MessageWriter writer(&method_call); |
| 179 writer.AppendUint64(node_id); | 182 writer.AppendUint64(node_id); |
| 180 writer.AppendBool(swap); | 183 writer.AppendBool(swap); |
| 181 cras_proxy_->CallMethod(&method_call, | 184 cras_proxy_->CallMethod(&method_call, |
| 182 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 185 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 183 dbus::ObjectProxy::EmptyResponseCallback()); | 186 dbus::ObjectProxy::EmptyResponseCallback()); |
| 184 } | 187 } |
| 185 | 188 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 } | 279 } |
| 277 FOR_EACH_OBSERVER(Observer, observers_, InputMuteChanged(mute)); | 280 FOR_EACH_OBSERVER(Observer, observers_, InputMuteChanged(mute)); |
| 278 } | 281 } |
| 279 | 282 |
| 280 void NodesChangedReceived(dbus::Signal* signal) { | 283 void NodesChangedReceived(dbus::Signal* signal) { |
| 281 FOR_EACH_OBSERVER(Observer, observers_, NodesChanged()); | 284 FOR_EACH_OBSERVER(Observer, observers_, NodesChanged()); |
| 282 } | 285 } |
| 283 | 286 |
| 284 void ActiveOutputNodeChangedReceived(dbus::Signal* signal) { | 287 void ActiveOutputNodeChangedReceived(dbus::Signal* signal) { |
| 285 dbus::MessageReader reader(signal); | 288 dbus::MessageReader reader(signal); |
| 286 uint64 node_id; | 289 uint64_t node_id; |
| 287 if (!reader.PopUint64(&node_id)) { | 290 if (!reader.PopUint64(&node_id)) { |
| 288 LOG(ERROR) << "Error reading signal from cras:" | 291 LOG(ERROR) << "Error reading signal from cras:" |
| 289 << signal->ToString(); | 292 << signal->ToString(); |
| 290 } | 293 } |
| 291 FOR_EACH_OBSERVER(Observer, observers_, ActiveOutputNodeChanged(node_id)); | 294 FOR_EACH_OBSERVER(Observer, observers_, ActiveOutputNodeChanged(node_id)); |
| 292 } | 295 } |
| 293 | 296 |
| 294 void ActiveInputNodeChangedReceived(dbus::Signal* signal) { | 297 void ActiveInputNodeChangedReceived(dbus::Signal* signal) { |
| 295 dbus::MessageReader reader(signal); | 298 dbus::MessageReader reader(signal); |
| 296 uint64 node_id; | 299 uint64_t node_id; |
| 297 if (!reader.PopUint64(&node_id)) { | 300 if (!reader.PopUint64(&node_id)) { |
| 298 LOG(ERROR) << "Error reading signal from cras:" | 301 LOG(ERROR) << "Error reading signal from cras:" |
| 299 << signal->ToString(); | 302 << signal->ToString(); |
| 300 } | 303 } |
| 301 FOR_EACH_OBSERVER(Observer, observers_, ActiveInputNodeChanged(node_id)); | 304 FOR_EACH_OBSERVER(Observer, observers_, ActiveInputNodeChanged(node_id)); |
| 302 } | 305 } |
| 303 | 306 |
| 304 void OnGetVolumeState(const GetVolumeStateCallback& callback, | 307 void OnGetVolumeState(const GetVolumeStateCallback& callback, |
| 305 dbus::Response* response) { | 308 dbus::Response* response) { |
| 306 bool success = true; | 309 bool success = true; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 | 438 |
| 436 void CrasAudioClient::Observer::OutputMuteChanged(bool mute_on) { | 439 void CrasAudioClient::Observer::OutputMuteChanged(bool mute_on) { |
| 437 } | 440 } |
| 438 | 441 |
| 439 void CrasAudioClient::Observer::InputMuteChanged(bool mute_on) { | 442 void CrasAudioClient::Observer::InputMuteChanged(bool mute_on) { |
| 440 } | 443 } |
| 441 | 444 |
| 442 void CrasAudioClient::Observer::NodesChanged() { | 445 void CrasAudioClient::Observer::NodesChanged() { |
| 443 } | 446 } |
| 444 | 447 |
| 445 void CrasAudioClient::Observer::ActiveOutputNodeChanged(uint64 node_id){ | 448 void CrasAudioClient::Observer::ActiveOutputNodeChanged(uint64_t node_id) {} |
| 446 } | |
| 447 | 449 |
| 448 void CrasAudioClient::Observer::ActiveInputNodeChanged(uint64 node_id) { | 450 void CrasAudioClient::Observer::ActiveInputNodeChanged(uint64_t node_id) {} |
| 449 } | |
| 450 | 451 |
| 451 CrasAudioClient::CrasAudioClient() { | 452 CrasAudioClient::CrasAudioClient() { |
| 452 } | 453 } |
| 453 | 454 |
| 454 CrasAudioClient::~CrasAudioClient() { | 455 CrasAudioClient::~CrasAudioClient() { |
| 455 } | 456 } |
| 456 | 457 |
| 457 // static | 458 // static |
| 458 CrasAudioClient* CrasAudioClient::Create() { | 459 CrasAudioClient* CrasAudioClient::Create() { |
| 459 return new CrasAudioClientImpl(); | 460 return new CrasAudioClientImpl(); |
| 460 } | 461 } |
| 461 | 462 |
| 462 } // namespace chromeos | 463 } // namespace chromeos |
| OLD | NEW |