#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#[cfg(feature = "api-20")]
use crate::audio_device_base::OH_AudioDeviceDescriptorArray;
use crate::audiostream_base::*;
use libc::clockid_t;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioCapturer_OnReadDataCallback = ::core::option::Option<
unsafe extern "C" fn(
capturer: *mut OH_AudioCapturer,
userData: *mut ::core::ffi::c_void,
audioData: *mut ::core::ffi::c_void,
audioDataSize: i32,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioCapturer_OnDeviceChangeCallback = ::core::option::Option<
unsafe extern "C" fn(
capturer: *mut OH_AudioCapturer,
userData: *mut ::core::ffi::c_void,
deviceArray: *mut OH_AudioDeviceDescriptorArray,
),
>;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_AudioCapturer_OnInterruptCallback = ::core::option::Option<
unsafe extern "C" fn(
capturer: *mut OH_AudioCapturer,
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_AudioCapturer_OnErrorCallback = ::core::option::Option<
unsafe extern "C" fn(
capturer: *mut OH_AudioCapturer,
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_AudioCapturer_OnFastStatusChange = ::core::option::Option<
unsafe extern "C" fn(
capturer: *mut OH_AudioCapturer,
userData: *mut ::core::ffi::c_void,
status: OH_AudioStream_FastStatus,
),
>;
#[cfg(feature = "api-23")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-23")))]
pub type OH_AudioCapturer_OnPlaybackCaptureStartCallback = ::core::option::Option<
unsafe extern "C" fn(
capturer: *mut OH_AudioCapturer,
userData: *mut ::core::ffi::c_void,
state: OH_AudioStream_PlaybackCaptureStartState,
),
>;
extern "C" {
pub fn OH_AudioCapturer_Release(capturer: *mut OH_AudioCapturer) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_Start(capturer: *mut OH_AudioCapturer) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_Pause(capturer: *mut OH_AudioCapturer) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_Stop(capturer: *mut OH_AudioCapturer) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_Flush(capturer: *mut OH_AudioCapturer) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetCurrentState(
capturer: *mut OH_AudioCapturer,
state: *mut OH_AudioStream_State,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetLatencyMode(
capturer: *mut OH_AudioCapturer,
latencyMode: *mut OH_AudioStream_LatencyMode,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetStreamId(
capturer: *mut OH_AudioCapturer,
streamId: *mut u32,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetSamplingRate(
capturer: *mut OH_AudioCapturer,
rate: *mut i32,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetChannelCount(
capturer: *mut OH_AudioCapturer,
channelCount: *mut i32,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetSampleFormat(
capturer: *mut OH_AudioCapturer,
sampleFormat: *mut OH_AudioStream_SampleFormat,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetEncodingType(
capturer: *mut OH_AudioCapturer,
encodingType: *mut OH_AudioStream_EncodingType,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetCapturerInfo(
capturer: *mut OH_AudioCapturer,
sourceType: *mut OH_AudioStream_SourceType,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetFrameSizeInCallback(
capturer: *mut OH_AudioCapturer,
frameSize: *mut i32,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetTimestamp(
capturer: *mut OH_AudioCapturer,
clockId: clockid_t,
framePosition: *mut i64,
timestamp: *mut i64,
) -> OH_AudioStream_Result;
pub fn OH_AudioCapturer_GetFramesRead(
capturer: *mut OH_AudioCapturer,
frames: *mut i64,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AudioCapturer_GetOverflowCount(
capturer: *mut OH_AudioCapturer,
count: *mut u32,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_AudioCapturer_GetFastStatus(
capturer: *mut OH_AudioCapturer,
status: *mut OH_AudioStream_FastStatus,
) -> OH_AudioStream_Result;
#[cfg(feature = "api-23")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-23")))]
pub fn OH_AudioCapturer_RequestPlaybackCaptureStart(
capturer: *mut OH_AudioCapturer,
callback: OH_AudioCapturer_OnPlaybackCaptureStartCallback,
userData: *mut ::core::ffi::c_void,
) -> OH_AudioStream_Result;
}