1 // Copyright 2015 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_AUDIO_DSP_CLIENT_H_
6 #define CHROMEOS_DBUS_AUDIO_DSP_CLIENT_H_
8 #include "base/basictypes.h"
9 #include "chromeos/chromeos_export.h"
10 #include "chromeos/dbus/dbus_client.h"
11 #include "chromeos/dbus/dbus_method_call_status.h"
15 // A DBus client class for the org.chromium.AudioDsp service.
16 class CHROMEOS_EXPORT AudioDspClient
: public DBusClient
{
18 // A callback to handle responses of methods returning a double value.
19 typedef base::Callback
<void(DBusMethodCallStatus call_status
, double result
)>
20 DoubleDBusMethodCallback
;
22 // A callback to handle responses of methods returning two string values.
23 typedef base::Callback
<void(DBusMethodCallStatus call_status
,
24 const std::string
& result1
,
25 const std::string
& result2
)>
26 TwoStringDBusMethodCallback
;
28 // A callback to handle responses of methods returning three string values.
29 typedef base::Callback
<void(DBusMethodCallStatus call_status
,
30 const std::string
& result1
,
31 const std::string
& result2
,
32 const std::string
& result3
)>
33 ThreeStringDBusMethodCallback
;
35 // Interface for observing DSP events from a DSP client.
38 virtual ~Observer() {}
40 // Called when the Error signal is received.
41 virtual void OnError(int32 error_code
) = 0;
44 ~AudioDspClient() override
;
46 // Adds and removes observers for AUDIO_DSP events.
47 virtual void AddObserver(Observer
* observer
) = 0;
48 virtual void RemoveObserver(Observer
* observer
) = 0;
50 // Factory function; creates a new instance which is owned by the caller.
51 // For normal usage, access the singleton via DBusThreadManager::Get().
52 static AudioDspClient
* Create();
54 // Calls Initialize method.
55 // |callback| will be called with a DBusMethodCallStatus indicating whether
56 // the DBus method call succeeded, and a bool that is the return value from
58 virtual void Initialize(const BoolDBusMethodCallback
& callback
) = 0;
60 // Calls SetStandbyMode method.
61 // |callback| will be called with a DBusMethodCallStatus indicating whether
62 // the DBus method call succeeded.
63 virtual void SetStandbyMode(bool standby
,
64 const VoidDBusMethodCallback
& callback
) = 0;
66 // Calls SetNightMode method.
67 // |callback| will be called with a DBusMethodCallStatus indicating whether
68 // the DBus method call succeeded.
69 virtual void SetNightMode(bool night_mode
,
70 const VoidDBusMethodCallback
& callback
) = 0;
72 // Calls GetNightMode method.
73 // |callback| will be called with a DBusMethodCallStatus indicating whether
74 // the DBus method call succeeded, and a bool that is the return value from
76 virtual void GetNightMode(const BoolDBusMethodCallback
& callback
) = 0;
78 // Calls SetTreble method.
79 // |callback| will be called with a DBusMethodCallStatus indicating whether
80 // the DBus method call succeeded.
81 virtual void SetTreble(double db_fs
,
82 const VoidDBusMethodCallback
& callback
) = 0;
84 // Calls GetTreble method.
85 // |callback| will be called with a DBusMethodCallStatus indicating whether
86 // the DBus method call succeeded, and a double that is the return value from
88 virtual void GetTreble(const DoubleDBusMethodCallback
& callback
) = 0;
90 // Calls SetBass method.
91 // |callback| will be called with a DBusMethodCallStatus indicating whether
92 // the DBus method call succeeded.
93 virtual void SetBass(double db_fs
,
94 const VoidDBusMethodCallback
& callback
) = 0;
96 // Calls SetBass method.
97 // |callback| will be called with a DBusMethodCallStatus indicating whether
98 // the DBus method call succeeded, and a double that is the return value from
100 virtual void GetBass(const DoubleDBusMethodCallback
& callback
) = 0;
102 // Calls GetCapabilitiesOEM method.
103 // |callback| will be called with a DBusMethodCallStatus indicating whether
104 // the DBus method call succeeded, and three std::strings that constitute
105 // the return value from the DBus method.
106 virtual void GetCapabilitiesOEM(
107 const ThreeStringDBusMethodCallback
& callback
) = 0;
109 // Calls SetCapabilitiesOEM method.
110 // |callback| will be called with a DBusMethodCallStatus indicating whether
111 // the DBus method call succeeded.
112 virtual void SetCapabilitiesOEM(uint32 speaker_id
,
113 const std::string
& speaker_capabilities
,
114 const std::string
& driver_capabilities
,
115 const VoidDBusMethodCallback
& callback
) = 0;
117 // Calls GetFilterConfigOEM method.
118 // |callback| will be called with a DBusMethodCallStatus indicating whether
119 // the DBus method call succeeded, and two std::strings that constitute
120 // the return value from the DBus method.
121 virtual void GetFilterConfigOEM(
123 const TwoStringDBusMethodCallback
& callback
) = 0;
125 // Calls SetFilterConfigOEM method.
126 // |callback| will be called with a DBusMethodCallStatus indicating whether
127 // the DBus method call succeeded.
128 virtual void SetFilterConfigOEM(const std::string
& speaker_config
,
129 const std::string
& driver_config
,
130 const VoidDBusMethodCallback
& callback
) = 0;
132 // Calls SetSourceType method.
133 // |callback| will be called with a DBusMethodCallStatus indicating whether
134 // the DBus method call succeeded.
135 virtual void SetSourceType(uint16 source_type
,
136 const VoidDBusMethodCallback
& callback
) = 0;
138 // Calls AmplifierVolumeChanged method.
139 // |callback| will be called with a DBusMethodCallStatus indicating whether
140 // the DBus method call succeeded.
141 virtual void AmplifierVolumeChanged(
143 const VoidDBusMethodCallback
& callback
) = 0;
146 // Create() should be used instead.
150 DISALLOW_COPY_AND_ASSIGN(AudioDspClient
);
153 } // namespace chromeos
155 #endif // CHROMEOS_DBUS_AUDIO_DSP_CLIENT_H_