From cca5cc1cadd95782faadcca310c9d211a9c03d4f Mon Sep 17 00:00:00 2001 From: satorux Date: Mon, 27 Oct 2014 09:33:59 -0700 Subject: Rename CrasAudioClientStubImpl to FakeCrasAudioClient CrasAudioClientStubImpl has some fake-ish behavors (ex. SetAudioNodesForTesting). Besides other similar classes in the directory are named FakeWhateverClient. BUG=309506 TEST=none Review URL: https://codereview.chromium.org/675403002 Cr-Commit-Position: refs/heads/master@{#301377} --- chromeos/audio/cras_audio_handler_unittest.cc | 18 +-- chromeos/chromeos.gyp | 4 +- chromeos/dbus/cras_audio_client.cc | 1 - chromeos/dbus/cras_audio_client_stub_impl.cc | 181 -------------------------- chromeos/dbus/cras_audio_client_stub_impl.h | 60 --------- chromeos/dbus/dbus_client_bundle.cc | 4 +- chromeos/dbus/fake_cras_audio_client.cc | 181 ++++++++++++++++++++++++++ chromeos/dbus/fake_cras_audio_client.h | 60 +++++++++ 8 files changed, 254 insertions(+), 255 deletions(-) delete mode 100644 chromeos/dbus/cras_audio_client_stub_impl.cc delete mode 100644 chromeos/dbus/cras_audio_client_stub_impl.h create mode 100644 chromeos/dbus/fake_cras_audio_client.cc create mode 100644 chromeos/dbus/fake_cras_audio_client.h (limited to 'chromeos') diff --git a/chromeos/audio/cras_audio_handler_unittest.cc b/chromeos/audio/cras_audio_handler_unittest.cc index dc0a11b..1cf3fdb 100644 --- a/chromeos/audio/cras_audio_handler_unittest.cc +++ b/chromeos/audio/cras_audio_handler_unittest.cc @@ -10,8 +10,8 @@ #include "base/values.h" #include "chromeos/audio/audio_devices_pref_handler_stub.h" #include "chromeos/dbus/audio_node.h" -#include "chromeos/dbus/cras_audio_client_stub_impl.h" #include "chromeos/dbus/dbus_thread_manager.h" +#include "chromeos/dbus/fake_cras_audio_client.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos { @@ -236,7 +236,7 @@ class TestObserver : public chromeos::CrasAudioHandler::AudioObserver { class CrasAudioHandlerTest : public testing::Test { public: CrasAudioHandlerTest() : cras_audio_handler_(NULL), - cras_audio_client_stub_(NULL) { + fake_cras_audio_client_(NULL) { } virtual ~CrasAudioHandlerTest() {} @@ -253,9 +253,9 @@ class CrasAudioHandlerTest : public testing::Test { void SetUpCrasAudioHandler(const AudioNodeList& audio_nodes) { DBusThreadManager::Initialize(); - cras_audio_client_stub_ = static_cast( + fake_cras_audio_client_ = static_cast( DBusThreadManager::Get()->GetCrasAudioClient()); - cras_audio_client_stub_->SetAudioNodesForTesting(audio_nodes); + fake_cras_audio_client_->SetAudioNodesForTesting(audio_nodes); audio_pref_handler_ = new AudioDevicesPrefHandlerStub(); CrasAudioHandler::Initialize(audio_pref_handler_); cras_audio_handler_ = CrasAudioHandler::Get(); @@ -268,10 +268,10 @@ class CrasAudioHandlerTest : public testing::Test { const AudioNodeList& audio_nodes, const AudioNode& primary_active_node) { DBusThreadManager::Initialize(); - cras_audio_client_stub_ = static_cast( + fake_cras_audio_client_ = static_cast( DBusThreadManager::Get()->GetCrasAudioClient()); - cras_audio_client_stub_->SetAudioNodesForTesting(audio_nodes); - cras_audio_client_stub_->SetActiveOutputNode(primary_active_node.id), + fake_cras_audio_client_->SetAudioNodesForTesting(audio_nodes); + fake_cras_audio_client_->SetActiveOutputNode(primary_active_node.id), audio_pref_handler_ = new AudioDevicesPrefHandlerStub(); CrasAudioHandler::Initialize(audio_pref_handler_); cras_audio_handler_ = CrasAudioHandler::Get(); @@ -281,7 +281,7 @@ class CrasAudioHandlerTest : public testing::Test { } void ChangeAudioNodes(const AudioNodeList& audio_nodes) { - cras_audio_client_stub_->SetAudioNodesAndNotifyObserversForTesting( + fake_cras_audio_client_->SetAudioNodesAndNotifyObserversForTesting( audio_nodes); message_loop_.RunUntilIdle(); } @@ -293,7 +293,7 @@ class CrasAudioHandlerTest : public testing::Test { protected: base::MessageLoopForUI message_loop_; CrasAudioHandler* cras_audio_handler_; // Not owned. - CrasAudioClientStubImpl* cras_audio_client_stub_; // Not owned. + FakeCrasAudioClient* fake_cras_audio_client_; // Not owned. scoped_ptr test_observer_; scoped_refptr audio_pref_handler_; diff --git a/chromeos/chromeos.gyp b/chromeos/chromeos.gyp index 6400d1c..2cfb74f 100644 --- a/chromeos/chromeos.gyp +++ b/chromeos/chromeos.gyp @@ -77,8 +77,6 @@ 'dbus/bluetooth_profile_service_provider.h', 'dbus/cras_audio_client.cc', 'dbus/cras_audio_client.h', - 'dbus/cras_audio_client_stub_impl.cc', - 'dbus/cras_audio_client_stub_impl.h', 'dbus/cros_disks_client.cc', 'dbus/cros_disks_client.h', 'dbus/cryptohome_client.cc', @@ -122,6 +120,8 @@ 'dbus/fake_bluetooth_profile_manager_client.h', 'dbus/fake_bluetooth_profile_service_provider.cc', 'dbus/fake_bluetooth_profile_service_provider.h', + 'dbus/fake_cras_audio_client.cc', + 'dbus/fake_cras_audio_client.h', 'dbus/fake_cryptohome_client.cc', 'dbus/fake_cryptohome_client.h', 'dbus/fake_debug_daemon_client.cc', diff --git a/chromeos/dbus/cras_audio_client.cc b/chromeos/dbus/cras_audio_client.cc index 6abf076..b756ee6 100644 --- a/chromeos/dbus/cras_audio_client.cc +++ b/chromeos/dbus/cras_audio_client.cc @@ -7,7 +7,6 @@ #include "base/bind.h" #include "base/format_macros.h" #include "base/strings/stringprintf.h" -#include "chromeos/dbus/cras_audio_client_stub_impl.h" #include "dbus/bus.h" #include "dbus/message.h" #include "dbus/object_path.h" diff --git a/chromeos/dbus/cras_audio_client_stub_impl.cc b/chromeos/dbus/cras_audio_client_stub_impl.cc deleted file mode 100644 index ea41d18..0000000 --- a/chromeos/dbus/cras_audio_client_stub_impl.cc +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chromeos/dbus/cras_audio_client_stub_impl.h" - -namespace chromeos { - -CrasAudioClientStubImpl::CrasAudioClientStubImpl() - : active_input_node_id_(0), - active_output_node_id_(0) { -} - -CrasAudioClientStubImpl::~CrasAudioClientStubImpl() { -} - -void CrasAudioClientStubImpl::Init(dbus::Bus* bus) { - VLOG(1) << "CrasAudioClientStubImpl is created"; - - // Fake audio output nodes. - AudioNode node_1; - node_1.is_input = false; - node_1.id = 10001; - node_1.device_name = "Fake Speaker"; - node_1.type = "INTERNAL_SPEAKER"; - node_1.name = "Speaker"; - node_list_.push_back(node_1); - - AudioNode node_2; - node_2.is_input = false; - node_2.id = 10002; - node_2.device_name = "Fake Headphone"; - node_2.type = "HEADPHONE"; - node_2.name = "Headphone"; - node_list_.push_back(node_2); - - AudioNode node_3; - node_3.is_input = false; - node_3.id = 10003; - node_3.device_name = "Fake Bluetooth Headphone"; - node_3.type = "BLUETOOTH"; - node_3.name = "Headphone"; - node_list_.push_back(node_3); - - // Fake audio input ndoes - AudioNode node_4; - node_4.is_input = true; - node_4.id = 10004; - node_4.device_name = "Fake Internal Mic"; - node_4.type = "INTERNAL_MIC"; - node_4.name = "Internal Mic"; - node_list_.push_back(node_4); - - AudioNode node_5; - node_5.is_input = true; - node_5.id = 10005; - node_5.device_name = "Fake USB Mic"; - node_5.type = "USB"; - node_5.name = "Mic"; - node_list_.push_back(node_5); -} - -void CrasAudioClientStubImpl::AddObserver(Observer* observer) { - observers_.AddObserver(observer); -} - -void CrasAudioClientStubImpl::RemoveObserver(Observer* observer) { - observers_.RemoveObserver(observer); -} - -bool CrasAudioClientStubImpl::HasObserver(Observer* observer) { - return observers_.HasObserver(observer); -} - -void CrasAudioClientStubImpl::GetVolumeState( - const GetVolumeStateCallback& callback) { - callback.Run(volume_state_, true); -} - -void CrasAudioClientStubImpl::GetNodes(const GetNodesCallback& callback, - const ErrorCallback& error_callback) { - callback.Run(node_list_, true); -} - -void CrasAudioClientStubImpl::SetOutputNodeVolume(uint64 node_id, - int32 volume) { -} - -void CrasAudioClientStubImpl::SetOutputUserMute(bool mute_on) { - volume_state_.output_user_mute = mute_on; - FOR_EACH_OBSERVER(Observer, - observers_, - OutputMuteChanged(volume_state_.output_user_mute)); -} - -void CrasAudioClientStubImpl::SetInputNodeGain(uint64 node_id, - int32 input_gain) { -} - -void CrasAudioClientStubImpl::SetInputMute(bool mute_on) { - volume_state_.input_mute = mute_on; - FOR_EACH_OBSERVER(Observer, - observers_, - InputMuteChanged(volume_state_.input_mute)); -} - -void CrasAudioClientStubImpl::SetActiveOutputNode(uint64 node_id) { - if (active_output_node_id_ == node_id) - return; - - for (size_t i = 0; i < node_list_.size(); ++i) { - if (node_list_[i].id == active_output_node_id_) - node_list_[i].active = false; - else if (node_list_[i].id == node_id) - node_list_[i].active = true; - } - active_output_node_id_ = node_id; - FOR_EACH_OBSERVER(Observer, - observers_, - ActiveOutputNodeChanged(node_id)); -} - -void CrasAudioClientStubImpl::SetActiveInputNode(uint64 node_id) { - if (active_input_node_id_ == node_id) - return; - - for (size_t i = 0; i < node_list_.size(); ++i) { - if (node_list_[i].id == active_input_node_id_) - node_list_[i].active = false; - else if (node_list_[i].id == node_id) - node_list_[i].active = true; - } - active_input_node_id_ = node_id; - FOR_EACH_OBSERVER(Observer, - observers_, - ActiveInputNodeChanged(node_id)); -} - -void CrasAudioClientStubImpl::AddActiveInputNode(uint64 node_id) { - for (size_t i = 0; i < node_list_.size(); ++i) { - if (node_list_[i].id == node_id) - node_list_[i].active = true; - } -} - -void CrasAudioClientStubImpl::RemoveActiveInputNode(uint64 node_id) { - for (size_t i = 0; i < node_list_.size(); ++i) { - if (node_list_[i].id == node_id) - node_list_[i].active = false; - } -} - -void CrasAudioClientStubImpl::SwapLeftRight(uint64 node_id, bool swap) { -} - -void CrasAudioClientStubImpl::AddActiveOutputNode(uint64 node_id) { - for (size_t i = 0; i < node_list_.size(); ++i) { - if (node_list_[i].id == node_id) - node_list_[i].active = true; - } -} - -void CrasAudioClientStubImpl::RemoveActiveOutputNode(uint64 node_id) { - for (size_t i = 0; i < node_list_.size(); ++i) { - if (node_list_[i].id == node_id) - node_list_[i].active = false; - } -} - -void CrasAudioClientStubImpl::SetAudioNodesForTesting( - const AudioNodeList& audio_nodes) { - node_list_ = audio_nodes; -} - -void CrasAudioClientStubImpl::SetAudioNodesAndNotifyObserversForTesting( - const AudioNodeList& new_nodes) { - SetAudioNodesForTesting(new_nodes); - FOR_EACH_OBSERVER(Observer, observers_, NodesChanged()); -} - -} // namespace chromeos diff --git a/chromeos/dbus/cras_audio_client_stub_impl.h b/chromeos/dbus/cras_audio_client_stub_impl.h deleted file mode 100644 index 00adfb3..0000000 --- a/chromeos/dbus/cras_audio_client_stub_impl.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_ -#define CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_ - -#include "chromeos/chromeos_export.h" -#include "chromeos/dbus/cras_audio_client.h" - -namespace chromeos { - -class CrasAudioHandlerTest; - -// The CrasAudioClient implementation used on Linux desktop. -class CHROMEOS_EXPORT CrasAudioClientStubImpl : public CrasAudioClient { - public: - CrasAudioClientStubImpl(); - virtual ~CrasAudioClientStubImpl(); - - // CrasAudioClient overrides: - virtual void Init(dbus::Bus* bus) override; - virtual void AddObserver(Observer* observer) override; - virtual void RemoveObserver(Observer* observer) override; - virtual bool HasObserver(Observer* observer) override; - virtual void GetVolumeState(const GetVolumeStateCallback& callback) override; - virtual void GetNodes(const GetNodesCallback& callback, - const ErrorCallback& error_callback) override; - virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) override; - virtual void SetOutputUserMute(bool mute_on) override; - virtual void SetInputNodeGain(uint64 node_id, int32 gain) override; - virtual void SetInputMute(bool mute_on) override; - virtual void SetActiveOutputNode(uint64 node_id) override; - virtual void SetActiveInputNode(uint64 node_id) override; - virtual void AddActiveInputNode(uint64 node_id) override; - virtual void RemoveActiveInputNode(uint64 node_id) override; - virtual void AddActiveOutputNode(uint64 node_id) override; - virtual void RemoveActiveOutputNode(uint64 node_id) override; - virtual void SwapLeftRight(uint64 node_id, bool swap) override; - - // Updates |node_list_| to contain |audio_nodes|. - void SetAudioNodesForTesting(const AudioNodeList& audio_nodes); - - // Calls SetAudioNodesForTesting() and additionally notifies |observers_|. - void SetAudioNodesAndNotifyObserversForTesting( - const AudioNodeList& new_nodes); - - private: - VolumeState volume_state_; - AudioNodeList node_list_; - uint64 active_input_node_id_; - uint64 active_output_node_id_; - ObserverList observers_; - - DISALLOW_COPY_AND_ASSIGN(CrasAudioClientStubImpl); -}; - -} // namespace chromeos - -#endif // CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_ diff --git a/chromeos/dbus/dbus_client_bundle.cc b/chromeos/dbus/dbus_client_bundle.cc index abfe6ee..7cb2f77 100644 --- a/chromeos/dbus/dbus_client_bundle.cc +++ b/chromeos/dbus/dbus_client_bundle.cc @@ -18,7 +18,6 @@ #include "chromeos/dbus/bluetooth_input_client.h" #include "chromeos/dbus/bluetooth_profile_manager_client.h" #include "chromeos/dbus/cras_audio_client.h" -#include "chromeos/dbus/cras_audio_client_stub_impl.h" #include "chromeos/dbus/cros_disks_client.h" #include "chromeos/dbus/cryptohome_client.h" #include "chromeos/dbus/debug_daemon_client.h" @@ -32,6 +31,7 @@ #include "chromeos/dbus/fake_bluetooth_gatt_service_client.h" #include "chromeos/dbus/fake_bluetooth_input_client.h" #include "chromeos/dbus/fake_bluetooth_profile_manager_client.h" +#include "chromeos/dbus/fake_cras_audio_client.h" #include "chromeos/dbus/fake_cryptohome_client.h" #include "chromeos/dbus/fake_debug_daemon_client.h" #include "chromeos/dbus/fake_easy_unlock_client.h" @@ -155,7 +155,7 @@ DBusClientBundle::DBusClientBundle(DBusClientTypeMask unstub_client_mask) if (!IsUsingStub(CRAS)) cras_audio_client_.reset(CrasAudioClient::Create()); else - cras_audio_client_.reset(new CrasAudioClientStubImpl); + cras_audio_client_.reset(new FakeCrasAudioClient); cros_disks_client_.reset(CrosDisksClient::Create( IsUsingStub(CROS_DISKS) ? STUB_DBUS_CLIENT_IMPLEMENTATION diff --git a/chromeos/dbus/fake_cras_audio_client.cc b/chromeos/dbus/fake_cras_audio_client.cc new file mode 100644 index 0000000..6c8f941 --- /dev/null +++ b/chromeos/dbus/fake_cras_audio_client.cc @@ -0,0 +1,181 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/dbus/fake_cras_audio_client.h" + +namespace chromeos { + +FakeCrasAudioClient::FakeCrasAudioClient() + : active_input_node_id_(0), + active_output_node_id_(0) { +} + +FakeCrasAudioClient::~FakeCrasAudioClient() { +} + +void FakeCrasAudioClient::Init(dbus::Bus* bus) { + VLOG(1) << "FakeCrasAudioClient is created"; + + // Fake audio output nodes. + AudioNode node_1; + node_1.is_input = false; + node_1.id = 10001; + node_1.device_name = "Fake Speaker"; + node_1.type = "INTERNAL_SPEAKER"; + node_1.name = "Speaker"; + node_list_.push_back(node_1); + + AudioNode node_2; + node_2.is_input = false; + node_2.id = 10002; + node_2.device_name = "Fake Headphone"; + node_2.type = "HEADPHONE"; + node_2.name = "Headphone"; + node_list_.push_back(node_2); + + AudioNode node_3; + node_3.is_input = false; + node_3.id = 10003; + node_3.device_name = "Fake Bluetooth Headphone"; + node_3.type = "BLUETOOTH"; + node_3.name = "Headphone"; + node_list_.push_back(node_3); + + // Fake audio input ndoes + AudioNode node_4; + node_4.is_input = true; + node_4.id = 10004; + node_4.device_name = "Fake Internal Mic"; + node_4.type = "INTERNAL_MIC"; + node_4.name = "Internal Mic"; + node_list_.push_back(node_4); + + AudioNode node_5; + node_5.is_input = true; + node_5.id = 10005; + node_5.device_name = "Fake USB Mic"; + node_5.type = "USB"; + node_5.name = "Mic"; + node_list_.push_back(node_5); +} + +void FakeCrasAudioClient::AddObserver(Observer* observer) { + observers_.AddObserver(observer); +} + +void FakeCrasAudioClient::RemoveObserver(Observer* observer) { + observers_.RemoveObserver(observer); +} + +bool FakeCrasAudioClient::HasObserver(Observer* observer) { + return observers_.HasObserver(observer); +} + +void FakeCrasAudioClient::GetVolumeState( + const GetVolumeStateCallback& callback) { + callback.Run(volume_state_, true); +} + +void FakeCrasAudioClient::GetNodes(const GetNodesCallback& callback, + const ErrorCallback& error_callback) { + callback.Run(node_list_, true); +} + +void FakeCrasAudioClient::SetOutputNodeVolume(uint64 node_id, + int32 volume) { +} + +void FakeCrasAudioClient::SetOutputUserMute(bool mute_on) { + volume_state_.output_user_mute = mute_on; + FOR_EACH_OBSERVER(Observer, + observers_, + OutputMuteChanged(volume_state_.output_user_mute)); +} + +void FakeCrasAudioClient::SetInputNodeGain(uint64 node_id, + int32 input_gain) { +} + +void FakeCrasAudioClient::SetInputMute(bool mute_on) { + volume_state_.input_mute = mute_on; + FOR_EACH_OBSERVER(Observer, + observers_, + InputMuteChanged(volume_state_.input_mute)); +} + +void FakeCrasAudioClient::SetActiveOutputNode(uint64 node_id) { + if (active_output_node_id_ == node_id) + return; + + for (size_t i = 0; i < node_list_.size(); ++i) { + if (node_list_[i].id == active_output_node_id_) + node_list_[i].active = false; + else if (node_list_[i].id == node_id) + node_list_[i].active = true; + } + active_output_node_id_ = node_id; + FOR_EACH_OBSERVER(Observer, + observers_, + ActiveOutputNodeChanged(node_id)); +} + +void FakeCrasAudioClient::SetActiveInputNode(uint64 node_id) { + if (active_input_node_id_ == node_id) + return; + + for (size_t i = 0; i < node_list_.size(); ++i) { + if (node_list_[i].id == active_input_node_id_) + node_list_[i].active = false; + else if (node_list_[i].id == node_id) + node_list_[i].active = true; + } + active_input_node_id_ = node_id; + FOR_EACH_OBSERVER(Observer, + observers_, + ActiveInputNodeChanged(node_id)); +} + +void FakeCrasAudioClient::AddActiveInputNode(uint64 node_id) { + for (size_t i = 0; i < node_list_.size(); ++i) { + if (node_list_[i].id == node_id) + node_list_[i].active = true; + } +} + +void FakeCrasAudioClient::RemoveActiveInputNode(uint64 node_id) { + for (size_t i = 0; i < node_list_.size(); ++i) { + if (node_list_[i].id == node_id) + node_list_[i].active = false; + } +} + +void FakeCrasAudioClient::SwapLeftRight(uint64 node_id, bool swap) { +} + +void FakeCrasAudioClient::AddActiveOutputNode(uint64 node_id) { + for (size_t i = 0; i < node_list_.size(); ++i) { + if (node_list_[i].id == node_id) + node_list_[i].active = true; + } +} + +void FakeCrasAudioClient::RemoveActiveOutputNode(uint64 node_id) { + for (size_t i = 0; i < node_list_.size(); ++i) { + if (node_list_[i].id == node_id) + node_list_[i].active = false; + } +} + +void FakeCrasAudioClient::SetAudioNodesForTesting( + const AudioNodeList& audio_nodes) { + node_list_ = audio_nodes; +} + +void FakeCrasAudioClient::SetAudioNodesAndNotifyObserversForTesting( + const AudioNodeList& new_nodes) { + SetAudioNodesForTesting(new_nodes); + FOR_EACH_OBSERVER(Observer, observers_, NodesChanged()); +} + +} // namespace chromeos diff --git a/chromeos/dbus/fake_cras_audio_client.h b/chromeos/dbus/fake_cras_audio_client.h new file mode 100644 index 0000000..07fd908 --- /dev/null +++ b/chromeos/dbus/fake_cras_audio_client.h @@ -0,0 +1,60 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_DBUS_FAKE_CRAS_AUDIO_CLIENT_H_ +#define CHROMEOS_DBUS_FAKE_CRAS_AUDIO_CLIENT_H_ + +#include "chromeos/chromeos_export.h" +#include "chromeos/dbus/cras_audio_client.h" + +namespace chromeos { + +class CrasAudioHandlerTest; + +// The CrasAudioClient implementation used on Linux desktop. +class CHROMEOS_EXPORT FakeCrasAudioClient : public CrasAudioClient { + public: + FakeCrasAudioClient(); + virtual ~FakeCrasAudioClient(); + + // CrasAudioClient overrides: + virtual void Init(dbus::Bus* bus) override; + virtual void AddObserver(Observer* observer) override; + virtual void RemoveObserver(Observer* observer) override; + virtual bool HasObserver(Observer* observer) override; + virtual void GetVolumeState(const GetVolumeStateCallback& callback) override; + virtual void GetNodes(const GetNodesCallback& callback, + const ErrorCallback& error_callback) override; + virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) override; + virtual void SetOutputUserMute(bool mute_on) override; + virtual void SetInputNodeGain(uint64 node_id, int32 gain) override; + virtual void SetInputMute(bool mute_on) override; + virtual void SetActiveOutputNode(uint64 node_id) override; + virtual void SetActiveInputNode(uint64 node_id) override; + virtual void AddActiveInputNode(uint64 node_id) override; + virtual void RemoveActiveInputNode(uint64 node_id) override; + virtual void AddActiveOutputNode(uint64 node_id) override; + virtual void RemoveActiveOutputNode(uint64 node_id) override; + virtual void SwapLeftRight(uint64 node_id, bool swap) override; + + // Updates |node_list_| to contain |audio_nodes|. + void SetAudioNodesForTesting(const AudioNodeList& audio_nodes); + + // Calls SetAudioNodesForTesting() and additionally notifies |observers_|. + void SetAudioNodesAndNotifyObserversForTesting( + const AudioNodeList& new_nodes); + + private: + VolumeState volume_state_; + AudioNodeList node_list_; + uint64 active_input_node_id_; + uint64 active_output_node_id_; + ObserverList observers_; + + DISALLOW_COPY_AND_ASSIGN(FakeCrasAudioClient); +}; + +} // namespace chromeos + +#endif // CHROMEOS_DBUS_FAKE_CRAS_AUDIO_CLIENT_H_ -- cgit v1.1