#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use crate::audio_common::OH_AudioCommon_Result;
#[cfg(feature = "api-13")]
use crate::audio_device_base::OH_AudioDevice_BlockStatus;
use crate::audio_device_base::{
OH_AudioDeviceDescriptorArray, OH_AudioDevice_ChangeType, OH_AudioDevice_Flag,
OH_AudioDevice_Usage,
};
use crate::audiostream_base::{OH_AudioStream_SourceType, OH_AudioStream_Usage};
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
#[repr(C)]
pub struct OH_AudioRoutingManager {
_unused: [u8; 0],
}
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub type OH_AudioRoutingManager_OnDeviceChangedCallback = ::core::option::Option<
unsafe extern "C" fn(
type_: OH_AudioDevice_ChangeType,
audioDeviceDescriptorArray: *mut OH_AudioDeviceDescriptorArray,
) -> i32,
>;
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
pub type OH_AudioRoutingManager_OnDeviceBlockStatusCallback = ::core::option::Option<
unsafe extern "C" fn(
audioDeviceDescriptorArray: *mut OH_AudioDeviceDescriptorArray,
status: OH_AudioDevice_BlockStatus,
userData: *mut ::core::ffi::c_void,
),
>;
extern "C" {
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioManager_GetAudioRoutingManager(
audioRoutingManager: *mut *mut OH_AudioRoutingManager,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_GetDevices(
audioRoutingManager: *mut OH_AudioRoutingManager,
deviceFlag: OH_AudioDevice_Flag,
audioDeviceDescriptorArray: *mut *mut OH_AudioDeviceDescriptorArray,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_GetAvailableDevices(
audioRoutingManager: *mut OH_AudioRoutingManager,
deviceUsage: OH_AudioDevice_Usage,
audioDeviceDescriptorArray: *mut *mut OH_AudioDeviceDescriptorArray,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_GetPreferredOutputDevice(
audioRoutingManager: *mut OH_AudioRoutingManager,
streamUsage: OH_AudioStream_Usage,
audioDeviceDescriptorArray: *mut *mut OH_AudioDeviceDescriptorArray,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_GetPreferredInputDevice(
audioRoutingManager: *mut OH_AudioRoutingManager,
sourceType: OH_AudioStream_SourceType,
audioDeviceDescriptorArray: *mut *mut OH_AudioDeviceDescriptorArray,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_RegisterDeviceChangeCallback(
audioRoutingManager: *mut OH_AudioRoutingManager,
deviceFlag: OH_AudioDevice_Flag,
callback: OH_AudioRoutingManager_OnDeviceChangedCallback,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_UnregisterDeviceChangeCallback(
audioRoutingManager: *mut OH_AudioRoutingManager,
callback: OH_AudioRoutingManager_OnDeviceChangedCallback,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRoutingManager_ReleaseDevices(
audioRoutingManager: *mut OH_AudioRoutingManager,
audioDeviceDescriptorArray: *mut OH_AudioDeviceDescriptorArray,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
pub fn OH_AudioRoutingManager_IsMicBlockDetectionSupported(
audioRoutingManager: *mut OH_AudioRoutingManager,
supported: *mut bool,
) -> OH_AudioCommon_Result;
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
pub fn OH_AudioRoutingManager_SetMicBlockStatusCallback(
audioRoutingManager: *mut OH_AudioRoutingManager,
callback: OH_AudioRoutingManager_OnDeviceBlockStatusCallback,
userData: *mut ::core::ffi::c_void,
) -> OH_AudioCommon_Result;
}