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 3// found in the LICENSE file. 4 5#ifndef CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_ 6#define CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_ 7 8#include "chromeos/dbus/cras_audio_client.h" 9 10namespace chromeos { 11 12class CrasAudioHandlerTest; 13 14// The CrasAudioClient implementation used on Linux desktop. 15class CrasAudioClientStubImpl : public CrasAudioClient { 16 public: 17 CrasAudioClientStubImpl(); 18 virtual ~CrasAudioClientStubImpl(); 19 20 // CrasAudioClient overrides: 21 virtual void AddObserver(Observer* observer) OVERRIDE; 22 virtual void RemoveObserver(Observer* observer) OVERRIDE; 23 virtual bool HasObserver(Observer* observer) OVERRIDE; 24 virtual void GetVolumeState(const GetVolumeStateCallback& callback) OVERRIDE; 25 virtual void GetNodes(const GetNodesCallback& callback) OVERRIDE; 26 virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) OVERRIDE; 27 virtual void SetOutputUserMute(bool mute_on) OVERRIDE; 28 virtual void SetInputNodeGain(uint64 node_id, int32 gain) OVERRIDE; 29 virtual void SetInputMute(bool mute_on) OVERRIDE; 30 virtual void SetActiveOutputNode(uint64 node_id) OVERRIDE; 31 virtual void SetActiveInputNode(uint64 node_id) OVERRIDE; 32 33 protected: 34 // Helper functions for testing 35 virtual void SetAudioDevices(const AudioNodeList& audio_nodes); 36 virtual void ChangeAudioNodes(const AudioNodeList& new_nodes); 37 38 private: 39 friend class CrasAudioHandlerTest; 40 41 VolumeState volume_state_; 42 AudioNodeList node_list_; 43 uint64 active_input_node_id_; 44 uint64 active_output_node_id_; 45 ObserverList<Observer> observers_; 46 47 DISALLOW_COPY_AND_ASSIGN(CrasAudioClientStubImpl); 48}; 49 50} // namespace chromeos 51 52#endif // CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_ 53