use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-audio-types")]
use objc2_core_audio_types::*;
use crate::*;
pub type AudioFormatPropertyID = u32;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioPanningMode(pub u32);
impl AudioPanningMode {
#[doc(alias = "kPanningMode_SoundField")]
pub const PanningMode_SoundField: Self = Self(3);
#[doc(alias = "kPanningMode_VectorBasedPanning")]
pub const PanningMode_VectorBasedPanning: Self = Self(4);
}
unsafe impl Encode for AudioPanningMode {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for AudioPanningMode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-audio-types")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioPanningInfo {
pub mPanningMode: AudioPanningMode,
pub mCoordinateFlags: u32,
pub mCoordinates: [f32; 3],
pub mGainScale: f32,
pub mOutputChannelMap: NonNull<AudioChannelLayout>,
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl Encode for AudioPanningInfo {
const ENCODING: Encoding = Encoding::Struct(
"AudioPanningInfo",
&[
<AudioPanningMode>::ENCODING,
<u32>::ENCODING,
<[f32; 3]>::ENCODING,
<f32>::ENCODING,
<NonNull<AudioChannelLayout>>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl RefEncode for AudioPanningInfo {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioBalanceFadeType(pub u32);
impl AudioBalanceFadeType {
#[doc(alias = "kAudioBalanceFadeType_MaxUnityGain")]
pub const MaxUnityGain: Self = Self(0);
#[doc(alias = "kAudioBalanceFadeType_EqualPower")]
pub const EqualPower: Self = Self(1);
}
unsafe impl Encode for AudioBalanceFadeType {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for AudioBalanceFadeType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-audio-types")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioBalanceFade {
pub mLeftRightBalance: f32,
pub mBackFrontFade: f32,
pub mType: AudioBalanceFadeType,
pub mChannelLayout: NonNull<AudioChannelLayout>,
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl Encode for AudioBalanceFade {
const ENCODING: Encoding = Encoding::Struct(
"AudioBalanceFade",
&[
<f32>::ENCODING,
<f32>::ENCODING,
<AudioBalanceFadeType>::ENCODING,
<NonNull<AudioChannelLayout>>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl RefEncode for AudioBalanceFade {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-audio-types")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFormatInfo {
pub mASBD: AudioStreamBasicDescription,
pub mMagicCookie: NonNull<c_void>,
pub mMagicCookieSize: u32,
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl Encode for AudioFormatInfo {
const ENCODING: Encoding = Encoding::Struct(
"AudioFormatInfo",
&[
<AudioStreamBasicDescription>::ENCODING,
<NonNull<c_void>>::ENCODING,
<u32>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl RefEncode for AudioFormatInfo {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-audio-types")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct ExtendedAudioFormatInfo {
pub mASBD: AudioStreamBasicDescription,
pub mMagicCookie: *const c_void,
pub mMagicCookieSize: u32,
pub mClassDescription: AudioClassDescription,
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl Encode for ExtendedAudioFormatInfo {
const ENCODING: Encoding = Encoding::Struct(
"ExtendedAudioFormatInfo",
&[
<AudioStreamBasicDescription>::ENCODING,
<*const c_void>::ENCODING,
<u32>::ENCODING,
<AudioClassDescription>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-audio-types")]
unsafe impl RefEncode for ExtendedAudioFormatInfo {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kAudioFormatProperty_FormatInfo: AudioFormatPropertyID = 0x666d7469;
pub const kAudioFormatProperty_FormatName: AudioFormatPropertyID = 0x666e616d;
pub const kAudioFormatProperty_EncodeFormatIDs: AudioFormatPropertyID = 0x61636f66;
pub const kAudioFormatProperty_DecodeFormatIDs: AudioFormatPropertyID = 0x61636966;
pub const kAudioFormatProperty_FormatList: AudioFormatPropertyID = 0x666c7374;
pub const kAudioFormatProperty_ASBDFromESDS: AudioFormatPropertyID = 0x65737364;
pub const kAudioFormatProperty_ChannelLayoutFromESDS: AudioFormatPropertyID = 0x6573636c;
pub const kAudioFormatProperty_OutputFormatList: AudioFormatPropertyID = 0x6f666c73;
pub const kAudioFormatProperty_FirstPlayableFormatFromList: AudioFormatPropertyID = 0x6670666c;
pub const kAudioFormatProperty_FormatIsVBR: AudioFormatPropertyID = 0x66766272;
pub const kAudioFormatProperty_FormatIsExternallyFramed: AudioFormatPropertyID = 0x66657866;
pub const kAudioFormatProperty_FormatEmploysDependentPackets: AudioFormatPropertyID = 0x66646570;
pub const kAudioFormatProperty_FormatIsEncrypted: AudioFormatPropertyID = 0x63727970;
pub const kAudioFormatProperty_Encoders: AudioFormatPropertyID = 0x6176656e;
pub const kAudioFormatProperty_Decoders: AudioFormatPropertyID = 0x61766465;
pub const kAudioFormatProperty_AvailableEncodeBitRates: AudioFormatPropertyID = 0x61656272;
pub const kAudioFormatProperty_AvailableEncodeSampleRates: AudioFormatPropertyID = 0x61657372;
pub const kAudioFormatProperty_AvailableEncodeChannelLayoutTags: AudioFormatPropertyID = 0x6165636c;
pub const kAudioFormatProperty_AvailableEncodeNumberChannels: AudioFormatPropertyID = 0x61766e63;
pub const kAudioFormatProperty_AvailableDecodeNumberChannels: AudioFormatPropertyID = 0x61646e63;
pub const kAudioFormatProperty_ASBDFromMPEGPacket: AudioFormatPropertyID = 0x61646d70;
pub const kAudioFormatProperty_BitmapForLayoutTag: AudioFormatPropertyID = 0x626d7467;
pub const kAudioFormatProperty_MatrixMixMap: AudioFormatPropertyID = 0x6d6d6170;
pub const kAudioFormatProperty_ChannelMap: AudioFormatPropertyID = 0x63686d70;
pub const kAudioFormatProperty_NumberOfChannelsForLayout: AudioFormatPropertyID = 0x6e63686d;
pub const kAudioFormatProperty_AreChannelLayoutsEquivalent: AudioFormatPropertyID = 0x63686571;
pub const kAudioFormatProperty_ChannelLayoutHash: AudioFormatPropertyID = 0x63686861;
pub const kAudioFormatProperty_ValidateChannelLayout: AudioFormatPropertyID = 0x7661636c;
pub const kAudioFormatProperty_ChannelLayoutForTag: AudioFormatPropertyID = 0x636d706c;
pub const kAudioFormatProperty_TagForChannelLayout: AudioFormatPropertyID = 0x636d7074;
pub const kAudioFormatProperty_ChannelLayoutName: AudioFormatPropertyID = 0x6c6f6e6d;
pub const kAudioFormatProperty_ChannelLayoutSimpleName: AudioFormatPropertyID = 0x6c736e6d;
pub const kAudioFormatProperty_ChannelLayoutForBitmap: AudioFormatPropertyID = 0x636d7062;
pub const kAudioFormatProperty_ChannelName: AudioFormatPropertyID = 0x636e616d;
pub const kAudioFormatProperty_ChannelShortName: AudioFormatPropertyID = 0x63736e6d;
pub const kAudioFormatProperty_TagsForNumberOfChannels: AudioFormatPropertyID = 0x74616763;
pub const kAudioFormatProperty_PanningMatrix: AudioFormatPropertyID = 0x70616e6d;
pub const kAudioFormatProperty_BalanceFade: AudioFormatPropertyID = 0x62616c66;
pub const kAudioFormatProperty_ID3TagSize: AudioFormatPropertyID = 0x69643373;
pub const kAudioFormatProperty_ID3TagToDictionary: AudioFormatPropertyID = 0x69643364;
extern "C-unwind" {
pub fn AudioFormatGetPropertyInfo(
in_property_id: AudioFormatPropertyID,
in_specifier_size: u32,
in_specifier: *const c_void,
out_property_data_size: NonNull<u32>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFormatGetProperty(
in_property_id: AudioFormatPropertyID,
in_specifier_size: u32,
in_specifier: *const c_void,
io_property_data_size: *mut u32,
out_property_data: *mut c_void,
) -> OSStatus;
}
pub const kAudioFormatUnspecifiedError: OSStatus = 0x77686174;
pub const kAudioFormatUnsupportedPropertyError: OSStatus = 0x70726f70;
pub const kAudioFormatBadPropertySizeError: OSStatus = 0x2173697a;
pub const kAudioFormatBadSpecifierSizeError: OSStatus = 0x21737063;
pub const kAudioFormatUnsupportedDataFormatError: OSStatus = 0x666d743f;
pub const kAudioFormatUnknownFormatError: OSStatus = 0x21666d74;