ohaudio_sys/audio_volume_manager/audio_volume_manager_ffi.rs
1// automatically generated by rust-bindgen 0.71.1
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6use crate::audio_common::{OH_AudioCommon_Result, OH_AudioRingerMode};
7use crate::audiostream_base::OH_AudioStream_Usage;
8
9/// Declare the audio volume manager.
10/// Audio volume manager provides many functions for developer to get the information about system volume.
11///
12///
13/// Available since API-level: 20
14#[cfg(feature = "api-20")]
15#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
16#[repr(C)]
17pub struct OH_AudioVolumeManager {
18 _unused: [u8; 0],
19}
20/// Prototype for the volume change function that is passed to
21/// [`OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback`].
22///
23/// # Arguments
24///
25/// * `userData` - userdata which is passed by register.
26///
27/// * `usage` - the stream usage type for which volume changed.
28///
29/// * `volumeLevel` - the latest volume level.
30///
31/// * `updateUi` - whether to show the volume change in UI.
32///
33///
34/// Available since API-level: 20
35#[cfg(feature = "api-20")]
36#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
37pub type OH_AudioVolumeManager_OnStreamVolumeChangeCallback = ::core::option::Option<
38 unsafe extern "C" fn(
39 userData: *mut ::core::ffi::c_void,
40 usage: OH_AudioStream_Usage,
41 volumeLevel: i32,
42 updateUi: bool,
43 ),
44>;
45/// Prototype for the volume change function that is passed to
46/// [`OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback`].
47///
48/// # Arguments
49///
50/// * `userData` - userdata which is passed by register.
51///
52/// * `ringerMode` - the latest ringer mode.
53///
54///
55/// Available since API-level: 20
56#[cfg(feature = "api-20")]
57#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
58pub type OH_AudioVolumeManager_OnRingerModeChangeCallback = ::core::option::Option<
59 unsafe extern "C" fn(userData: *mut ::core::ffi::c_void, ringerMode: OH_AudioRingerMode),
60>;
61extern "C" {
62 /// Fetch the audio volume manager handle, which is a singleton.
63 ///
64 /// # Arguments
65 ///
66 /// * `volumeManager` - output parameter to get [`OH_AudioVolumeManager`] instance.
67 ///
68 /// # Returns
69 ///
70 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
71 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
72 ///
73 ///
74 /// Available since API-level: 20
75 #[cfg(feature = "api-20")]
76 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
77 pub fn OH_AudioManager_GetAudioVolumeManager(
78 volumeManager: *mut *mut OH_AudioVolumeManager,
79 ) -> OH_AudioCommon_Result;
80 /// Obtains the maximum volume level for a specific stream usage type.
81 ///
82 /// # Arguments
83 ///
84 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
85 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
86 ///
87 /// * `usage` - the stream usage type used to map a specific volume type.
88 ///
89 /// * `maxVolumeLevel` - output parameter to get maximum volume level.
90 ///
91 /// # Returns
92 ///
93 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
94 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
95 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
96 ///
97 ///
98 /// Available since API-level: 20
99 #[cfg(feature = "api-20")]
100 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
101 pub fn OH_AudioVolumeManager_GetMaxVolumeByUsage(
102 volumeManager: *mut OH_AudioVolumeManager,
103 usage: OH_AudioStream_Usage,
104 maxVolumeLevel: *mut i32,
105 ) -> OH_AudioCommon_Result;
106 /// Obtains the minimum volume level for a specific stream usage type.
107 ///
108 /// # Arguments
109 ///
110 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
111 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
112 ///
113 /// * `usage` - the stream usage type used to map a specific volume type.
114 ///
115 /// * `minVolumeLevel` - output parameter to get minimum volume level.
116 ///
117 /// # Returns
118 ///
119 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
120 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
121 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
122 ///
123 ///
124 /// Available since API-level: 20
125 #[cfg(feature = "api-20")]
126 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
127 pub fn OH_AudioVolumeManager_GetMinVolumeByUsage(
128 volumeManager: *mut OH_AudioVolumeManager,
129 usage: OH_AudioStream_Usage,
130 minVolumeLevel: *mut i32,
131 ) -> OH_AudioCommon_Result;
132 /// Obtains the system volume level for a specific stream usage type.
133 ///
134 /// # Arguments
135 ///
136 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
137 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
138 ///
139 /// * `usage` - the stream usage type used to map a specific volume type.
140 ///
141 /// * `volumeLevel` - output parameter to get system volume level.
142 ///
143 /// # Returns
144 ///
145 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
146 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
147 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
148 ///
149 ///
150 /// Available since API-level: 20
151 #[cfg(feature = "api-20")]
152 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
153 pub fn OH_AudioVolumeManager_GetVolumeByUsage(
154 volumeManager: *mut OH_AudioVolumeManager,
155 usage: OH_AudioStream_Usage,
156 volumeLevel: *mut i32,
157 ) -> OH_AudioCommon_Result;
158 /// Checks whether a stream is muted for a specific stream usage type.
159 ///
160 /// # Arguments
161 ///
162 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
163 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
164 ///
165 /// * `usage` - the stream usage type used to map a specific volume type.
166 ///
167 /// * `muted` - output parameter to get whether the stream of this usage is muted.
168 ///
169 /// # Returns
170 ///
171 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
172 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
173 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
174 ///
175 ///
176 /// Available since API-level: 20
177 #[cfg(feature = "api-20")]
178 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
179 pub fn OH_AudioVolumeManager_IsMuteByUsage(
180 volumeManager: *mut OH_AudioVolumeManager,
181 usage: OH_AudioStream_Usage,
182 muted: *mut bool,
183 ) -> OH_AudioCommon_Result;
184 /// Register callback to receive stream volume changed events.
185 ///
186 /// # Arguments
187 ///
188 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
189 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
190 ///
191 /// * `usage` - the stream usage type used to map a specific volume type which caller want to listen.
192 ///
193 /// * `callback` - callback function which will be called when stream volume changed.
194 ///
195 /// * `userData` - pointer to a data structure that will be passed to the callback functions.
196 ///
197 /// # Returns
198 ///
199 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
200 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
201 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
202 ///
203 ///
204 /// Available since API-level: 20
205 #[cfg(feature = "api-20")]
206 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
207 pub fn OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(
208 volumeManager: *mut OH_AudioVolumeManager,
209 usage: OH_AudioStream_Usage,
210 callback: OH_AudioVolumeManager_OnStreamVolumeChangeCallback,
211 userData: *mut ::core::ffi::c_void,
212 ) -> OH_AudioCommon_Result;
213 /// Unregister stream volume change callback.
214 ///
215 /// # Arguments
216 ///
217 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
218 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
219 ///
220 /// * `callback` - callback function which registered in
221 /// [`OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback`].
222 ///
223 /// # Returns
224 ///
225 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
226 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
227 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
228 ///
229 ///
230 /// Available since API-level: 20
231 #[cfg(feature = "api-20")]
232 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
233 pub fn OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(
234 volumeManager: *mut OH_AudioVolumeManager,
235 callback: OH_AudioVolumeManager_OnStreamVolumeChangeCallback,
236 ) -> OH_AudioCommon_Result;
237 /// Get current ringer mode.
238 ///
239 /// # Arguments
240 ///
241 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
242 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
243 ///
244 /// * `ringerMode` - output parameter to get the ringer mode.
245 ///
246 /// # Returns
247 ///
248 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
249 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
250 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
251 ///
252 ///
253 /// Available since API-level: 20
254 #[cfg(feature = "api-20")]
255 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
256 pub fn OH_AudioVolumeManager_GetRingerMode(
257 volumeManager: *mut OH_AudioVolumeManager,
258 ringerMode: *mut OH_AudioRingerMode,
259 ) -> OH_AudioCommon_Result;
260 /// Register callback to receive ringer mode changed events.
261 ///
262 /// # Arguments
263 ///
264 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
265 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
266 ///
267 /// * `callback` - callback function which will be called when ringer mode changed.
268 ///
269 /// * `userData` - pointer to a data structure that will be passed to the callback functions.
270 ///
271 /// # Returns
272 ///
273 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
274 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
275 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
276 ///
277 ///
278 /// Available since API-level: 20
279 #[cfg(feature = "api-20")]
280 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
281 pub fn OH_AudioVolumeManager_RegisterRingerModeChangeCallback(
282 volumeManager: *mut OH_AudioVolumeManager,
283 callback: OH_AudioVolumeManager_OnRingerModeChangeCallback,
284 userData: *mut ::core::ffi::c_void,
285 ) -> OH_AudioCommon_Result;
286 /// Unregister ringer mode change callback.
287 ///
288 /// # Arguments
289 ///
290 /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
291 /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
292 ///
293 /// * `callback` - callback function which registered in
294 /// [`OH_AudioVolumeManager_RegisterRingerModeChangeCallback`].
295 ///
296 /// # Returns
297 ///
298 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
299 /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
300 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
301 ///
302 ///
303 /// Available since API-level: 20
304 #[cfg(feature = "api-20")]
305 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
306 pub fn OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(
307 volumeManager: *mut OH_AudioVolumeManager,
308 callback: OH_AudioVolumeManager_OnRingerModeChangeCallback,
309 ) -> OH_AudioCommon_Result;
310}