| Index: chromeos/dbus/cras_audio_client_stub_impl.cc
|
| diff --git a/chromeos/dbus/cras_audio_client_stub_impl.cc b/chromeos/dbus/cras_audio_client_stub_impl.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..348a32912b296b211da5483eafe5b5a5a1bae56e
|
| --- /dev/null
|
| +++ b/chromeos/dbus/cras_audio_client_stub_impl.cc
|
| @@ -0,0 +1,152 @@
|
| +// 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() {
|
| + 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_1.active = false;
|
| + 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_2.active = false;
|
| + node_list_.push_back(node_2);
|
| + active_output_node_id_ = node_2.id;
|
| +
|
| + 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 = "Bluetooth Headphone";
|
| + node_3.active = false;
|
| + 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_4.active = false;
|
| + 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 = "USB Mic";
|
| + node_5.active = true;
|
| + node_list_.push_back(node_5);
|
| + active_input_node_id_ = node_5.id;
|
| +}
|
| +
|
| +CrasAudioClientStubImpl::~CrasAudioClientStubImpl() {
|
| +}
|
| +
|
| +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) {
|
| + 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::SetAudioDevices(
|
| + const AudioNodeList& audio_nodes) {
|
| + node_list_.clear();
|
| + for (size_t i = 0; i < audio_nodes.size(); ++i)
|
| + node_list_.push_back(audio_nodes[i]);
|
| +}
|
| +
|
| +void CrasAudioClientStubImpl::ChangeAudioNodes(const AudioNodeList& new_nodes) {
|
| + SetAudioDevices(new_nodes);
|
| + FOR_EACH_OBSERVER(Observer, observers_, NodesChanged());
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|