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