Skip to main content

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}