Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: components/arc/audio/arc_audio_bridge.cc

Issue 2599673005: arc: Use GET_INTERFACE_FOR_METHOD macro (Closed)
Patch Set: Addressed feedback Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/arc/audio/arc_audio_bridge.h" 5 #include "components/arc/audio/arc_audio_bridge.h"
6 6
7 #include "ash/common/system/chromeos/audio/tray_audio.h" 7 #include "ash/common/system/chromeos/audio/tray_audio.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "chromeos/audio/audio_device.h" 9 #include "chromeos/audio/audio_device.h"
10 #include "components/arc/arc_bridge_service.h" 10 #include "components/arc/arc_bridge_service.h"
11 11
12 namespace arc { 12 namespace arc {
13 13
14 namespace {
15
16 // Note: unlike most of our mojom definitions, AudioInstance::Init's minimum
17 // version is not zero.
18 constexpr uint32_t kMinInstanceVersionForInit = 1;
19
20 } // namespace
21
22 ArcAudioBridge::ArcAudioBridge(ArcBridgeService* bridge_service) 14 ArcAudioBridge::ArcAudioBridge(ArcBridgeService* bridge_service)
23 : ArcService(bridge_service), binding_(this) { 15 : ArcService(bridge_service), binding_(this) {
24 arc_bridge_service()->audio()->AddObserver(this); 16 arc_bridge_service()->audio()->AddObserver(this);
25 if (chromeos::CrasAudioHandler::IsInitialized()) { 17 if (chromeos::CrasAudioHandler::IsInitialized()) {
26 cras_audio_handler_ = chromeos::CrasAudioHandler::Get(); 18 cras_audio_handler_ = chromeos::CrasAudioHandler::Get();
27 cras_audio_handler_->AddAudioObserver(this); 19 cras_audio_handler_->AddAudioObserver(this);
28 } 20 }
29 } 21 }
30 22
31 ArcAudioBridge::~ArcAudioBridge() { 23 ArcAudioBridge::~ArcAudioBridge() {
32 if (cras_audio_handler_ && chromeos::CrasAudioHandler::IsInitialized()) { 24 if (cras_audio_handler_ && chromeos::CrasAudioHandler::IsInitialized()) {
33 cras_audio_handler_->RemoveAudioObserver(this); 25 cras_audio_handler_->RemoveAudioObserver(this);
34 } 26 }
35 arc_bridge_service()->audio()->RemoveObserver(this); 27 arc_bridge_service()->audio()->RemoveObserver(this);
36 } 28 }
37 29
38 void ArcAudioBridge::OnInstanceReady() { 30 void ArcAudioBridge::OnInstanceReady() {
39 mojom::AudioInstance* audio_instance = 31 mojom::AudioInstance* audio_instance =
40 arc_bridge_service()->audio()->GetInstanceForMethod( 32 ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service()->audio(), Init);
41 "Init", kMinInstanceVersionForInit);
42 DCHECK(audio_instance); // the instance on ARC side is too old. 33 DCHECK(audio_instance); // the instance on ARC side is too old.
43 audio_instance->Init(binding_.CreateInterfacePtrAndBind()); 34 audio_instance->Init(binding_.CreateInterfacePtrAndBind());
44 } 35 }
45 36
46 void ArcAudioBridge::ShowVolumeControls() { 37 void ArcAudioBridge::ShowVolumeControls() {
47 VLOG(2) << "ArcAudioBridge::ShowVolumeControls"; 38 VLOG(2) << "ArcAudioBridge::ShowVolumeControls";
48 ash::TrayAudio::ShowPopUpVolumeView(); 39 ash::TrayAudio::ShowPopUpVolumeView();
49 } 40 }
50 41
51 void ArcAudioBridge::OnAudioNodesChanged() { 42 void ArcAudioBridge::OnAudioNodesChanged() {
(...skipping 22 matching lines...) Expand all
74 if (headphone_inserted) { 65 if (headphone_inserted) {
75 switch_state |= 66 switch_state |=
76 (1 << static_cast<uint32_t>(mojom::AudioSwitch::SW_HEADPHONE_INSERT)); 67 (1 << static_cast<uint32_t>(mojom::AudioSwitch::SW_HEADPHONE_INSERT));
77 } 68 }
78 if (microphone_inserted) { 69 if (microphone_inserted) {
79 switch_state |= 70 switch_state |=
80 (1 << static_cast<uint32_t>(mojom::AudioSwitch::SW_MICROPHONE_INSERT)); 71 (1 << static_cast<uint32_t>(mojom::AudioSwitch::SW_MICROPHONE_INSERT));
81 } 72 }
82 73
83 VLOG(1) << "Send switch state " << switch_state; 74 VLOG(1) << "Send switch state " << switch_state;
84 mojom::AudioInstance* audio_instance = 75 mojom::AudioInstance* audio_instance = ARC_GET_INSTANCE_FOR_METHOD(
85 arc_bridge_service()->audio()->GetInstanceForMethod("NotifySwitchState"); 76 arc_bridge_service()->audio(), NotifySwitchState);
86 if (audio_instance) 77 if (audio_instance)
87 audio_instance->NotifySwitchState(switch_state); 78 audio_instance->NotifySwitchState(switch_state);
88 } 79 }
89 80
90 } // namespace arc 81 } // namespace arc
OLDNEW
« no previous file with comments | « chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc ('k') | components/arc/bluetooth/arc_bluetooth_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698