OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/audio_dsp_client.h" | 5 #include "chromeos/dbus/audio_dsp_client.h" |
6 | 6 |
| 7 #include <stdint.h> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/macros.h" |
8 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
9 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
10 #include "base/observer_list.h" | 13 #include "base/observer_list.h" |
11 #include "dbus/bus.h" | 14 #include "dbus/bus.h" |
12 #include "dbus/message.h" | 15 #include "dbus/message.h" |
13 #include "dbus/object_path.h" | 16 #include "dbus/object_path.h" |
14 #include "dbus/object_proxy.h" | 17 #include "dbus/object_proxy.h" |
15 | 18 |
16 namespace chromeos { | 19 namespace chromeos { |
17 namespace { | 20 namespace { |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 const VoidDBusMethodCallback& callback) override; | 127 const VoidDBusMethodCallback& callback) override; |
125 void SetNightMode(bool standby, | 128 void SetNightMode(bool standby, |
126 const VoidDBusMethodCallback& callback) override; | 129 const VoidDBusMethodCallback& callback) override; |
127 void GetNightMode(const BoolDBusMethodCallback& callback) override; | 130 void GetNightMode(const BoolDBusMethodCallback& callback) override; |
128 void SetTreble(double db_fs, const VoidDBusMethodCallback& callback) override; | 131 void SetTreble(double db_fs, const VoidDBusMethodCallback& callback) override; |
129 void GetTreble(const DoubleDBusMethodCallback& callback) override; | 132 void GetTreble(const DoubleDBusMethodCallback& callback) override; |
130 void SetBass(double db_fs, const VoidDBusMethodCallback& callback) override; | 133 void SetBass(double db_fs, const VoidDBusMethodCallback& callback) override; |
131 void GetBass(const DoubleDBusMethodCallback& callback) override; | 134 void GetBass(const DoubleDBusMethodCallback& callback) override; |
132 void GetCapabilitiesOEM( | 135 void GetCapabilitiesOEM( |
133 const ThreeStringDBusMethodCallback& callback) override; | 136 const ThreeStringDBusMethodCallback& callback) override; |
134 void SetCapabilitiesOEM(uint32 speaker_id, | 137 void SetCapabilitiesOEM(uint32_t speaker_id, |
135 const std::string& speaker_capabilities, | 138 const std::string& speaker_capabilities, |
136 const std::string& driver_capabilities, | 139 const std::string& driver_capabilities, |
137 const VoidDBusMethodCallback& callback) override; | 140 const VoidDBusMethodCallback& callback) override; |
138 void GetFilterConfigOEM(uint32 speaker_id, | 141 void GetFilterConfigOEM(uint32_t speaker_id, |
139 const TwoStringDBusMethodCallback& callback) override; | 142 const TwoStringDBusMethodCallback& callback) override; |
140 void SetFilterConfigOEM(const std::string& speaker_config, | 143 void SetFilterConfigOEM(const std::string& speaker_config, |
141 const std::string& driver_config, | 144 const std::string& driver_config, |
142 const VoidDBusMethodCallback& callback) override; | 145 const VoidDBusMethodCallback& callback) override; |
143 void SetSourceType(uint16 source_type, | 146 void SetSourceType(uint16_t source_type, |
144 const VoidDBusMethodCallback& callback) override; | 147 const VoidDBusMethodCallback& callback) override; |
145 void AmplifierVolumeChanged(double db_spl, | 148 void AmplifierVolumeChanged(double db_spl, |
146 const VoidDBusMethodCallback& callback) override; | 149 const VoidDBusMethodCallback& callback) override; |
147 | 150 |
148 private: | 151 private: |
149 // Handles Error signal and notifies |observers_|. | 152 // Handles Error signal and notifies |observers_|. |
150 void OnError(dbus::Signal* signal); | 153 void OnError(dbus::Signal* signal); |
151 | 154 |
152 // Handles the result of signal connection setup. | 155 // Handles the result of signal connection setup. |
153 void OnSignalConnected(const std::string& interface, | 156 void OnSignalConnected(const std::string& interface, |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 const ThreeStringDBusMethodCallback& callback) { | 283 const ThreeStringDBusMethodCallback& callback) { |
281 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, | 284 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, |
282 audio_dsp::kGetCapabilitiesOEMMethod); | 285 audio_dsp::kGetCapabilitiesOEMMethod); |
283 dbus::MessageWriter writer(&method_call); | 286 dbus::MessageWriter writer(&method_call); |
284 DCHECK(proxy_); | 287 DCHECK(proxy_); |
285 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 288 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
286 base::Bind(&OnThreeStringDBusMethod, callback)); | 289 base::Bind(&OnThreeStringDBusMethod, callback)); |
287 } | 290 } |
288 | 291 |
289 void AudioDspClientImpl::SetCapabilitiesOEM( | 292 void AudioDspClientImpl::SetCapabilitiesOEM( |
290 uint32 speaker_id, | 293 uint32_t speaker_id, |
291 const std::string& speaker_capabilities, | 294 const std::string& speaker_capabilities, |
292 const std::string& driver_capabilities, | 295 const std::string& driver_capabilities, |
293 const VoidDBusMethodCallback& callback) { | 296 const VoidDBusMethodCallback& callback) { |
294 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, | 297 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, |
295 audio_dsp::kSetCapabilitiesOEMMethod); | 298 audio_dsp::kSetCapabilitiesOEMMethod); |
296 dbus::MessageWriter writer(&method_call); | 299 dbus::MessageWriter writer(&method_call); |
297 writer.AppendInt32(speaker_id); | 300 writer.AppendInt32(speaker_id); |
298 writer.AppendString(speaker_capabilities); | 301 writer.AppendString(speaker_capabilities); |
299 writer.AppendString(driver_capabilities); | 302 writer.AppendString(driver_capabilities); |
300 DCHECK(proxy_); | 303 DCHECK(proxy_); |
301 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 304 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
302 base::Bind(&OnVoidDBusMethod, callback)); | 305 base::Bind(&OnVoidDBusMethod, callback)); |
303 } | 306 } |
304 | 307 |
305 void AudioDspClientImpl::GetFilterConfigOEM( | 308 void AudioDspClientImpl::GetFilterConfigOEM( |
306 uint32 speaker_id, | 309 uint32_t speaker_id, |
307 const TwoStringDBusMethodCallback& callback) { | 310 const TwoStringDBusMethodCallback& callback) { |
308 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, | 311 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, |
309 audio_dsp::kGetFilterConfigOEMMethod); | 312 audio_dsp::kGetFilterConfigOEMMethod); |
310 dbus::MessageWriter writer(&method_call); | 313 dbus::MessageWriter writer(&method_call); |
311 writer.AppendInt32(speaker_id); | 314 writer.AppendInt32(speaker_id); |
312 DCHECK(proxy_); | 315 DCHECK(proxy_); |
313 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 316 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
314 base::Bind(&OnTwoStringDBusMethod, callback)); | 317 base::Bind(&OnTwoStringDBusMethod, callback)); |
315 } | 318 } |
316 | 319 |
317 void AudioDspClientImpl::SetFilterConfigOEM( | 320 void AudioDspClientImpl::SetFilterConfigOEM( |
318 const std::string& speaker_config, | 321 const std::string& speaker_config, |
319 const std::string& driver_config, | 322 const std::string& driver_config, |
320 const VoidDBusMethodCallback& callback) { | 323 const VoidDBusMethodCallback& callback) { |
321 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, | 324 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, |
322 audio_dsp::kSetFilterConfigOEMMethod); | 325 audio_dsp::kSetFilterConfigOEMMethod); |
323 dbus::MessageWriter writer(&method_call); | 326 dbus::MessageWriter writer(&method_call); |
324 writer.AppendString(speaker_config); | 327 writer.AppendString(speaker_config); |
325 writer.AppendString(driver_config); | 328 writer.AppendString(driver_config); |
326 DCHECK(proxy_); | 329 DCHECK(proxy_); |
327 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 330 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
328 base::Bind(&OnVoidDBusMethod, callback)); | 331 base::Bind(&OnVoidDBusMethod, callback)); |
329 } | 332 } |
330 | 333 |
331 void AudioDspClientImpl::SetSourceType(uint16 source_type, | 334 void AudioDspClientImpl::SetSourceType(uint16_t source_type, |
332 const VoidDBusMethodCallback& callback) { | 335 const VoidDBusMethodCallback& callback) { |
333 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, | 336 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, |
334 audio_dsp::kSetSourceTypeMethod); | 337 audio_dsp::kSetSourceTypeMethod); |
335 dbus::MessageWriter writer(&method_call); | 338 dbus::MessageWriter writer(&method_call); |
336 writer.AppendUint16(source_type); | 339 writer.AppendUint16(source_type); |
337 DCHECK(proxy_); | 340 DCHECK(proxy_); |
338 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 341 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
339 base::Bind(&OnVoidDBusMethod, callback)); | 342 base::Bind(&OnVoidDBusMethod, callback)); |
340 } | 343 } |
341 | 344 |
342 void AudioDspClientImpl::AmplifierVolumeChanged( | 345 void AudioDspClientImpl::AmplifierVolumeChanged( |
343 double db_spl, | 346 double db_spl, |
344 const VoidDBusMethodCallback& callback) { | 347 const VoidDBusMethodCallback& callback) { |
345 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, | 348 dbus::MethodCall method_call(audio_dsp::kAudioDspInterface, |
346 audio_dsp::kAmplifierVolumeChangedMethod); | 349 audio_dsp::kAmplifierVolumeChangedMethod); |
347 dbus::MessageWriter writer(&method_call); | 350 dbus::MessageWriter writer(&method_call); |
348 writer.AppendDouble(db_spl); | 351 writer.AppendDouble(db_spl); |
349 DCHECK(proxy_); | 352 DCHECK(proxy_); |
350 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 353 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
351 base::Bind(&OnVoidDBusMethod, callback)); | 354 base::Bind(&OnVoidDBusMethod, callback)); |
352 } | 355 } |
353 | 356 |
354 void AudioDspClientImpl::OnError(dbus::Signal* signal) { | 357 void AudioDspClientImpl::OnError(dbus::Signal* signal) { |
355 dbus::MessageReader reader(signal); | 358 dbus::MessageReader reader(signal); |
356 int32 error_code = 0; | 359 int32_t error_code = 0; |
357 if (!reader.PopInt32(&error_code)) { | 360 if (!reader.PopInt32(&error_code)) { |
358 LOG(ERROR) << "Invalid signal: " << signal->ToString(); | 361 LOG(ERROR) << "Invalid signal: " << signal->ToString(); |
359 return; | 362 return; |
360 } | 363 } |
361 FOR_EACH_OBSERVER(Observer, observers_, OnError(error_code)); | 364 FOR_EACH_OBSERVER(Observer, observers_, OnError(error_code)); |
362 } | 365 } |
363 | 366 |
364 void AudioDspClientImpl::OnSignalConnected(const std::string& interface, | 367 void AudioDspClientImpl::OnSignalConnected(const std::string& interface, |
365 const std::string& signal, | 368 const std::string& signal, |
366 bool succeeded) { | 369 bool succeeded) { |
367 LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " " << signal | 370 LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " " << signal |
368 << " failed."; | 371 << " failed."; |
369 } | 372 } |
370 | 373 |
371 } // anonymous namespace | 374 } // anonymous namespace |
372 | 375 |
373 AudioDspClient::AudioDspClient() { | 376 AudioDspClient::AudioDspClient() { |
374 } | 377 } |
375 | 378 |
376 AudioDspClient::~AudioDspClient() { | 379 AudioDspClient::~AudioDspClient() { |
377 } | 380 } |
378 | 381 |
379 // static | 382 // static |
380 AudioDspClient* AudioDspClient::Create() { | 383 AudioDspClient* AudioDspClient::Create() { |
381 return new AudioDspClientImpl(); | 384 return new AudioDspClientImpl(); |
382 } | 385 } |
383 | 386 |
384 } // namespace chromeos | 387 } // namespace chromeos |
OLD | NEW |