use core::cell::UnsafeCell;
use core::ffi::*;
use core::marker::{PhantomData, PhantomPinned};
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-audio-types")]
use objc2_core_audio_types::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use crate::*;
pub const kAFInfoDictionary_Album: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"album\0") };
pub const kAFInfoDictionary_ApproximateDurationInSeconds: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"approximate duration in seconds\0") };
pub const kAFInfoDictionary_Artist: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"artist\0") };
pub const kAFInfoDictionary_ChannelLayout: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"channel layout\0") };
pub const kAFInfoDictionary_Comments: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"comments\0") };
pub const kAFInfoDictionary_Composer: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"composer\0") };
pub const kAFInfoDictionary_Copyright: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"copyright\0") };
pub const kAFInfoDictionary_EncodingApplication: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"encoding application\0") };
pub const kAFInfoDictionary_Genre: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"genre\0") };
pub const kAFInfoDictionary_ISRC: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"ISRC\0") };
pub const kAFInfoDictionary_KeySignature: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"key signature\0") };
pub const kAFInfoDictionary_Lyricist: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"lyricist\0") };
pub const kAFInfoDictionary_NominalBitRate: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"nominal bit rate\0") };
pub const kAFInfoDictionary_RecordedDate: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"recorded date\0") };
pub const kAFInfoDictionary_SourceBitDepth: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"source bit depth\0") };
pub const kAFInfoDictionary_SourceEncoder: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"source encoder\0") };
pub const kAFInfoDictionary_SubTitle: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"subtitle\0") };
pub const kAFInfoDictionary_Tempo: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"tempo\0") };
pub const kAFInfoDictionary_TimeSignature: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"time signature\0") };
pub const kAFInfoDictionary_Title: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"title\0") };
pub const kAFInfoDictionary_TrackNumber: &CStr =
unsafe { CStr::from_bytes_with_nul_unchecked(b"track number\0") };
pub const kAFInfoDictionary_Year: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"year\0") };
pub type AudioFileTypeID = u32;
pub const kAudioFileAIFFType: AudioFileTypeID = 0x41494646;
pub const kAudioFileAIFCType: AudioFileTypeID = 0x41494643;
pub const kAudioFileWAVEType: AudioFileTypeID = 0x57415645;
pub const kAudioFileRF64Type: AudioFileTypeID = 0x52463634;
pub const kAudioFileBW64Type: AudioFileTypeID = 0x42573634;
pub const kAudioFileWave64Type: AudioFileTypeID = 0x57363466;
pub const kAudioFileSoundDesigner2Type: AudioFileTypeID = 0x53643266;
pub const kAudioFileNextType: AudioFileTypeID = 0x4e655854;
pub const kAudioFileMP3Type: AudioFileTypeID = 0x4d504733;
pub const kAudioFileMP2Type: AudioFileTypeID = 0x4d504732;
pub const kAudioFileMP1Type: AudioFileTypeID = 0x4d504731;
pub const kAudioFileAC3Type: AudioFileTypeID = 0x61632d33;
pub const kAudioFileAAC_ADTSType: AudioFileTypeID = 0x61647473;
pub const kAudioFileMPEG4Type: AudioFileTypeID = 0x6d703466;
pub const kAudioFileM4AType: AudioFileTypeID = 0x6d346166;
pub const kAudioFileM4BType: AudioFileTypeID = 0x6d346266;
pub const kAudioFileCAFType: AudioFileTypeID = 0x63616666;
pub const kAudioFile3GPType: AudioFileTypeID = 0x33677070;
pub const kAudioFile3GP2Type: AudioFileTypeID = 0x33677032;
pub const kAudioFileAMRType: AudioFileTypeID = 0x616d7266;
pub const kAudioFileFLACType: AudioFileTypeID = 0x666c6163;
pub const kAudioFileLATMInLOASType: AudioFileTypeID = 0x6c6f6173;
pub const kAudioFileUnspecifiedError: OSStatus = 0x7768743f;
pub const kAudioFileUnsupportedFileTypeError: OSStatus = 0x7479703f;
pub const kAudioFileUnsupportedDataFormatError: OSStatus = 0x666d743f;
pub const kAudioFileUnsupportedPropertyError: OSStatus = 0x7074793f;
pub const kAudioFileBadPropertySizeError: OSStatus = 0x2173697a;
pub const kAudioFilePermissionsError: OSStatus = 0x70726d3f;
pub const kAudioFileNotOptimizedError: OSStatus = 0x6f70746d;
pub const kAudioFileInvalidChunkError: OSStatus = 0x63686b3f;
pub const kAudioFileDoesNotAllow64BitDataSizeError: OSStatus = 0x6f66663f;
pub const kAudioFileInvalidPacketOffsetError: OSStatus = 0x70636b3f;
pub const kAudioFileInvalidPacketDependencyError: OSStatus = 0x6465703f;
pub const kAudioFileInvalidFileError: OSStatus = 0x6474613f;
pub const kAudioFileOperationNotSupportedError: OSStatus = 0x6F703F3F;
pub const kAudioFileNotOpenError: OSStatus = -38;
pub const kAudioFileEndOfFileError: OSStatus = -39;
pub const kAudioFilePositionError: OSStatus = -40;
pub const kAudioFileFileNotFoundError: OSStatus = -43;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioFileFlags(pub u32);
bitflags::bitflags! {
impl AudioFileFlags: u32 {
#[doc(alias = "kAudioFileFlags_EraseFile")]
const EraseFile = 1;
#[doc(alias = "kAudioFileFlags_DontPageAlignAudioData")]
const DontPageAlignAudioData = 2;
}
}
unsafe impl Encode for AudioFileFlags {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for AudioFileFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioFilePermissions(pub i8);
impl AudioFilePermissions {
#[doc(alias = "kAudioFileReadPermission")]
pub const ReadPermission: Self = Self(0x01);
#[doc(alias = "kAudioFileWritePermission")]
pub const WritePermission: Self = Self(0x02);
#[doc(alias = "kAudioFileReadWritePermission")]
pub const ReadWritePermission: Self = Self(0x03);
}
unsafe impl Encode for AudioFilePermissions {
const ENCODING: Encoding = i8::ENCODING;
}
unsafe impl RefEncode for AudioFilePermissions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Debug)]
pub struct OpaqueAudioFileID {
inner: [u8; 0],
_p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
}
unsafe impl RefEncode for OpaqueAudioFileID {
const ENCODING_REF: Encoding = Encoding::Pointer(&Encoding::Struct("OpaqueAudioFileID", &[]));
}
pub type AudioFileID = *mut OpaqueAudioFileID;
pub type AudioFilePropertyID = u32;
pub const kAudioFileLoopDirection_NoLooping: u32 = 0;
pub const kAudioFileLoopDirection_Forward: u32 = 1;
pub const kAudioFileLoopDirection_ForwardAndBackward: u32 = 2;
pub const kAudioFileLoopDirection_Backward: u32 = 3;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFile_SMPTE_Time {
pub mHours: i8,
pub mMinutes: u8,
pub mSeconds: u8,
pub mFrames: u8,
pub mSubFrameSampleOffset: u32,
}
unsafe impl Encode for AudioFile_SMPTE_Time {
const ENCODING: Encoding = Encoding::Struct(
"AudioFile_SMPTE_Time",
&[
<i8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u32>::ENCODING,
],
);
}
unsafe impl RefEncode for AudioFile_SMPTE_Time {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kAudioFileMarkerType_Generic: u32 = 0;
#[cfg(feature = "objc2-core-foundation")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFileMarker {
pub mFramePosition: f64,
pub mName: *const CFString,
pub mMarkerID: i32,
pub mSMPTETime: AudioFile_SMPTE_Time,
pub mType: u32,
pub mReserved: u16,
pub mChannel: u16,
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl Encode for AudioFileMarker {
const ENCODING: Encoding = Encoding::Struct(
"AudioFileMarker",
&[
<f64>::ENCODING,
<*const CFString>::ENCODING,
<i32>::ENCODING,
<AudioFile_SMPTE_Time>::ENCODING,
<u32>::ENCODING,
<u16>::ENCODING,
<u16>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl RefEncode for AudioFileMarker {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-foundation")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFileMarkerList {
pub mSMPTE_TimeType: u32,
pub mNumberMarkers: u32,
pub mMarkers: [AudioFileMarker; 1],
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl Encode for AudioFileMarkerList {
const ENCODING: Encoding = Encoding::Struct(
"AudioFileMarkerList",
&[
<u32>::ENCODING,
<u32>::ENCODING,
<[AudioFileMarker; 1]>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl RefEncode for AudioFileMarkerList {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioFileRegionFlags(pub u32);
bitflags::bitflags! {
impl AudioFileRegionFlags: u32 {
#[doc(alias = "kAudioFileRegionFlag_LoopEnable")]
const LoopEnable = 1;
#[doc(alias = "kAudioFileRegionFlag_PlayForward")]
const PlayForward = 2;
#[doc(alias = "kAudioFileRegionFlag_PlayBackward")]
const PlayBackward = 4;
}
}
unsafe impl Encode for AudioFileRegionFlags {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for AudioFileRegionFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-foundation")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFileRegion {
pub mRegionID: u32,
pub mName: NonNull<CFString>,
pub mFlags: AudioFileRegionFlags,
pub mNumberMarkers: u32,
pub mMarkers: [AudioFileMarker; 1],
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl Encode for AudioFileRegion {
const ENCODING: Encoding = Encoding::Struct(
"AudioFileRegion",
&[
<u32>::ENCODING,
<NonNull<CFString>>::ENCODING,
<AudioFileRegionFlags>::ENCODING,
<u32>::ENCODING,
<[AudioFileMarker; 1]>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl RefEncode for AudioFileRegion {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(feature = "objc2-core-foundation")]
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFileRegionList {
pub mSMPTE_TimeType: u32,
pub mNumberRegions: u32,
pub mRegions: [AudioFileRegion; 1],
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl Encode for AudioFileRegionList {
const ENCODING: Encoding = Encoding::Struct(
"AudioFileRegionList",
&[
<u32>::ENCODING,
<u32>::ENCODING,
<[AudioFileRegion; 1]>::ENCODING,
],
);
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl RefEncode for AudioFileRegionList {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFramePacketTranslation {
pub mFrame: i64,
pub mPacket: i64,
pub mFrameOffsetInPacket: u32,
}
unsafe impl Encode for AudioFramePacketTranslation {
const ENCODING: Encoding = Encoding::Struct(
"AudioFramePacketTranslation",
&[<i64>::ENCODING, <i64>::ENCODING, <u32>::ENCODING],
);
}
unsafe impl RefEncode for AudioFramePacketTranslation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AudioBytePacketTranslationFlags(pub u32);
bitflags::bitflags! {
impl AudioBytePacketTranslationFlags: u32 {
#[doc(alias = "kBytePacketTranslationFlag_IsEstimate")]
const BytePacketTranslationFlag_IsEstimate = 1;
}
}
unsafe impl Encode for AudioBytePacketTranslationFlags {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for AudioBytePacketTranslationFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioBytePacketTranslation {
pub mByte: i64,
pub mPacket: i64,
pub mByteOffsetInPacket: u32,
pub mFlags: AudioBytePacketTranslationFlags,
}
unsafe impl Encode for AudioBytePacketTranslation {
const ENCODING: Encoding = Encoding::Struct(
"AudioBytePacketTranslation",
&[
<i64>::ENCODING,
<i64>::ENCODING,
<u32>::ENCODING,
<AudioBytePacketTranslationFlags>::ENCODING,
],
);
}
unsafe impl RefEncode for AudioBytePacketTranslation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFilePacketTableInfo {
pub mNumberValidFrames: i64,
pub mPrimingFrames: i32,
pub mRemainderFrames: i32,
}
unsafe impl Encode for AudioFilePacketTableInfo {
const ENCODING: Encoding = Encoding::Struct(
"AudioFilePacketTableInfo",
&[<i64>::ENCODING, <i32>::ENCODING, <i32>::ENCODING],
);
}
unsafe impl RefEncode for AudioFilePacketTableInfo {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioPacketRangeByteCountTranslation {
pub mPacket: i64,
pub mPacketCount: i64,
pub mByteCountUpperBound: i64,
}
unsafe impl Encode for AudioPacketRangeByteCountTranslation {
const ENCODING: Encoding = Encoding::Struct(
"AudioPacketRangeByteCountTranslation",
&[<i64>::ENCODING, <i64>::ENCODING, <i64>::ENCODING],
);
}
unsafe impl RefEncode for AudioPacketRangeByteCountTranslation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioPacketRollDistanceTranslation {
pub mPacket: i64,
pub mRollDistance: i64,
}
unsafe impl Encode for AudioPacketRollDistanceTranslation {
const ENCODING: Encoding = Encoding::Struct(
"AudioPacketRollDistanceTranslation",
&[<i64>::ENCODING, <i64>::ENCODING],
);
}
unsafe impl RefEncode for AudioPacketRollDistanceTranslation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioIndependentPacketTranslation {
pub mPacket: i64,
pub mIndependentlyDecodablePacket: i64,
}
unsafe impl Encode for AudioIndependentPacketTranslation {
const ENCODING: Encoding = Encoding::Struct(
"AudioIndependentPacketTranslation",
&[<i64>::ENCODING, <i64>::ENCODING],
);
}
unsafe impl RefEncode for AudioIndependentPacketTranslation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioPacketDependencyInfoTranslation {
pub mPacket: i64,
pub mIsIndependentlyDecodable: u32,
pub mNumberPrerollPackets: u32,
}
unsafe impl Encode for AudioPacketDependencyInfoTranslation {
const ENCODING: Encoding = Encoding::Struct(
"AudioPacketDependencyInfoTranslation",
&[<i64>::ENCODING, <u32>::ENCODING, <u32>::ENCODING],
);
}
unsafe impl RefEncode for AudioPacketDependencyInfoTranslation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C-unwind" {
#[cfg(all(feature = "objc2-core-audio-types", feature = "objc2-core-foundation"))]
pub fn AudioFileCreateWithURL(
in_file_ref: &CFURL,
in_file_type: AudioFileTypeID,
in_format: NonNull<AudioStreamBasicDescription>,
in_flags: AudioFileFlags,
out_audio_file: NonNull<AudioFileID>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "objc2-core-foundation")]
pub fn AudioFileOpenURL(
in_file_ref: &CFURL,
in_permissions: AudioFilePermissions,
in_file_type_hint: AudioFileTypeID,
out_audio_file: NonNull<AudioFileID>,
) -> OSStatus;
}
pub type AudioFile_ReadProc = Option<
unsafe extern "C-unwind" fn(
NonNull<c_void>,
i64,
u32,
NonNull<c_void>,
NonNull<u32>,
) -> OSStatus,
>;
pub type AudioFile_WriteProc = Option<
unsafe extern "C-unwind" fn(
NonNull<c_void>,
i64,
u32,
NonNull<c_void>,
NonNull<u32>,
) -> OSStatus,
>;
pub type AudioFile_GetSizeProc = Option<unsafe extern "C-unwind" fn(NonNull<c_void>) -> i64>;
pub type AudioFile_SetSizeProc =
Option<unsafe extern "C-unwind" fn(NonNull<c_void>, i64) -> OSStatus>;
extern "C-unwind" {
#[cfg(feature = "objc2-core-audio-types")]
pub fn AudioFileInitializeWithCallbacks(
in_client_data: NonNull<c_void>,
in_read_func: AudioFile_ReadProc,
in_write_func: AudioFile_WriteProc,
in_get_size_func: AudioFile_GetSizeProc,
in_set_size_func: AudioFile_SetSizeProc,
in_file_type: AudioFileTypeID,
in_format: NonNull<AudioStreamBasicDescription>,
in_flags: AudioFileFlags,
out_audio_file: NonNull<AudioFileID>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileOpenWithCallbacks(
in_client_data: NonNull<c_void>,
in_read_func: AudioFile_ReadProc,
in_write_func: AudioFile_WriteProc,
in_get_size_func: AudioFile_GetSizeProc,
in_set_size_func: AudioFile_SetSizeProc,
in_file_type_hint: AudioFileTypeID,
out_audio_file: NonNull<AudioFileID>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileClose(in_audio_file: AudioFileID) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileOptimize(in_audio_file: AudioFileID) -> OSStatus;
}
#[inline]
pub unsafe extern "C-unwind" fn AudioFileReadBytes(
in_audio_file: AudioFileID,
in_use_cache: bool,
in_starting_byte: i64,
io_num_bytes: NonNull<u32>,
out_buffer: NonNull<c_void>,
) -> OSStatus {
extern "C-unwind" {
fn AudioFileReadBytes(
in_audio_file: AudioFileID,
in_use_cache: Boolean,
in_starting_byte: i64,
io_num_bytes: NonNull<u32>,
out_buffer: NonNull<c_void>,
) -> OSStatus;
}
unsafe {
AudioFileReadBytes(
in_audio_file,
in_use_cache as _,
in_starting_byte,
io_num_bytes,
out_buffer,
)
}
}
#[inline]
pub unsafe extern "C-unwind" fn AudioFileWriteBytes(
in_audio_file: AudioFileID,
in_use_cache: bool,
in_starting_byte: i64,
io_num_bytes: NonNull<u32>,
in_buffer: NonNull<c_void>,
) -> OSStatus {
extern "C-unwind" {
fn AudioFileWriteBytes(
in_audio_file: AudioFileID,
in_use_cache: Boolean,
in_starting_byte: i64,
io_num_bytes: NonNull<u32>,
in_buffer: NonNull<c_void>,
) -> OSStatus;
}
unsafe {
AudioFileWriteBytes(
in_audio_file,
in_use_cache as _,
in_starting_byte,
io_num_bytes,
in_buffer,
)
}
}
#[cfg(feature = "objc2-core-audio-types")]
#[inline]
pub unsafe extern "C-unwind" fn AudioFileReadPacketData(
in_audio_file: AudioFileID,
in_use_cache: bool,
io_num_bytes: NonNull<u32>,
out_packet_descriptions: *mut AudioStreamPacketDescription,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
out_buffer: *mut c_void,
) -> OSStatus {
extern "C-unwind" {
fn AudioFileReadPacketData(
in_audio_file: AudioFileID,
in_use_cache: Boolean,
io_num_bytes: NonNull<u32>,
out_packet_descriptions: *mut AudioStreamPacketDescription,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
out_buffer: *mut c_void,
) -> OSStatus;
}
unsafe {
AudioFileReadPacketData(
in_audio_file,
in_use_cache as _,
io_num_bytes,
out_packet_descriptions,
in_starting_packet,
io_num_packets,
out_buffer,
)
}
}
#[cfg(feature = "objc2-core-audio-types")]
#[deprecated = "no longer supported"]
#[inline]
pub unsafe extern "C-unwind" fn AudioFileReadPackets(
in_audio_file: AudioFileID,
in_use_cache: bool,
out_num_bytes: NonNull<u32>,
out_packet_descriptions: *mut AudioStreamPacketDescription,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
out_buffer: *mut c_void,
) -> OSStatus {
extern "C-unwind" {
fn AudioFileReadPackets(
in_audio_file: AudioFileID,
in_use_cache: Boolean,
out_num_bytes: NonNull<u32>,
out_packet_descriptions: *mut AudioStreamPacketDescription,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
out_buffer: *mut c_void,
) -> OSStatus;
}
unsafe {
AudioFileReadPackets(
in_audio_file,
in_use_cache as _,
out_num_bytes,
out_packet_descriptions,
in_starting_packet,
io_num_packets,
out_buffer,
)
}
}
#[cfg(feature = "objc2-core-audio-types")]
#[inline]
pub unsafe extern "C-unwind" fn AudioFileWritePackets(
in_audio_file: AudioFileID,
in_use_cache: bool,
in_num_bytes: u32,
in_packet_descriptions: *const AudioStreamPacketDescription,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
in_buffer: NonNull<c_void>,
) -> OSStatus {
extern "C-unwind" {
fn AudioFileWritePackets(
in_audio_file: AudioFileID,
in_use_cache: Boolean,
in_num_bytes: u32,
in_packet_descriptions: *const AudioStreamPacketDescription,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
in_buffer: NonNull<c_void>,
) -> OSStatus;
}
unsafe {
AudioFileWritePackets(
in_audio_file,
in_use_cache as _,
in_num_bytes,
in_packet_descriptions,
in_starting_packet,
io_num_packets,
in_buffer,
)
}
}
#[cfg(feature = "objc2-core-audio-types")]
#[inline]
pub unsafe extern "C-unwind" fn AudioFileWritePacketsWithDependencies(
in_audio_file: AudioFileID,
in_use_cache: bool,
in_num_bytes: u32,
in_packet_descriptions: *const AudioStreamPacketDescription,
in_packet_dependencies: NonNull<AudioStreamPacketDependencyDescription>,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
in_buffer: NonNull<c_void>,
) -> OSStatus {
extern "C-unwind" {
fn AudioFileWritePacketsWithDependencies(
in_audio_file: AudioFileID,
in_use_cache: Boolean,
in_num_bytes: u32,
in_packet_descriptions: *const AudioStreamPacketDescription,
in_packet_dependencies: NonNull<AudioStreamPacketDependencyDescription>,
in_starting_packet: i64,
io_num_packets: NonNull<u32>,
in_buffer: NonNull<c_void>,
) -> OSStatus;
}
unsafe {
AudioFileWritePacketsWithDependencies(
in_audio_file,
in_use_cache as _,
in_num_bytes,
in_packet_descriptions,
in_packet_dependencies,
in_starting_packet,
io_num_packets,
in_buffer,
)
}
}
extern "C-unwind" {
pub fn AudioFileCountUserData(
in_audio_file: AudioFileID,
in_user_data_id: u32,
out_number_items: NonNull<u32>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileGetUserDataSize(
in_audio_file: AudioFileID,
in_user_data_id: u32,
in_index: u32,
out_user_data_size: NonNull<u32>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileGetUserDataSize64(
in_audio_file: AudioFileID,
in_user_data_id: u32,
in_index: u32,
out_user_data_size: NonNull<u64>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileGetUserData(
in_audio_file: AudioFileID,
in_user_data_id: u32,
in_index: u32,
io_user_data_size: NonNull<u32>,
out_user_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileGetUserDataAtOffset(
in_audio_file: AudioFileID,
in_user_data_id: u32,
in_index: u32,
in_offset: i64,
io_user_data_size: NonNull<u32>,
out_user_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileSetUserData(
in_audio_file: AudioFileID,
in_user_data_id: u32,
in_index: u32,
in_user_data_size: u32,
in_user_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileRemoveUserData(
in_audio_file: AudioFileID,
in_user_data_id: u32,
in_index: u32,
) -> OSStatus;
}
pub const kAudioFilePropertyFileFormat: AudioFilePropertyID = 0x66666d74;
pub const kAudioFilePropertyDataFormat: AudioFilePropertyID = 0x64666d74;
pub const kAudioFilePropertyIsOptimized: AudioFilePropertyID = 0x6f70746d;
pub const kAudioFilePropertyMagicCookieData: AudioFilePropertyID = 0x6d676963;
pub const kAudioFilePropertyAudioDataByteCount: AudioFilePropertyID = 0x62636e74;
pub const kAudioFilePropertyAudioDataPacketCount: AudioFilePropertyID = 0x70636e74;
pub const kAudioFilePropertyMaximumPacketSize: AudioFilePropertyID = 0x70737a65;
pub const kAudioFilePropertyDataOffset: AudioFilePropertyID = 0x646f6666;
pub const kAudioFilePropertyChannelLayout: AudioFilePropertyID = 0x636d6170;
pub const kAudioFilePropertyDeferSizeUpdates: AudioFilePropertyID = 0x64737a75;
pub const kAudioFilePropertyDataFormatName: AudioFilePropertyID = 0x666e6d65;
pub const kAudioFilePropertyMarkerList: AudioFilePropertyID = 0x6d6b6c73;
pub const kAudioFilePropertyRegionList: AudioFilePropertyID = 0x72676c73;
pub const kAudioFilePropertyPacketToFrame: AudioFilePropertyID = 0x706b6672;
pub const kAudioFilePropertyFrameToPacket: AudioFilePropertyID = 0x6672706b;
pub const kAudioFilePropertyRestrictsRandomAccess: AudioFilePropertyID = 0x72726170;
pub const kAudioFilePropertyPacketToRollDistance: AudioFilePropertyID = 0x706b726c;
pub const kAudioFilePropertyPreviousIndependentPacket: AudioFilePropertyID = 0x70696e64;
pub const kAudioFilePropertyNextIndependentPacket: AudioFilePropertyID = 0x6e696e64;
pub const kAudioFilePropertyPacketToDependencyInfo: AudioFilePropertyID = 0x706b6470;
pub const kAudioFilePropertyPacketToByte: AudioFilePropertyID = 0x706b6279;
pub const kAudioFilePropertyByteToPacket: AudioFilePropertyID = 0x6279706b;
pub const kAudioFilePropertyChunkIDs: AudioFilePropertyID = 0x63686964;
pub const kAudioFilePropertyInfoDictionary: AudioFilePropertyID = 0x696e666f;
pub const kAudioFilePropertyPacketTableInfo: AudioFilePropertyID = 0x706e666f;
pub const kAudioFilePropertyFormatList: AudioFilePropertyID = 0x666c7374;
pub const kAudioFilePropertyPacketSizeUpperBound: AudioFilePropertyID = 0x706b7562;
pub const kAudioFilePropertyPacketRangeByteCountUpperBound: AudioFilePropertyID = 0x70727562;
pub const kAudioFilePropertyReserveDuration: AudioFilePropertyID = 0x72737276;
pub const kAudioFilePropertyEstimatedDuration: AudioFilePropertyID = 0x65647572;
pub const kAudioFilePropertyBitRate: AudioFilePropertyID = 0x62726174;
pub const kAudioFilePropertyID3Tag: AudioFilePropertyID = 0x69643374;
pub const kAudioFilePropertyID3TagOffset: AudioFilePropertyID = 0x6964336f;
pub const kAudioFilePropertySourceBitDepth: AudioFilePropertyID = 0x73627464;
pub const kAudioFilePropertyAlbumArtwork: AudioFilePropertyID = 0x61617274;
pub const kAudioFilePropertyAudioTrackCount: AudioFilePropertyID = 0x61746374;
pub const kAudioFilePropertyUseAudioTrack: AudioFilePropertyID = 0x7561746b;
extern "C-unwind" {
pub fn AudioFileGetPropertyInfo(
in_audio_file: AudioFileID,
in_property_id: AudioFilePropertyID,
out_data_size: *mut u32,
is_writable: *mut u32,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileGetProperty(
in_audio_file: AudioFileID,
in_property_id: AudioFilePropertyID,
io_data_size: NonNull<u32>,
out_property_data: NonNull<c_void>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileSetProperty(
in_audio_file: AudioFileID,
in_property_id: AudioFilePropertyID,
in_data_size: u32,
in_property_data: NonNull<c_void>,
) -> OSStatus;
}
pub const kAudioFileGlobalInfo_ReadableTypes: AudioFilePropertyID = 0x61667266;
pub const kAudioFileGlobalInfo_WritableTypes: AudioFilePropertyID = 0x61667766;
pub const kAudioFileGlobalInfo_FileTypeName: AudioFilePropertyID = 0x66746e6d;
pub const kAudioFileGlobalInfo_AvailableStreamDescriptionsForFormat: AudioFilePropertyID =
0x73646964;
pub const kAudioFileGlobalInfo_AvailableFormatIDs: AudioFilePropertyID = 0x666d6964;
pub const kAudioFileGlobalInfo_AllExtensions: AudioFilePropertyID = 0x616c7874;
pub const kAudioFileGlobalInfo_AllHFSTypeCodes: AudioFilePropertyID = 0x61686673;
pub const kAudioFileGlobalInfo_AllUTIs: AudioFilePropertyID = 0x61757469;
pub const kAudioFileGlobalInfo_AllMIMETypes: AudioFilePropertyID = 0x616d696d;
pub const kAudioFileGlobalInfo_ExtensionsForType: AudioFilePropertyID = 0x66657874;
pub const kAudioFileGlobalInfo_HFSTypeCodesForType: AudioFilePropertyID = 0x66686673;
pub const kAudioFileGlobalInfo_UTIsForType: AudioFilePropertyID = 0x66757469;
pub const kAudioFileGlobalInfo_MIMETypesForType: AudioFilePropertyID = 0x666d696d;
pub const kAudioFileGlobalInfo_TypesForMIMEType: AudioFilePropertyID = 0x746d696d;
pub const kAudioFileGlobalInfo_TypesForUTI: AudioFilePropertyID = 0x74757469;
pub const kAudioFileGlobalInfo_TypesForHFSTypeCode: AudioFilePropertyID = 0x74686673;
pub const kAudioFileGlobalInfo_TypesForExtension: AudioFilePropertyID = 0x74657874;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AudioFileTypeAndFormatID {
pub mFileType: AudioFileTypeID,
pub mFormatID: u32,
}
unsafe impl Encode for AudioFileTypeAndFormatID {
const ENCODING: Encoding = Encoding::Struct(
"AudioFileTypeAndFormatID",
&[<AudioFileTypeID>::ENCODING, <u32>::ENCODING],
);
}
unsafe impl RefEncode for AudioFileTypeAndFormatID {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C-unwind" {
pub fn AudioFileGetGlobalInfoSize(
in_property_id: AudioFilePropertyID,
in_specifier_size: u32,
in_specifier: *mut c_void,
out_data_size: NonNull<u32>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn AudioFileGetGlobalInfo(
in_property_id: AudioFilePropertyID,
in_specifier_size: u32,
in_specifier: *mut c_void,
io_data_size: NonNull<u32>,
out_property_data: NonNull<c_void>,
) -> OSStatus;
}