Mercurial > projects > dstep
diff dstep/coreaudio/CoreAudioTypes.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreaudio/CoreAudioTypes.d Sun Jan 03 22:06:11 2010 +0100 @@ -0,0 +1,510 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Sep 30, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreaudio.CoreAudioTypes; + +import dstep.coreservices.carboncore.MacTypes; +import dstep.internal.Version; +import dstep.objc.bridge.TypeEncoding; + +alias float AudioSampleType; +alias uint AudioChannelLabel; +alias uint AudioChannelLayoutTag; + +// This is needed otherwise the enums will fail compiling with gdc +version (GNU) +{ + private + { + const __kAudioFormatLinearPCM = getOSType!("lpcm"); + const __kAudioFormatAC3 = getOSType!("ac-3"); + const __kAudioFormat60958AC3 = getOSType!("cac3"); + const __kAudioFormatAppleIMA4 = getOSType!("ima4"); + const __kAudioFormatMPEG4AAC = getOSType!("aac "); + const __kAudioFormatMPEG4CELP = getOSType!("celp"); + const __kAudioFormatMPEG4HVXC = getOSType!("hvxc"); + const __kAudioFormatMPEG4TwinVQ = getOSType!("twvq"); + const __kAudioFormatMACE3 = getOSType!("MAC3"); + const __kAudioFormatMACE6 = getOSType!("MAC6"); + const __kAudioFormatULaw = getOSType!("ulaw"); + const __kAudioFormatALaw = getOSType!("alaw"); + const __kAudioFormatQDesign = getOSType!("QDMC"); + const __kAudioFormatQDesign2 = getOSType!("QDM2"); + const __kAudioFormatQUALCOMM = getOSType!("Qclp"); + const __kAudioFormatMPEGLayer1 = getOSType!(".mp1"); + const __kAudioFormatMPEGLayer2 = getOSType!(".mp2"); + const __kAudioFormatMPEGLayer3 = getOSType!(".mp3"); + const __kAudioFormatTimeCode = getOSType!("time"); + const __kAudioFormatMIDIStream = getOSType!("midi"); + const __kAudioFormatParameterValueStream = getOSType!("apvs"); + const __kAudioFormatAppleLossless = getOSType!("alac"); + const __kAudioFormatMPEG4AAC_HE = getOSType!("aach"); + const __kAudioFormatMPEG4AAC_LD = getOSType!("aacl"); + const __kAudioFormatMPEG4AAC_HE_V2 = getOSType!("aacp"); + const __kAudioFormatMPEG4AAC_Spatial = getOSType!("aacs"); + const __kAudioFormatAMR = getOSType!("samr"); + } +} + +enum +{ + kAudioStreamAnyRate = 0 +} + +enum +{ + kAudioFormatLinearPCM = getOSType!("lpcm"), + kAudioFormatAC3 = getOSType!("ac-3"), + kAudioFormat60958AC3 = getOSType!("cac3"), + kAudioFormatAppleIMA4 = getOSType!("ima4"), + kAudioFormatMPEG4AAC = getOSType!("aac "), + kAudioFormatMPEG4CELP = getOSType!("celp"), + kAudioFormatMPEG4HVXC = getOSType!("hvxc"), + kAudioFormatMPEG4TwinVQ = getOSType!("twvq"), + kAudioFormatMACE3 = getOSType!("MAC3"), + kAudioFormatMACE6 = getOSType!("MAC6"), + kAudioFormatULaw = getOSType!("ulaw"), + kAudioFormatALaw = getOSType!("alaw"), + kAudioFormatQDesign = getOSType!("QDMC"), + kAudioFormatQDesign2 = getOSType!("QDM2"), + kAudioFormatQUALCOMM = getOSType!("Qclp"), + kAudioFormatMPEGLayer1 = getOSType!(".mp1"), + kAudioFormatMPEGLayer2 = getOSType!(".mp2"), + kAudioFormatMPEGLayer3 = getOSType!(".mp3"), + kAudioFormatTimeCode = getOSType!("time"), + kAudioFormatMIDIStream = getOSType!("midi"), + kAudioFormatParameterValueStream = getOSType!("apvs"), + kAudioFormatAppleLossless = getOSType!("alac"), + kAudioFormatMPEG4AAC_HE = getOSType!("aach"), + kAudioFormatMPEG4AAC_LD = getOSType!("aacl"), + kAudioFormatMPEG4AAC_HE_V2 = getOSType!("aacp"), + kAudioFormatMPEG4AAC_Spatial = getOSType!("aacs"), + kAudioFormatAMR = getOSType!("samr") +} + +version (D_LP64) +{ + enum : long + { + kAudioFormatFlagIsFloat = (1L << 0), + kAudioFormatFlagIsBigEndian = (1L << 1), + kAudioFormatFlagIsSignedInteger = (1L << 2), + kAudioFormatFlagIsPacked = (1L << 3), + kAudioFormatFlagIsAlignedHigh = (1L << 4), + kAudioFormatFlagIsNonInterleaved = (1L << 5), + kAudioFormatFlagIsNonMixable = (1L << 6), + kAudioFormatFlagsAreAllClear = (1L << 31), + kLinearPCMFormatFlagIsFloat = kAudioFormatFlagIsFloat, + kLinearPCMFormatFlagIsBigEndian = kAudioFormatFlagIsBigEndian, + kLinearPCMFormatFlagIsSignedInteger = kAudioFormatFlagIsSignedInteger, + kLinearPCMFormatFlagIsPacked = kAudioFormatFlagIsPacked, + kLinearPCMFormatFlagIsAlignedHigh = kAudioFormatFlagIsAlignedHigh, + kLinearPCMFormatFlagIsNonInterleaved = kAudioFormatFlagIsNonInterleaved, + kLinearPCMFormatFlagIsNonMixable = kAudioFormatFlagIsNonMixable, + kLinearPCMFormatFlagsAreAllClear = kAudioFormatFlagsAreAllClear, + kAppleLosslessFormatFlag_16BitSourceData = 1, + kAppleLosslessFormatFlag_20BitSourceData = 2, + kAppleLosslessFormatFlag_24BitSourceData = 3, + kAppleLosslessFormatFlag_32BitSourceData = 4 + } +} + +else +{ + enum + { + kAudioFormatFlagIsFloat = (1L << 0), + kAudioFormatFlagIsBigEndian = (1L << 1), + kAudioFormatFlagIsSignedInteger = (1L << 2), + kAudioFormatFlagIsPacked = (1L << 3), + kAudioFormatFlagIsAlignedHigh = (1L << 4), + kAudioFormatFlagIsNonInterleaved = (1L << 5), + kAudioFormatFlagIsNonMixable = (1L << 6), + kAudioFormatFlagsAreAllClear = (1 << 31), + kLinearPCMFormatFlagIsFloat = kAudioFormatFlagIsFloat, + kLinearPCMFormatFlagIsBigEndian = kAudioFormatFlagIsBigEndian, + kLinearPCMFormatFlagIsSignedInteger = kAudioFormatFlagIsSignedInteger, + kLinearPCMFormatFlagIsPacked = kAudioFormatFlagIsPacked, + kLinearPCMFormatFlagIsAlignedHigh = kAudioFormatFlagIsAlignedHigh, + kLinearPCMFormatFlagIsNonInterleaved = kAudioFormatFlagIsNonInterleaved, + kLinearPCMFormatFlagIsNonMixable = kAudioFormatFlagIsNonMixable, + kLinearPCMFormatFlagsAreAllClear = kAudioFormatFlagsAreAllClear, + kAppleLosslessFormatFlag_16BitSourceData = 1, + kAppleLosslessFormatFlag_20BitSourceData = 2, + kAppleLosslessFormatFlag_24BitSourceData = 3, + kAppleLosslessFormatFlag_32BitSourceData = 4 + } +} + + + +enum +{ + kAudioFormatFlagsNativeEndian = 0, + kAudioFormatFlagsCanonical = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked, + kAudioFormatFlagsNativeFloatPacked = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked +} + +enum +{ + kSMPTETimeType24 = 0, + kSMPTETimeType25 = 1, + kSMPTETimeType30Drop = 2, + kSMPTETimeType30 = 3, + kSMPTETimeType2997 = 4, + kSMPTETimeType2997Drop = 5, + kSMPTETimeType60 = 6, + kSMPTETimeType5994 = 7, + kSMPTETimeType60Drop = 8, + kSMPTETimeType5994Drop = 9, + kSMPTETimeType50 = 10, + kSMPTETimeType2398 = 11 +} + +enum +{ + kSMPTETimeValid = (1L << 0), + kSMPTETimeRunning = (1L << 1) +} + +enum +{ + kAudioTimeStampSampleTimeValid = (1L << 0), + kAudioTimeStampHostTimeValid = (1L << 1), + kAudioTimeStampRateScalarValid = (1L << 2), + kAudioTimeStampWordClockTimeValid = (1L << 3), + kAudioTimeStampSMPTETimeValid = (1L << 4) +} + +enum +{ + kAudioTimeStampSampleHostTimeValid = (kAudioTimeStampSampleTimeValid | kAudioTimeStampHostTimeValid) +} + +enum +{ + kAudioChannelLabel_Unknown = 0xFFFFFFFF, + kAudioChannelLabel_Unused = 0, + kAudioChannelLabel_UseCoordinates = 100, + kAudioChannelLabel_Left = 1, + kAudioChannelLabel_Right = 2, + kAudioChannelLabel_Center = 3, + kAudioChannelLabel_LFEScreen = 4, + kAudioChannelLabel_LeftSurround = 5, + kAudioChannelLabel_RightSurround = 6, + kAudioChannelLabel_LeftCenter = 7, + kAudioChannelLabel_RightCenter = 8, + kAudioChannelLabel_CenterSurround = 9, + kAudioChannelLabel_LeftSurroundDirect = 10, + kAudioChannelLabel_RightSurroundDirect = 11, + kAudioChannelLabel_TopCenterSurround = 12, + kAudioChannelLabel_VerticalHeightLeft = 13, + kAudioChannelLabel_VerticalHeightCenter = 14, + kAudioChannelLabel_VerticalHeightRight = 15, + kAudioChannelLabel_TopBackLeft = 16, + kAudioChannelLabel_TopBackCenter = 17, + kAudioChannelLabel_TopBackRight = 18, + kAudioChannelLabel_RearSurroundLeft = 33, + kAudioChannelLabel_RearSurroundRight = 34, + kAudioChannelLabel_LeftWide = 35, + kAudioChannelLabel_RightWide = 36, + kAudioChannelLabel_LFE2 = 37, + kAudioChannelLabel_LeftTotal = 38, + kAudioChannelLabel_RightTotal = 39, + kAudioChannelLabel_HearingImpaired = 40, + kAudioChannelLabel_Narration = 41, + kAudioChannelLabel_Mono = 42, + kAudioChannelLabel_DialogCentricMix = 43, + kAudioChannelLabel_CenterSurroundDirect = 44, + kAudioChannelLabel_Haptic = 45, + kAudioChannelLabel_Ambisonic_W = 200, + kAudioChannelLabel_Ambisonic_X = 201, + kAudioChannelLabel_Ambisonic_Y = 202, + kAudioChannelLabel_Ambisonic_Z = 203, + kAudioChannelLabel_MS_Mid = 204, + kAudioChannelLabel_MS_Side = 205, + kAudioChannelLabel_XY_X = 206, + kAudioChannelLabel_XY_Y = 207, + kAudioChannelLabel_HeadphonesLeft = 301, + kAudioChannelLabel_HeadphonesRight = 302, + kAudioChannelLabel_ClickTrack = 304, + kAudioChannelLabel_ForeignLanguage = 305, + kAudioChannelLabel_Discrete = 400, + kAudioChannelLabel_Discrete_0 = (1L<<16) | 0, + kAudioChannelLabel_Discrete_1 = (1L<<16) | 1, + kAudioChannelLabel_Discrete_2 = (1L<<16) | 2, + kAudioChannelLabel_Discrete_3 = (1L<<16) | 3, + kAudioChannelLabel_Discrete_4 = (1L<<16) | 4, + kAudioChannelLabel_Discrete_5 = (1L<<16) | 5, + kAudioChannelLabel_Discrete_6 = (1L<<16) | 6, + kAudioChannelLabel_Discrete_7 = (1L<<16) | 7, + kAudioChannelLabel_Discrete_8 = (1L<<16) | 8, + kAudioChannelLabel_Discrete_9 = (1L<<16) | 9, + kAudioChannelLabel_Discrete_10 = (1L<<16) | 10, + kAudioChannelLabel_Discrete_11 = (1L<<16) | 11, + kAudioChannelLabel_Discrete_12 = (1L<<16) | 12, + kAudioChannelLabel_Discrete_13 = (1L<<16) | 13, + kAudioChannelLabel_Discrete_14 = (1L<<16) | 14, + kAudioChannelLabel_Discrete_15 = (1L<<16) | 15, + kAudioChannelLabel_Discrete_65535 = (1L<<16) | 65535 +} + +enum +{ + kAudioChannelBit_Left = (1L<<0), + kAudioChannelBit_Right = (1L<<1), + kAudioChannelBit_Center = (1L<<2), + kAudioChannelBit_LFEScreen = (1L<<3), + kAudioChannelBit_LeftSurround = (1L<<4), + kAudioChannelBit_RightSurround = (1L<<5), + kAudioChannelBit_LeftCenter = (1L<<6), + kAudioChannelBit_RightCenter = (1L<<7), + kAudioChannelBit_CenterSurround = (1L<<8), + kAudioChannelBit_LeftSurroundDirect = (1L<<9), + kAudioChannelBit_RightSurroundDirect = (1L<<10), + kAudioChannelBit_TopCenterSurround = (1L<<11), + kAudioChannelBit_VerticalHeightLeft = (1L<<12), + kAudioChannelBit_VerticalHeightCenter = (1L<<13), + kAudioChannelBit_VerticalHeightRight = (1L<<14), + kAudioChannelBit_TopBackLeft = (1L<<15), + kAudioChannelBit_TopBackCenter = (1L<<16), + kAudioChannelBit_TopBackRight = (1L<<17) +} + +enum +{ + kAudioChannelFlags_AllOff = 0, + kAudioChannelFlags_RectangularCoordinates = (1L<<0), + kAudioChannelFlags_SphericalCoordinates = (1L<<1), + kAudioChannelFlags_Meters = (1L<<2) +} + +enum +{ + kAudioChannelCoordinates_LeftRight = 0, + kAudioChannelCoordinates_BackFront = 1, + kAudioChannelCoordinates_DownUp = 2, + kAudioChannelCoordinates_Azimuth = 0, + kAudioChannelCoordinates_Elevation = 1, + kAudioChannelCoordinates_Distance = 2 +} + +enum +{ + kAudioChannelLayoutTag_UseChannelDescriptions = (0L<<16) | 0, + kAudioChannelLayoutTag_UseChannelBitmap = (1L<<16) | 0, + kAudioChannelLayoutTag_Mono = (100L<<16) | 1, + kAudioChannelLayoutTag_Stereo = (101L<<16) | 2, + kAudioChannelLayoutTag_StereoHeadphones = (102L<<16) | 2, + kAudioChannelLayoutTag_MatrixStereo = (103L<<16) | 2, + kAudioChannelLayoutTag_MidSide = (104L<<16) | 2, + kAudioChannelLayoutTag_XY = (105L<<16) | 2, + kAudioChannelLayoutTag_Binaural = (106L<<16) | 2, + kAudioChannelLayoutTag_Ambisonic_B_Format = (107L<<16) | 4, + kAudioChannelLayoutTag_Quadraphonic = (108L<<16) | 4, + kAudioChannelLayoutTag_Pentagonal = (109L<<16) | 5, + kAudioChannelLayoutTag_Hexagonal = (110L<<16) | 6, + kAudioChannelLayoutTag_Octagonal = (111L<<16) | 8, + kAudioChannelLayoutTag_Cube = (112L<<16) | 8, + kAudioChannelLayoutTag_MPEG_1_0 = kAudioChannelLayoutTag_Mono, + kAudioChannelLayoutTag_MPEG_2_0 = kAudioChannelLayoutTag_Stereo, + kAudioChannelLayoutTag_MPEG_3_0_A = (113L<<16) | 3, + kAudioChannelLayoutTag_MPEG_3_0_B = (114L<<16) | 3, + kAudioChannelLayoutTag_MPEG_4_0_A = (115L<<16) | 4, + kAudioChannelLayoutTag_MPEG_4_0_B = (116L<<16) | 4, + kAudioChannelLayoutTag_MPEG_5_0_A = (117L<<16) | 5, + kAudioChannelLayoutTag_MPEG_5_0_B = (118L<<16) | 5, + kAudioChannelLayoutTag_MPEG_5_0_C = (119L<<16) | 5, + kAudioChannelLayoutTag_MPEG_5_0_D = (120L<<16) | 5, + kAudioChannelLayoutTag_MPEG_5_1_A = (121L<<16) | 6, + kAudioChannelLayoutTag_MPEG_5_1_B = (122L<<16) | 6, + kAudioChannelLayoutTag_MPEG_5_1_C = (123L<<16) | 6, + kAudioChannelLayoutTag_MPEG_5_1_D = (124L<<16) | 6, + kAudioChannelLayoutTag_MPEG_6_1_A = (125L<<16) | 7, + kAudioChannelLayoutTag_MPEG_7_1_A = (126L<<16) | 8, + kAudioChannelLayoutTag_MPEG_7_1_B = (127L<<16) | 8, + kAudioChannelLayoutTag_MPEG_7_1_C = (128L<<16) | 8, + kAudioChannelLayoutTag_Emagic_Default_7_1 = (129L<<16) | 8, + kAudioChannelLayoutTag_SMPTE_DTV = (130L<<16) | 8, + kAudioChannelLayoutTag_ITU_1_0 = kAudioChannelLayoutTag_Mono, + kAudioChannelLayoutTag_ITU_2_0 = kAudioChannelLayoutTag_Stereo, + kAudioChannelLayoutTag_ITU_2_1 = (131L<<16) | 3, + kAudioChannelLayoutTag_ITU_2_2 = (132L<<16) | 4, + kAudioChannelLayoutTag_ITU_3_0 = kAudioChannelLayoutTag_MPEG_3_0_A, + kAudioChannelLayoutTag_ITU_3_1 = kAudioChannelLayoutTag_MPEG_4_0_A, + kAudioChannelLayoutTag_ITU_3_2 = kAudioChannelLayoutTag_MPEG_5_0_A, + kAudioChannelLayoutTag_ITU_3_2_1 = kAudioChannelLayoutTag_MPEG_5_1_A, + kAudioChannelLayoutTag_ITU_3_4_1 = kAudioChannelLayoutTag_MPEG_7_1_C, + kAudioChannelLayoutTag_DVD_0 = kAudioChannelLayoutTag_Mono, + kAudioChannelLayoutTag_DVD_1 = kAudioChannelLayoutTag_Stereo, + kAudioChannelLayoutTag_DVD_2 = kAudioChannelLayoutTag_ITU_2_1, + kAudioChannelLayoutTag_DVD_3 = kAudioChannelLayoutTag_ITU_2_2, + kAudioChannelLayoutTag_DVD_4 = (133L<<16) | 3, + kAudioChannelLayoutTag_DVD_5 = (134L<<16) | 4, + kAudioChannelLayoutTag_DVD_6 = (135L<<16) | 5, + kAudioChannelLayoutTag_DVD_7 = kAudioChannelLayoutTag_MPEG_3_0_A, + kAudioChannelLayoutTag_DVD_8 = kAudioChannelLayoutTag_MPEG_4_0_A, + kAudioChannelLayoutTag_DVD_9 = kAudioChannelLayoutTag_MPEG_5_0_A, + kAudioChannelLayoutTag_DVD_10 = (136L<<16) | 4, + kAudioChannelLayoutTag_DVD_11 = (137L<<16) | 5, + kAudioChannelLayoutTag_DVD_12 = kAudioChannelLayoutTag_MPEG_5_1_A, + kAudioChannelLayoutTag_DVD_13 = kAudioChannelLayoutTag_DVD_8, + kAudioChannelLayoutTag_DVD_14 = kAudioChannelLayoutTag_DVD_9, + kAudioChannelLayoutTag_DVD_15 = kAudioChannelLayoutTag_DVD_10, + kAudioChannelLayoutTag_DVD_16 = kAudioChannelLayoutTag_DVD_11, + kAudioChannelLayoutTag_DVD_17 = kAudioChannelLayoutTag_DVD_12, + kAudioChannelLayoutTag_DVD_18 = (138L<<16) | 5, + kAudioChannelLayoutTag_DVD_19 = kAudioChannelLayoutTag_MPEG_5_0_B, + kAudioChannelLayoutTag_DVD_20 = kAudioChannelLayoutTag_MPEG_5_1_B, + kAudioChannelLayoutTag_AudioUnit_4 = kAudioChannelLayoutTag_Quadraphonic, + kAudioChannelLayoutTag_AudioUnit_5 = kAudioChannelLayoutTag_Pentagonal, + kAudioChannelLayoutTag_AudioUnit_6 = kAudioChannelLayoutTag_Hexagonal, + kAudioChannelLayoutTag_AudioUnit_8 = kAudioChannelLayoutTag_Octagonal, + kAudioChannelLayoutTag_AudioUnit_5_0 = kAudioChannelLayoutTag_MPEG_5_0_B, + kAudioChannelLayoutTag_AudioUnit_6_0 = (139L<<16) | 6, + kAudioChannelLayoutTag_AudioUnit_7_0 = (140L<<16) | 7, + kAudioChannelLayoutTag_AudioUnit_7_0_Front = (148L<<16) | 7, + kAudioChannelLayoutTag_AudioUnit_5_1 = kAudioChannelLayoutTag_MPEG_5_1_A, + kAudioChannelLayoutTag_AudioUnit_6_1 = kAudioChannelLayoutTag_MPEG_6_1_A, + kAudioChannelLayoutTag_AudioUnit_7_1 = kAudioChannelLayoutTag_MPEG_7_1_C, + kAudioChannelLayoutTag_AudioUnit_7_1_Front = kAudioChannelLayoutTag_MPEG_7_1_A, + kAudioChannelLayoutTag_AAC_3_0 = kAudioChannelLayoutTag_MPEG_3_0_B, + kAudioChannelLayoutTag_AAC_Quadraphonic = kAudioChannelLayoutTag_Quadraphonic, + kAudioChannelLayoutTag_AAC_4_0 = kAudioChannelLayoutTag_MPEG_4_0_B, + kAudioChannelLayoutTag_AAC_5_0 = kAudioChannelLayoutTag_MPEG_5_0_D, + kAudioChannelLayoutTag_AAC_5_1 = kAudioChannelLayoutTag_MPEG_5_1_D, + kAudioChannelLayoutTag_AAC_6_0 = (141L<<16) | 6, + kAudioChannelLayoutTag_AAC_6_1 = (142L<<16) | 7, + kAudioChannelLayoutTag_AAC_7_0 = (143L<<16) | 7, + kAudioChannelLayoutTag_AAC_7_1 = kAudioChannelLayoutTag_MPEG_7_1_B, + kAudioChannelLayoutTag_AAC_Octagonal = (144L<<16) | 8, + kAudioChannelLayoutTag_TMH_10_2_std = (145L<<16) | 16, + kAudioChannelLayoutTag_TMH_10_2_full = (146L<<16) | 21, + kAudioChannelLayoutTag_AC3_1_0_1 = (149L<<16) | 2, + kAudioChannelLayoutTag_AC3_3_0 = (150L<<16) | 3, + kAudioChannelLayoutTag_AC3_3_1 = (151L<<16) | 4, + kAudioChannelLayoutTag_AC3_3_0_1 = (152L<<16) | 4, + kAudioChannelLayoutTag_AC3_2_1_1 = (153L<<16) | 4, + kAudioChannelLayoutTag_AC3_3_1_1 = (154L<<16) | 5, + kAudioChannelLayoutTag_DiscreteInOrder = (147L<<16) | 0, + kAudioChannelLayoutTag_Unknown = 0xFFFF0000 +} + +enum +{ + kMPEG4Object_AAC_Main = 1, + kMPEG4Object_AAC_LC = 2, + kMPEG4Object_AAC_SSR = 3, + kMPEG4Object_AAC_LTP = 4, + kMPEG4Object_AAC_SBR = 5, + kMPEG4Object_AAC_Scalable = 6, + kMPEG4Object_TwinVQ = 7, + kMPEG4Object_CELP = 8, + kMPEG4Object_HVXC = 9 +} + +struct AudioValueRange +{ + double mMinimum; + double mMaximum; +} + + +struct AudioValueTranslation +{ + void* mInputData; + uint mInputDataSize; + void* mOutputData; + uint mOutputDataSize; +} + + +struct AudioBuffer +{ + uint mNumberChannels; + uint mDataByteSize; + void* mData; +} + + +struct AudioBufferList +{ + uint mNumberBuffers; + AudioBuffer* mBuffers; +} + + +struct AudioStreamBasicDescription +{ + double mSampleRate; + uint mFormatID; + uint mFormatFlags; + uint mBytesPerPacket; + uint mFramesPerPacket; + uint mBytesPerFrame; + uint mChannelsPerFrame; + uint mBitsPerChannel; + uint mReserved; +} + + +struct AudioStreamPacketDescription +{ + long mStartOffset; + uint mVariableFramesInPacket; + uint mDataByteSize; +} + + +struct SMPTETime +{ + short mSubframes; + short mSubframeDivisor; + uint mCounter; + uint mType; + uint mFlags; + short mHours; + short mMinutes; + short mSeconds; + short mFrames; +} + + +struct AudioTimeStamp +{ + double mSampleTime; + ulong mHostTime; + double mRateScalar; + ulong mWordClockTime; + SMPTETime mSMPTETime; + uint mFlags; + uint mReserved; +} + + +struct AudioClassDescription +{ + uint mType; + uint mSubType; + uint mManufacturer; +} + + +struct AudioChannelDescription +{ + uint mChannelLabel; + uint mChannelFlags; + Float32* mCoordinates; +} + + +struct AudioChannelLayout +{ + uint mChannelLayoutTag; + uint mChannelBitmap; + uint mNumberChannelDescriptions; + AudioChannelDescription* mChannelDescriptions; +} \ No newline at end of file