Add default implementations for AppWindowRegistry::Observer notifications.
[chromium-blink-merge.git] / chromeos / dbus / cras_audio_client_stub_impl.h
blob9cd9f51a7f86f7ec9a1db399e74ff081167997c3
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.
5 #ifndef CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_
6 #define CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_
8 #include "chromeos/dbus/cras_audio_client.h"
10 namespace chromeos {
12 class CrasAudioHandlerTest;
14 // The CrasAudioClient implementation used on Linux desktop.
15 class CrasAudioClientStubImpl : public CrasAudioClient {
16 public:
17 CrasAudioClientStubImpl();
18 virtual ~CrasAudioClientStubImpl();
20 // CrasAudioClient overrides
21 virtual void Init(dbus::Bus* bus) OVERRIDE;
22 virtual void AddObserver(Observer* observer) OVERRIDE;
23 virtual void RemoveObserver(Observer* observer) OVERRIDE;
24 virtual bool HasObserver(Observer* observer) OVERRIDE;
25 virtual void GetVolumeState(const GetVolumeStateCallback& callback) OVERRIDE;
26 virtual void GetNodes(const GetNodesCallback& callback,
27 const ErrorCallback& error_callback) OVERRIDE;
28 virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) OVERRIDE;
29 virtual void SetOutputUserMute(bool mute_on) OVERRIDE;
30 virtual void SetInputNodeGain(uint64 node_id, int32 gain) OVERRIDE;
31 virtual void SetInputMute(bool mute_on) OVERRIDE;
32 virtual void SetActiveOutputNode(uint64 node_id) OVERRIDE;
33 virtual void SetActiveInputNode(uint64 node_id) OVERRIDE;
35 protected:
36 // Helper functions for testing
37 virtual void SetAudioDevices(const AudioNodeList& audio_nodes);
38 virtual void ChangeAudioNodes(const AudioNodeList& new_nodes);
40 private:
41 friend class CrasAudioHandlerTest;
43 VolumeState volume_state_;
44 AudioNodeList node_list_;
45 uint64 active_input_node_id_;
46 uint64 active_output_node_id_;
47 ObserverList<Observer> observers_;
49 DISALLOW_COPY_AND_ASSIGN(CrasAudioClientStubImpl);
52 } // namespace chromeos
54 #endif // CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_