ohaudio-sys 0.1.0

Raw Bindings to the audio module of OpenHarmony
Documentation
// automatically generated by rust-bindgen 0.71.1

#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use crate::audio_common::{OH_AudioCommon_Result, OH_AudioRingerMode};
use crate::audiostream_base::OH_AudioStream_Usage;

/// Declare the audio volume manager.
/// Audio volume manager provides many functions for developer to get the information about system volume.
///
///
/// Available since API-level: 20
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct OH_AudioVolumeManager {
    _unused: [u8; 0],
}
/// Prototype for the volume change function that is passed to
/// [`OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback`].
///
/// # Arguments
///
/// * `userData` - userdata which is passed by register.
///
/// * `usage` - the stream usage type for which volume changed.
///
/// * `volumeLevel` - the latest volume level.
///
/// * `updateUi` - whether to show the volume change in UI.
///
///
/// Available since API-level: 20
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioVolumeManager_OnStreamVolumeChangeCallback = ::core::option::Option<
    unsafe extern "C" fn(
        userData: *mut ::core::ffi::c_void,
        usage: OH_AudioStream_Usage,
        volumeLevel: i32,
        updateUi: bool,
    ),
>;
/// Prototype for the volume change function that is passed to
/// [`OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback`].
///
/// # Arguments
///
/// * `userData` - userdata which is passed by register.
///
/// * `ringerMode` - the latest ringer mode.
///
///
/// Available since API-level: 20
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioVolumeManager_OnRingerModeChangeCallback = ::core::option::Option<
    unsafe extern "C" fn(userData: *mut ::core::ffi::c_void, ringerMode: OH_AudioRingerMode),
>;
extern "C" {
    /// Fetch the audio volume manager handle, which is a singleton.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - output parameter to get [`OH_AudioVolumeManager`] instance.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioManager_GetAudioVolumeManager(
        volumeManager: *mut *mut OH_AudioVolumeManager,
    ) -> OH_AudioCommon_Result;
    /// Obtains the maximum volume level for a specific stream usage type.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `usage` - the stream usage type used to map a specific volume type.
    ///
    /// * `maxVolumeLevel` - output parameter to get maximum volume level.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_GetMaxVolumeByUsage(
        volumeManager: *mut OH_AudioVolumeManager,
        usage: OH_AudioStream_Usage,
        maxVolumeLevel: *mut i32,
    ) -> OH_AudioCommon_Result;
    /// Obtains the minimum volume level for a specific stream usage type.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `usage` - the stream usage type used to map a specific volume type.
    ///
    /// * `minVolumeLevel` - output parameter to get minimum volume level.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_GetMinVolumeByUsage(
        volumeManager: *mut OH_AudioVolumeManager,
        usage: OH_AudioStream_Usage,
        minVolumeLevel: *mut i32,
    ) -> OH_AudioCommon_Result;
    /// Obtains the system volume level for a specific stream usage type.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `usage` - the stream usage type used to map a specific volume type.
    ///
    /// * `volumeLevel` - output parameter to get system volume level.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_GetVolumeByUsage(
        volumeManager: *mut OH_AudioVolumeManager,
        usage: OH_AudioStream_Usage,
        volumeLevel: *mut i32,
    ) -> OH_AudioCommon_Result;
    /// Checks whether a stream is muted for a specific stream usage type.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `usage` - the stream usage type used to map a specific volume type.
    ///
    /// * `muted` - output parameter to get whether the stream of this usage is muted.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_IsMuteByUsage(
        volumeManager: *mut OH_AudioVolumeManager,
        usage: OH_AudioStream_Usage,
        muted: *mut bool,
    ) -> OH_AudioCommon_Result;
    /// Register callback to receive stream volume changed events.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `usage` - the stream usage type used to map a specific volume type which caller want to listen.
    ///
    /// * `callback` - callback function which will be called when stream volume changed.
    ///
    /// * `userData` - pointer to a data structure that will be passed to the callback functions.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr or invalid
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(
        volumeManager: *mut OH_AudioVolumeManager,
        usage: OH_AudioStream_Usage,
        callback: OH_AudioVolumeManager_OnStreamVolumeChangeCallback,
        userData: *mut ::core::ffi::c_void,
    ) -> OH_AudioCommon_Result;
    /// Unregister stream volume change callback.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `callback` - callback function which registered in
    /// [`OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback`].
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(
        volumeManager: *mut OH_AudioVolumeManager,
        callback: OH_AudioVolumeManager_OnStreamVolumeChangeCallback,
    ) -> OH_AudioCommon_Result;
    /// Get current ringer mode.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `ringerMode` - output parameter to get the ringer mode.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_GetRingerMode(
        volumeManager: *mut OH_AudioVolumeManager,
        ringerMode: *mut OH_AudioRingerMode,
    ) -> OH_AudioCommon_Result;
    /// Register callback to receive ringer mode changed events.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `callback` - callback function which will be called when ringer mode changed.
    ///
    /// * `userData` - pointer to a data structure that will be passed to the callback functions.
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_RegisterRingerModeChangeCallback(
        volumeManager: *mut OH_AudioVolumeManager,
        callback: OH_AudioVolumeManager_OnRingerModeChangeCallback,
        userData: *mut ::core::ffi::c_void,
    ) -> OH_AudioCommon_Result;
    /// Unregister ringer mode change callback.
    ///
    /// # Arguments
    ///
    /// * `volumeManager` - [`OH_AudioVolumeManager`] handle
    /// provided by [`OH_AudioManager_GetAudioVolumeManager`].
    ///
    /// * `callback` - callback function which registered in
    /// [`OH_AudioVolumeManager_RegisterRingerModeChangeCallback`].
    ///
    /// # Returns
    ///
    /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
    /// [`#AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`] if input param is nullptr
    /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] system process error occurs
    ///
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(
        volumeManager: *mut OH_AudioVolumeManager,
        callback: OH_AudioVolumeManager_OnRingerModeChangeCallback,
    ) -> OH_AudioCommon_Result;
}