use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AVAudioConverterPrimeMethod(pub NSInteger);
impl AVAudioConverterPrimeMethod {
#[doc(alias = "AVAudioConverterPrimeMethod_Pre")]
pub const Pre: Self = Self(0);
#[doc(alias = "AVAudioConverterPrimeMethod_Normal")]
pub const Normal: Self = Self(1);
#[doc(alias = "AVAudioConverterPrimeMethod_None")]
pub const None: Self = Self(2);
}
unsafe impl Encode for AVAudioConverterPrimeMethod {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for AVAudioConverterPrimeMethod {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "AVAudioTypes")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AVAudioConverterPrimeInfo {
pub leadingFrames: AVAudioFrameCount,
pub trailingFrames: AVAudioFrameCount,
}
#[cfg(feature = "AVAudioTypes")]
unsafe impl Encode for AVAudioConverterPrimeInfo {
const ENCODING: Encoding = Encoding::Struct(
"AVAudioConverterPrimeInfo",
&[<AVAudioFrameCount>::ENCODING, <AVAudioFrameCount>::ENCODING],
);
}
#[cfg(feature = "AVAudioTypes")]
unsafe impl RefEncode for AVAudioConverterPrimeInfo {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AVAudioConverterInputStatus(pub NSInteger);
impl AVAudioConverterInputStatus {
#[doc(alias = "AVAudioConverterInputStatus_HaveData")]
pub const HaveData: Self = Self(0);
#[doc(alias = "AVAudioConverterInputStatus_NoDataNow")]
pub const NoDataNow: Self = Self(1);
#[doc(alias = "AVAudioConverterInputStatus_EndOfStream")]
pub const EndOfStream: Self = Self(2);
}
unsafe impl Encode for AVAudioConverterInputStatus {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for AVAudioConverterInputStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AVAudioConverterOutputStatus(pub NSInteger);
impl AVAudioConverterOutputStatus {
#[doc(alias = "AVAudioConverterOutputStatus_HaveData")]
pub const HaveData: Self = Self(0);
#[doc(alias = "AVAudioConverterOutputStatus_InputRanDry")]
pub const InputRanDry: Self = Self(1);
#[doc(alias = "AVAudioConverterOutputStatus_EndOfStream")]
pub const EndOfStream: Self = Self(2);
#[doc(alias = "AVAudioConverterOutputStatus_Error")]
pub const Error: Self = Self(3);
}
unsafe impl Encode for AVAudioConverterOutputStatus {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for AVAudioConverterOutputStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(all(
feature = "AVAudioBuffer",
feature = "AVAudioTypes",
feature = "block2"
))]
pub type AVAudioConverterInputBlock = *mut block2::DynBlock<
dyn Fn(AVAudioPacketCount, NonNull<AVAudioConverterInputStatus>) -> *mut AVAudioBuffer,
>;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAudioConverter;
);
unsafe impl Send for AVAudioConverter {}
unsafe impl Sync for AVAudioConverter {}
extern_conformance!(
unsafe impl NSObjectProtocol for AVAudioConverter {}
);
impl AVAudioConverter {
extern_methods!(
#[cfg(feature = "AVAudioFormat")]
#[unsafe(method(initFromFormat:toFormat:))]
#[unsafe(method_family = init)]
pub unsafe fn initFromFormat_toFormat(
this: Allocated<Self>,
from_format: &AVAudioFormat,
to_format: &AVAudioFormat,
) -> Option<Retained<Self>>;
#[unsafe(method(reset))]
#[unsafe(method_family = none)]
pub unsafe fn reset(&self);
#[cfg(feature = "AVAudioFormat")]
#[unsafe(method(inputFormat))]
#[unsafe(method_family = none)]
pub unsafe fn inputFormat(&self) -> Retained<AVAudioFormat>;
#[cfg(feature = "AVAudioFormat")]
#[unsafe(method(outputFormat))]
#[unsafe(method_family = none)]
pub unsafe fn outputFormat(&self) -> Retained<AVAudioFormat>;
#[unsafe(method(channelMap))]
#[unsafe(method_family = none)]
pub unsafe fn channelMap(&self) -> Retained<NSArray<NSNumber>>;
#[unsafe(method(setChannelMap:))]
#[unsafe(method_family = none)]
pub unsafe fn setChannelMap(&self, channel_map: &NSArray<NSNumber>);
#[unsafe(method(magicCookie))]
#[unsafe(method_family = none)]
pub unsafe fn magicCookie(&self) -> Option<Retained<NSData>>;
#[unsafe(method(setMagicCookie:))]
#[unsafe(method_family = none)]
pub unsafe fn setMagicCookie(&self, magic_cookie: Option<&NSData>);
#[unsafe(method(downmix))]
#[unsafe(method_family = none)]
pub unsafe fn downmix(&self) -> bool;
#[unsafe(method(setDownmix:))]
#[unsafe(method_family = none)]
pub unsafe fn setDownmix(&self, downmix: bool);
#[unsafe(method(dither))]
#[unsafe(method_family = none)]
pub unsafe fn dither(&self) -> bool;
#[unsafe(method(setDither:))]
#[unsafe(method_family = none)]
pub unsafe fn setDither(&self, dither: bool);
#[unsafe(method(sampleRateConverterQuality))]
#[unsafe(method_family = none)]
pub unsafe fn sampleRateConverterQuality(&self) -> NSInteger;
#[unsafe(method(setSampleRateConverterQuality:))]
#[unsafe(method_family = none)]
pub unsafe fn setSampleRateConverterQuality(
&self,
sample_rate_converter_quality: NSInteger,
);
#[unsafe(method(sampleRateConverterAlgorithm))]
#[unsafe(method_family = none)]
pub unsafe fn sampleRateConverterAlgorithm(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setSampleRateConverterAlgorithm:))]
#[unsafe(method_family = none)]
pub unsafe fn setSampleRateConverterAlgorithm(
&self,
sample_rate_converter_algorithm: Option<&NSString>,
);
#[unsafe(method(primeMethod))]
#[unsafe(method_family = none)]
pub unsafe fn primeMethod(&self) -> AVAudioConverterPrimeMethod;
#[unsafe(method(setPrimeMethod:))]
#[unsafe(method_family = none)]
pub unsafe fn setPrimeMethod(&self, prime_method: AVAudioConverterPrimeMethod);
#[cfg(feature = "AVAudioTypes")]
#[unsafe(method(primeInfo))]
#[unsafe(method_family = none)]
pub unsafe fn primeInfo(&self) -> AVAudioConverterPrimeInfo;
#[cfg(feature = "AVAudioTypes")]
#[unsafe(method(setPrimeInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn setPrimeInfo(&self, prime_info: AVAudioConverterPrimeInfo);
#[unsafe(method(audioSyncPacketFrequency))]
#[unsafe(method_family = none)]
pub unsafe fn audioSyncPacketFrequency(&self) -> NSInteger;
#[unsafe(method(setAudioSyncPacketFrequency:))]
#[unsafe(method_family = none)]
pub unsafe fn setAudioSyncPacketFrequency(&self, audio_sync_packet_frequency: NSInteger);
#[cfg(feature = "AVAudioSettings")]
#[unsafe(method(contentSource))]
#[unsafe(method_family = none)]
pub unsafe fn contentSource(&self) -> AVAudioContentSource;
#[cfg(feature = "AVAudioSettings")]
#[unsafe(method(setContentSource:))]
#[unsafe(method_family = none)]
pub unsafe fn setContentSource(&self, content_source: AVAudioContentSource);
#[cfg(feature = "AVAudioSettings")]
#[unsafe(method(dynamicRangeControlConfiguration))]
#[unsafe(method_family = none)]
pub unsafe fn dynamicRangeControlConfiguration(
&self,
) -> AVAudioDynamicRangeControlConfiguration;
#[cfg(feature = "AVAudioSettings")]
#[unsafe(method(setDynamicRangeControlConfiguration:))]
#[unsafe(method_family = none)]
pub unsafe fn setDynamicRangeControlConfiguration(
&self,
dynamic_range_control_configuration: AVAudioDynamicRangeControlConfiguration,
);
#[cfg(feature = "AVAudioBuffer")]
#[unsafe(method(convertToBuffer:fromBuffer:error:_))]
#[unsafe(method_family = none)]
pub unsafe fn convertToBuffer_fromBuffer_error(
&self,
output_buffer: &AVAudioPCMBuffer,
input_buffer: &AVAudioPCMBuffer,
) -> Result<(), Retained<NSError>>;
#[cfg(all(
feature = "AVAudioBuffer",
feature = "AVAudioTypes",
feature = "block2"
))]
#[unsafe(method(convertToBuffer:error:withInputFromBlock:))]
#[unsafe(method_family = none)]
pub unsafe fn convertToBuffer_error_withInputFromBlock(
&self,
output_buffer: &AVAudioBuffer,
out_error: Option<&mut Option<Retained<NSError>>>,
input_block: AVAudioConverterInputBlock,
) -> AVAudioConverterOutputStatus;
);
}
impl AVAudioConverter {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
impl AVAudioConverter {
extern_methods!(
#[unsafe(method(bitRate))]
#[unsafe(method_family = none)]
pub unsafe fn bitRate(&self) -> NSInteger;
#[unsafe(method(setBitRate:))]
#[unsafe(method_family = none)]
pub unsafe fn setBitRate(&self, bit_rate: NSInteger);
#[unsafe(method(bitRateStrategy))]
#[unsafe(method_family = none)]
pub unsafe fn bitRateStrategy(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setBitRateStrategy:))]
#[unsafe(method_family = none)]
pub unsafe fn setBitRateStrategy(&self, bit_rate_strategy: Option<&NSString>);
#[unsafe(method(maximumOutputPacketSize))]
#[unsafe(method_family = none)]
pub unsafe fn maximumOutputPacketSize(&self) -> NSInteger;
#[unsafe(method(availableEncodeBitRates))]
#[unsafe(method_family = none)]
pub unsafe fn availableEncodeBitRates(&self) -> Option<Retained<NSArray<NSNumber>>>;
#[unsafe(method(applicableEncodeBitRates))]
#[unsafe(method_family = none)]
pub unsafe fn applicableEncodeBitRates(&self) -> Option<Retained<NSArray<NSNumber>>>;
#[unsafe(method(availableEncodeSampleRates))]
#[unsafe(method_family = none)]
pub unsafe fn availableEncodeSampleRates(&self) -> Option<Retained<NSArray<NSNumber>>>;
#[unsafe(method(applicableEncodeSampleRates))]
#[unsafe(method_family = none)]
pub unsafe fn applicableEncodeSampleRates(&self) -> Option<Retained<NSArray<NSNumber>>>;
#[unsafe(method(availableEncodeChannelLayoutTags))]
#[unsafe(method_family = none)]
pub unsafe fn availableEncodeChannelLayoutTags(
&self,
) -> Option<Retained<NSArray<NSNumber>>>;
);
}