use objc2::__framework_prelude::*;
use crate::*;
pub const kCAF_FileType: u32 = 0x63616666;
pub const kCAF_FileVersion_Initial: u32 = 1;
pub const kCAF_StreamDescriptionChunkID: u32 = 0x64657363;
pub const kCAF_AudioDataChunkID: u32 = 0x64617461;
pub const kCAF_ChannelLayoutChunkID: u32 = 0x6368616e;
pub const kCAF_FillerChunkID: u32 = 0x66726565;
pub const kCAF_MarkerChunkID: u32 = 0x6d61726b;
pub const kCAF_RegionChunkID: u32 = 0x7265676e;
pub const kCAF_InstrumentChunkID: u32 = 0x696e7374;
pub const kCAF_MagicCookieID: u32 = 0x6b756b69;
pub const kCAF_InfoStringsChunkID: u32 = 0x696e666f;
pub const kCAF_EditCommentsChunkID: u32 = 0x65646374;
pub const kCAF_PacketTableChunkID: u32 = 0x70616b74;
pub const kCAF_StringsChunkID: u32 = 0x73747267;
pub const kCAF_UUIDChunkID: u32 = 0x75756964;
pub const kCAF_PeakChunkID: u32 = 0x7065616b;
pub const kCAF_OverviewChunkID: u32 = 0x6f767677;
pub const kCAF_MIDIChunkID: u32 = 0x6d696469;
pub const kCAF_UMIDChunkID: u32 = 0x756d6964;
pub const kCAF_FormatListID: u32 = 0x6c647363;
pub const kCAF_iXMLChunkID: u32 = 0x69584d4c;
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFFileHeader {
pub mFileType: u32,
pub mFileVersion: u16,
pub mFileFlags: u16,
}
unsafe impl Encode for CAFFileHeader {
const ENCODING: Encoding = Encoding::Struct(
"CAFFileHeader",
&[<u32>::ENCODING, <u16>::ENCODING, <u16>::ENCODING],
);
}
unsafe impl RefEncode for CAFFileHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFChunkHeader {
pub mChunkType: u32,
pub mChunkSize: i64,
}
unsafe impl Encode for CAFChunkHeader {
const ENCODING: Encoding =
Encoding::Struct("CAFChunkHeader", &[<u32>::ENCODING, <i64>::ENCODING]);
}
unsafe impl RefEncode for CAFChunkHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAF_UUID_ChunkHeader {
pub mHeader: CAFChunkHeader,
pub mUUID: [u8; 16],
}
unsafe impl Encode for CAF_UUID_ChunkHeader {
const ENCODING: Encoding = Encoding::Struct(
"CAF_UUID_ChunkHeader",
&[<CAFChunkHeader>::ENCODING, <[u8; 16]>::ENCODING],
);
}
unsafe impl RefEncode for CAF_UUID_ChunkHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CAFFormatFlags(pub u32);
bitflags::bitflags! {
impl CAFFormatFlags: u32 {
#[doc(alias = "kCAFLinearPCMFormatFlagIsFloat")]
const LinearPCMFormatFlagIsFloat = 1<<0;
#[doc(alias = "kCAFLinearPCMFormatFlagIsLittleEndian")]
const LinearPCMFormatFlagIsLittleEndian = 1<<1;
}
}
unsafe impl Encode for CAFFormatFlags {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for CAFFormatFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFAudioDescription {
pub mSampleRate: f64,
pub mFormatID: u32,
pub mFormatFlags: CAFFormatFlags,
pub mBytesPerPacket: u32,
pub mFramesPerPacket: u32,
pub mChannelsPerFrame: u32,
pub mBitsPerChannel: u32,
}
unsafe impl Encode for CAFAudioDescription {
const ENCODING: Encoding = Encoding::Struct(
"CAFAudioDescription",
&[
<f64>::ENCODING,
<u32>::ENCODING,
<CAFFormatFlags>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
],
);
}
unsafe impl RefEncode for CAFAudioDescription {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFAudioFormatListItem {
pub mFormat: CAFAudioDescription,
pub mChannelLayoutTag: u32,
}
unsafe impl Encode for CAFAudioFormatListItem {
const ENCODING: Encoding = Encoding::Struct(
"CAFAudioFormatListItem",
&[<CAFAudioDescription>::ENCODING, <u32>::ENCODING],
);
}
unsafe impl RefEncode for CAFAudioFormatListItem {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFPacketTableHeader {
pub mNumberPackets: i64,
pub mNumberValidFrames: i64,
pub mPrimingFrames: i32,
pub mRemainderFrames: i32,
pub mPacketDescriptions: [u8; 1],
}
unsafe impl Encode for CAFPacketTableHeader {
const ENCODING: Encoding = Encoding::Struct(
"CAFPacketTableHeader",
&[
<i64>::ENCODING,
<i64>::ENCODING,
<i32>::ENCODING,
<i32>::ENCODING,
<[u8; 1]>::ENCODING,
],
);
}
unsafe impl RefEncode for CAFPacketTableHeader {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFDataChunk {
pub mEditCount: u32,
pub mData: [u8; 1],
}
unsafe impl Encode for CAFDataChunk {
const ENCODING: Encoding =
Encoding::Struct("CAFDataChunk", &[<u32>::ENCODING, <[u8; 1]>::ENCODING]);
}
unsafe impl RefEncode for CAFDataChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub const kCAFMarkerType_Generic: u32 = 0;
pub const kCAFMarkerType_ProgramStart: u32 = 0x70626567;
pub const kCAFMarkerType_ProgramEnd: u32 = 0x70656e64;
pub const kCAFMarkerType_TrackStart: u32 = 0x74626567;
pub const kCAFMarkerType_TrackEnd: u32 = 0x74656e64;
pub const kCAFMarkerType_Index: u32 = 0x696e6478;
pub const kCAFMarkerType_RegionStart: u32 = 0x72626567;
pub const kCAFMarkerType_RegionEnd: u32 = 0x72656e64;
pub const kCAFMarkerType_RegionSyncPoint: u32 = 0x72737963;
pub const kCAFMarkerType_SelectionStart: u32 = 0x73626567;
pub const kCAFMarkerType_SelectionEnd: u32 = 0x73656e64;
pub const kCAFMarkerType_EditSourceBegin: u32 = 0x63626567;
pub const kCAFMarkerType_EditSourceEnd: u32 = 0x63656e64;
pub const kCAFMarkerType_EditDestinationBegin: u32 = 0x64626567;
pub const kCAFMarkerType_EditDestinationEnd: u32 = 0x64656e64;
pub const kCAFMarkerType_SustainLoopStart: u32 = 0x736c6267;
pub const kCAFMarkerType_SustainLoopEnd: u32 = 0x736c656e;
pub const kCAFMarkerType_ReleaseLoopStart: u32 = 0x726c6267;
pub const kCAFMarkerType_ReleaseLoopEnd: u32 = 0x726c656e;
pub const kCAFMarkerType_SavedPlayPosition: u32 = 0x73706c79;
pub const kCAFMarkerType_Tempo: u32 = 0x746d706f;
pub const kCAFMarkerType_TimeSignature: u32 = 0x74736967;
pub const kCAFMarkerType_KeySignature: u32 = 0x6b736967;
pub const kCAF_SMPTE_TimeTypeNone: u32 = 0;
pub const kCAF_SMPTE_TimeType24: u32 = 1;
pub const kCAF_SMPTE_TimeType25: u32 = 2;
pub const kCAF_SMPTE_TimeType30Drop: u32 = 3;
pub const kCAF_SMPTE_TimeType30: u32 = 4;
pub const kCAF_SMPTE_TimeType2997: u32 = 5;
pub const kCAF_SMPTE_TimeType2997Drop: u32 = 6;
pub const kCAF_SMPTE_TimeType60: u32 = 7;
pub const kCAF_SMPTE_TimeType5994: u32 = 8;
pub const kCAF_SMPTE_TimeType60Drop: u32 = 9;
pub const kCAF_SMPTE_TimeType5994Drop: u32 = 10;
pub const kCAF_SMPTE_TimeType50: u32 = 11;
pub const kCAF_SMPTE_TimeType2398: u32 = 12;
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAF_SMPTE_Time {
pub mHours: i8,
pub mMinutes: i8,
pub mSeconds: i8,
pub mFrames: i8,
pub mSubFrameSampleOffset: u32,
}
unsafe impl Encode for CAF_SMPTE_Time {
const ENCODING: Encoding = Encoding::Struct(
"CAF_SMPTE_Time",
&[
<i8>::ENCODING,
<i8>::ENCODING,
<i8>::ENCODING,
<i8>::ENCODING,
<u32>::ENCODING,
],
);
}
unsafe impl RefEncode for CAF_SMPTE_Time {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFMarker {
pub mType: u32,
pub mFramePosition: f64,
pub mMarkerID: u32,
pub mSMPTETime: CAF_SMPTE_Time,
pub mChannel: u32,
}
unsafe impl Encode for CAFMarker {
const ENCODING: Encoding = Encoding::Struct(
"CAFMarker",
&[
<u32>::ENCODING,
<f64>::ENCODING,
<u32>::ENCODING,
<CAF_SMPTE_Time>::ENCODING,
<u32>::ENCODING,
],
);
}
unsafe impl RefEncode for CAFMarker {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFMarkerChunk {
pub mSMPTE_TimeType: u32,
pub mNumberMarkers: u32,
pub mMarkers: [CAFMarker; 1],
}
unsafe impl Encode for CAFMarkerChunk {
const ENCODING: Encoding = Encoding::Struct(
"CAFMarkerChunk",
&[<u32>::ENCODING, <u32>::ENCODING, <[CAFMarker; 1]>::ENCODING],
);
}
unsafe impl RefEncode for CAFMarkerChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CAFRegionFlags(pub u32);
bitflags::bitflags! {
impl CAFRegionFlags: u32 {
#[doc(alias = "kCAFRegionFlag_LoopEnable")]
const LoopEnable = 1;
#[doc(alias = "kCAFRegionFlag_PlayForward")]
const PlayForward = 2;
#[doc(alias = "kCAFRegionFlag_PlayBackward")]
const PlayBackward = 4;
}
}
unsafe impl Encode for CAFRegionFlags {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for CAFRegionFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFRegion {
pub mRegionID: u32,
pub mFlags: CAFRegionFlags,
pub mNumberMarkers: u32,
pub mMarkers: [CAFMarker; 1],
}
unsafe impl Encode for CAFRegion {
const ENCODING: Encoding = Encoding::Struct(
"CAFRegion",
&[
<u32>::ENCODING,
<CAFRegionFlags>::ENCODING,
<u32>::ENCODING,
<[CAFMarker; 1]>::ENCODING,
],
);
}
unsafe impl RefEncode for CAFRegion {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFRegionChunk {
pub mSMPTE_TimeType: u32,
pub mNumberRegions: u32,
pub mRegions: [CAFRegion; 1],
}
unsafe impl Encode for CAFRegionChunk {
const ENCODING: Encoding = Encoding::Struct(
"CAFRegionChunk",
&[<u32>::ENCODING, <u32>::ENCODING, <[CAFRegion; 1]>::ENCODING],
);
}
unsafe impl RefEncode for CAFRegionChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFInstrumentChunk {
pub mBaseNote: f32,
pub mMIDILowNote: u8,
pub mMIDIHighNote: u8,
pub mMIDILowVelocity: u8,
pub mMIDIHighVelocity: u8,
pub mdBGain: f32,
pub mStartRegionID: u32,
pub mSustainRegionID: u32,
pub mReleaseRegionID: u32,
pub mInstrumentID: u32,
}
unsafe impl Encode for CAFInstrumentChunk {
const ENCODING: Encoding = Encoding::Struct(
"CAFInstrumentChunk",
&[
<f32>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<u8>::ENCODING,
<f32>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
<u32>::ENCODING,
],
);
}
unsafe impl RefEncode for CAFInstrumentChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFStringID {
pub mStringID: u32,
pub mStringStartByteOffset: i64,
}
unsafe impl Encode for CAFStringID {
const ENCODING: Encoding = Encoding::Struct("CAFStringID", &[<u32>::ENCODING, <i64>::ENCODING]);
}
unsafe impl RefEncode for CAFStringID {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFStrings {
pub mNumEntries: u32,
pub mStringsIDs: [CAFStringID; 1],
}
unsafe impl Encode for CAFStrings {
const ENCODING: Encoding = Encoding::Struct(
"CAFStrings",
&[<u32>::ENCODING, <[CAFStringID; 1]>::ENCODING],
);
}
unsafe impl RefEncode for CAFStrings {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFInfoStrings {
pub mNumEntries: u32,
}
unsafe impl Encode for CAFInfoStrings {
const ENCODING: Encoding = Encoding::Struct("CAFInfoStrings", &[<u32>::ENCODING]);
}
unsafe impl RefEncode for CAFInfoStrings {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFPositionPeak {
pub mValue: f32,
pub mFrameNumber: u64,
}
unsafe impl Encode for CAFPositionPeak {
const ENCODING: Encoding =
Encoding::Struct("CAFPositionPeak", &[<f32>::ENCODING, <u64>::ENCODING]);
}
unsafe impl RefEncode for CAFPositionPeak {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFPeakChunk {
pub mEditCount: u32,
pub mPeaks: [CAFPositionPeak; 1],
}
unsafe impl Encode for CAFPeakChunk {
const ENCODING: Encoding = Encoding::Struct(
"CAFPeakChunk",
&[<u32>::ENCODING, <[CAFPositionPeak; 1]>::ENCODING],
);
}
unsafe impl RefEncode for CAFPeakChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFOverviewSample {
pub mMinValue: i16,
pub mMaxValue: i16,
}
unsafe impl Encode for CAFOverviewSample {
const ENCODING: Encoding =
Encoding::Struct("CAFOverviewSample", &[<i16>::ENCODING, <i16>::ENCODING]);
}
unsafe impl RefEncode for CAFOverviewSample {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C, packed)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFOverviewChunk {
pub mEditCount: u32,
pub mNumFramesPerOVWSample: u32,
pub mData: [CAFOverviewSample; 1],
}
unsafe impl Encode for CAFOverviewChunk {
const ENCODING: Encoding = Encoding::Struct(
"CAFOverviewChunk",
&[
<u32>::ENCODING,
<u32>::ENCODING,
<[CAFOverviewSample; 1]>::ENCODING,
],
);
}
unsafe impl RefEncode for CAFOverviewChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CAFUMIDChunk {
pub mBytes: [u8; 64],
}
unsafe impl Encode for CAFUMIDChunk {
const ENCODING: Encoding = Encoding::Struct("CAFUMIDChunk", &[<[u8; 64]>::ENCODING]);
}
unsafe impl RefEncode for CAFUMIDChunk {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}