#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#[cfg(feature = "api-12")]
use crate::audio_device_base::OH_AudioDevice_Type;
use crate::audiostream_base::*;
use libc::clockid_t;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioRenderer_OnInterruptCallback = ::core::option::Option<
unsafe extern "C" fn(
renderer: *mut OH_AudioRenderer,
userData: *mut ::core::ffi::c_void,
type_: OH_AudioInterrupt_ForceType,
hint: OH_AudioInterrupt_Hint,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioRenderer_OnErrorCallback = ::core::option::Option<
unsafe extern "C" fn(
renderer: *mut OH_AudioRenderer,
userData: *mut ::core::ffi::c_void,
error: OH_AudioStream_Result,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioRenderer_OnFastStatusChange = ::core::option::Option<
unsafe extern "C" fn(
renderer: *mut OH_AudioRenderer,
userData: *mut ::core::ffi::c_void,
status: OH_AudioStream_FastStatus,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioRenderer_OnWriteDataCallbackAdvanced = ::core::option::Option<
unsafe extern "C" fn(
renderer: *mut OH_AudioRenderer,
userData: *mut ::core::ffi::c_void,
audioData: *mut ::core::ffi::c_void,
audioDataSize: i32,
) -> i32,
>;
extern "C" {
pub fn OH_AudioRenderer_Release(renderer: *mut OH_AudioRenderer) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_Start(renderer: *mut OH_AudioRenderer) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_Pause(renderer: *mut OH_AudioRenderer) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_Stop(renderer: *mut OH_AudioRenderer) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_Flush(renderer: *mut OH_AudioRenderer) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetCurrentState(
renderer: *mut OH_AudioRenderer,
state: *mut OH_AudioStream_State,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetSamplingRate(
renderer: *mut OH_AudioRenderer,
rate: *mut i32,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetStreamId(
renderer: *mut OH_AudioRenderer,
streamId: *mut u32,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetChannelCount(
renderer: *mut OH_AudioRenderer,
channelCount: *mut i32,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetSampleFormat(
renderer: *mut OH_AudioRenderer,
sampleFormat: *mut OH_AudioStream_SampleFormat,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetLatencyMode(
renderer: *mut OH_AudioRenderer,
latencyMode: *mut OH_AudioStream_LatencyMode,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetRendererInfo(
renderer: *mut OH_AudioRenderer,
usage: *mut OH_AudioStream_Usage,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetEncodingType(
renderer: *mut OH_AudioRenderer,
encodingType: *mut OH_AudioStream_EncodingType,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetFramesWritten(
renderer: *mut OH_AudioRenderer,
frames: *mut i64,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetTimestamp(
renderer: *mut OH_AudioRenderer,
clockId: clockid_t,
framePosition: *mut i64,
timestamp: *mut i64,
) -> OH_AudioStream_Result;
pub fn OH_AudioRenderer_GetFrameSizeInCallback(
renderer: *mut OH_AudioRenderer,
frameSize: *mut i32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-11")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-11")))]
pub fn OH_AudioRenderer_GetSpeed(
renderer: *mut OH_AudioRenderer,
speed: *mut f32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-11")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-11")))]
pub fn OH_AudioRenderer_SetSpeed(
renderer: *mut OH_AudioRenderer,
speed: f32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_SetVolume(
renderer: *mut OH_AudioRenderer,
volume: f32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_SetVolumeWithRamp(
renderer: *mut OH_AudioRenderer,
volume: f32,
durationMs: i32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_GetVolume(
renderer: *mut OH_AudioRenderer,
volume: *mut f32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_SetMarkPosition(
renderer: *mut OH_AudioRenderer,
samplePos: u32,
callback: OH_AudioRenderer_OnMarkReachedCallback,
userData: *mut ::core::ffi::c_void,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_CancelMark(renderer: *mut OH_AudioRenderer) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_GetUnderflowCount(
renderer: *mut OH_AudioRenderer,
count: *mut u32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_GetChannelLayout(
renderer: *mut OH_AudioRenderer,
channelLayout: *mut OH_AudioChannelLayout,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_GetEffectMode(
renderer: *mut OH_AudioRenderer,
effectMode: *mut OH_AudioStream_AudioEffectMode,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_SetEffectMode(
renderer: *mut OH_AudioRenderer,
effectMode: OH_AudioStream_AudioEffectMode,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_GetRendererPrivacy(
renderer: *mut OH_AudioRenderer,
privacy: *mut OH_AudioStream_PrivacyType,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_SetSilentModeAndMixWithOthers(
renderer: *mut OH_AudioRenderer,
on: bool,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_GetSilentModeAndMixWithOthers(
renderer: *mut OH_AudioRenderer,
on: *mut bool,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioRenderer_SetDefaultOutputDevice(
renderer: *mut OH_AudioRenderer,
deviceType: OH_AudioDevice_Type,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-15")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
pub fn OH_AudioRenderer_GetAudioTimestampInfo(
renderer: *mut OH_AudioRenderer,
framePosition: *mut i64,
timestamp: *mut i64,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_AudioRenderer_GetFastStatus(
renderer: *mut OH_AudioRenderer,
status: *mut OH_AudioStream_FastStatus,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_AudioRenderer_SetLoudnessGain(
renderer: *mut OH_AudioRenderer,
loudnessGain: f32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_AudioRenderer_GetLoudnessGain(
renderer: *mut OH_AudioRenderer,
loudnessGain: *mut f32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-23")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-23")))]
pub fn OH_AudioRenderer_GetLatency(
renderer: *mut OH_AudioRenderer,
type_: OH_AudioStream_LatencyType,
latencyMs: *mut i32,
) -> OH_AudioStream_Result;
}