Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chromeos / dbus / cras_audio_client_stub_impl.h
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/chromeos_export.h"
9 #include "chromeos/dbus/cras_audio_client.h"
10
11 namespace chromeos {
12
13 class CrasAudioHandlerTest;
14
15 // The CrasAudioClient implementation used on Linux desktop.
16 class CHROMEOS_EXPORT CrasAudioClientStubImpl : public CrasAudioClient {
17  public:
18   CrasAudioClientStubImpl();
19   virtual ~CrasAudioClientStubImpl();
20
21   // CrasAudioClient overrides:
22   virtual void Init(dbus::Bus* bus) OVERRIDE;
23   virtual void AddObserver(Observer* observer) OVERRIDE;
24   virtual void RemoveObserver(Observer* observer) OVERRIDE;
25   virtual bool HasObserver(Observer* observer) OVERRIDE;
26   virtual void GetVolumeState(const GetVolumeStateCallback& callback) OVERRIDE;
27   virtual void GetNodes(const GetNodesCallback& callback,
28                         const ErrorCallback& error_callback) OVERRIDE;
29   virtual void SetOutputNodeVolume(uint64 node_id, int32 volume) OVERRIDE;
30   virtual void SetOutputUserMute(bool mute_on) OVERRIDE;
31   virtual void SetInputNodeGain(uint64 node_id, int32 gain) OVERRIDE;
32   virtual void SetInputMute(bool mute_on) OVERRIDE;
33   virtual void SetActiveOutputNode(uint64 node_id) OVERRIDE;
34   virtual void SetActiveInputNode(uint64 node_id) OVERRIDE;
35   virtual void AddActiveInputNode(uint64 node_id) OVERRIDE;
36   virtual void RemoveActiveInputNode(uint64 node_id) OVERRIDE;
37   virtual void AddActiveOutputNode(uint64 node_id) OVERRIDE;
38   virtual void RemoveActiveOutputNode(uint64 node_id) OVERRIDE;
39
40   // Updates |node_list_| to contain |audio_nodes|.
41   void SetAudioNodesForTesting(const AudioNodeList& audio_nodes);
42
43   // Calls SetAudioNodesForTesting() and additionally notifies |observers_|.
44   void SetAudioNodesAndNotifyObserversForTesting(
45       const AudioNodeList& new_nodes);
46
47  private:
48   VolumeState volume_state_;
49   AudioNodeList node_list_;
50   uint64 active_input_node_id_;
51   uint64 active_output_node_id_;
52   ObserverList<Observer> observers_;
53
54   DISALLOW_COPY_AND_ASSIGN(CrasAudioClientStubImpl);
55 };
56
57 }  // namespace chromeos
58
59 #endif  // CHROMEOS_DBUS_CRAS_AUDIO_CLIENT_STUB_IMPL_H_