comparison 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
comparison
equal deleted inserted replaced
15:7ff919f595d5 16:19885b43130e
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Sep 30, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.coreaudio.CoreAudioTypes;
8
9 import dstep.coreservices.carboncore.MacTypes;
10 import dstep.internal.Version;
11 import dstep.objc.bridge.TypeEncoding;
12
13 alias float AudioSampleType;
14 alias uint AudioChannelLabel;
15 alias uint AudioChannelLayoutTag;
16
17 // This is needed otherwise the enums will fail compiling with gdc
18 version (GNU)
19 {
20 private
21 {
22 const __kAudioFormatLinearPCM = getOSType!("lpcm");
23 const __kAudioFormatAC3 = getOSType!("ac-3");
24 const __kAudioFormat60958AC3 = getOSType!("cac3");
25 const __kAudioFormatAppleIMA4 = getOSType!("ima4");
26 const __kAudioFormatMPEG4AAC = getOSType!("aac ");
27 const __kAudioFormatMPEG4CELP = getOSType!("celp");
28 const __kAudioFormatMPEG4HVXC = getOSType!("hvxc");
29 const __kAudioFormatMPEG4TwinVQ = getOSType!("twvq");
30 const __kAudioFormatMACE3 = getOSType!("MAC3");
31 const __kAudioFormatMACE6 = getOSType!("MAC6");
32 const __kAudioFormatULaw = getOSType!("ulaw");
33 const __kAudioFormatALaw = getOSType!("alaw");
34 const __kAudioFormatQDesign = getOSType!("QDMC");
35 const __kAudioFormatQDesign2 = getOSType!("QDM2");
36 const __kAudioFormatQUALCOMM = getOSType!("Qclp");
37 const __kAudioFormatMPEGLayer1 = getOSType!(".mp1");
38 const __kAudioFormatMPEGLayer2 = getOSType!(".mp2");
39 const __kAudioFormatMPEGLayer3 = getOSType!(".mp3");
40 const __kAudioFormatTimeCode = getOSType!("time");
41 const __kAudioFormatMIDIStream = getOSType!("midi");
42 const __kAudioFormatParameterValueStream = getOSType!("apvs");
43 const __kAudioFormatAppleLossless = getOSType!("alac");
44 const __kAudioFormatMPEG4AAC_HE = getOSType!("aach");
45 const __kAudioFormatMPEG4AAC_LD = getOSType!("aacl");
46 const __kAudioFormatMPEG4AAC_HE_V2 = getOSType!("aacp");
47 const __kAudioFormatMPEG4AAC_Spatial = getOSType!("aacs");
48 const __kAudioFormatAMR = getOSType!("samr");
49 }
50 }
51
52 enum
53 {
54 kAudioStreamAnyRate = 0
55 }
56
57 enum
58 {
59 kAudioFormatLinearPCM = getOSType!("lpcm"),
60 kAudioFormatAC3 = getOSType!("ac-3"),
61 kAudioFormat60958AC3 = getOSType!("cac3"),
62 kAudioFormatAppleIMA4 = getOSType!("ima4"),
63 kAudioFormatMPEG4AAC = getOSType!("aac "),
64 kAudioFormatMPEG4CELP = getOSType!("celp"),
65 kAudioFormatMPEG4HVXC = getOSType!("hvxc"),
66 kAudioFormatMPEG4TwinVQ = getOSType!("twvq"),
67 kAudioFormatMACE3 = getOSType!("MAC3"),
68 kAudioFormatMACE6 = getOSType!("MAC6"),
69 kAudioFormatULaw = getOSType!("ulaw"),
70 kAudioFormatALaw = getOSType!("alaw"),
71 kAudioFormatQDesign = getOSType!("QDMC"),
72 kAudioFormatQDesign2 = getOSType!("QDM2"),
73 kAudioFormatQUALCOMM = getOSType!("Qclp"),
74 kAudioFormatMPEGLayer1 = getOSType!(".mp1"),
75 kAudioFormatMPEGLayer2 = getOSType!(".mp2"),
76 kAudioFormatMPEGLayer3 = getOSType!(".mp3"),
77 kAudioFormatTimeCode = getOSType!("time"),
78 kAudioFormatMIDIStream = getOSType!("midi"),
79 kAudioFormatParameterValueStream = getOSType!("apvs"),
80 kAudioFormatAppleLossless = getOSType!("alac"),
81 kAudioFormatMPEG4AAC_HE = getOSType!("aach"),
82 kAudioFormatMPEG4AAC_LD = getOSType!("aacl"),
83 kAudioFormatMPEG4AAC_HE_V2 = getOSType!("aacp"),
84 kAudioFormatMPEG4AAC_Spatial = getOSType!("aacs"),
85 kAudioFormatAMR = getOSType!("samr")
86 }
87
88 version (D_LP64)
89 {
90 enum : long
91 {
92 kAudioFormatFlagIsFloat = (1L << 0),
93 kAudioFormatFlagIsBigEndian = (1L << 1),
94 kAudioFormatFlagIsSignedInteger = (1L << 2),
95 kAudioFormatFlagIsPacked = (1L << 3),
96 kAudioFormatFlagIsAlignedHigh = (1L << 4),
97 kAudioFormatFlagIsNonInterleaved = (1L << 5),
98 kAudioFormatFlagIsNonMixable = (1L << 6),
99 kAudioFormatFlagsAreAllClear = (1L << 31),
100 kLinearPCMFormatFlagIsFloat = kAudioFormatFlagIsFloat,
101 kLinearPCMFormatFlagIsBigEndian = kAudioFormatFlagIsBigEndian,
102 kLinearPCMFormatFlagIsSignedInteger = kAudioFormatFlagIsSignedInteger,
103 kLinearPCMFormatFlagIsPacked = kAudioFormatFlagIsPacked,
104 kLinearPCMFormatFlagIsAlignedHigh = kAudioFormatFlagIsAlignedHigh,
105 kLinearPCMFormatFlagIsNonInterleaved = kAudioFormatFlagIsNonInterleaved,
106 kLinearPCMFormatFlagIsNonMixable = kAudioFormatFlagIsNonMixable,
107 kLinearPCMFormatFlagsAreAllClear = kAudioFormatFlagsAreAllClear,
108 kAppleLosslessFormatFlag_16BitSourceData = 1,
109 kAppleLosslessFormatFlag_20BitSourceData = 2,
110 kAppleLosslessFormatFlag_24BitSourceData = 3,
111 kAppleLosslessFormatFlag_32BitSourceData = 4
112 }
113 }
114
115 else
116 {
117 enum
118 {
119 kAudioFormatFlagIsFloat = (1L << 0),
120 kAudioFormatFlagIsBigEndian = (1L << 1),
121 kAudioFormatFlagIsSignedInteger = (1L << 2),
122 kAudioFormatFlagIsPacked = (1L << 3),
123 kAudioFormatFlagIsAlignedHigh = (1L << 4),
124 kAudioFormatFlagIsNonInterleaved = (1L << 5),
125 kAudioFormatFlagIsNonMixable = (1L << 6),
126 kAudioFormatFlagsAreAllClear = (1 << 31),
127 kLinearPCMFormatFlagIsFloat = kAudioFormatFlagIsFloat,
128 kLinearPCMFormatFlagIsBigEndian = kAudioFormatFlagIsBigEndian,
129 kLinearPCMFormatFlagIsSignedInteger = kAudioFormatFlagIsSignedInteger,
130 kLinearPCMFormatFlagIsPacked = kAudioFormatFlagIsPacked,
131 kLinearPCMFormatFlagIsAlignedHigh = kAudioFormatFlagIsAlignedHigh,
132 kLinearPCMFormatFlagIsNonInterleaved = kAudioFormatFlagIsNonInterleaved,
133 kLinearPCMFormatFlagIsNonMixable = kAudioFormatFlagIsNonMixable,
134 kLinearPCMFormatFlagsAreAllClear = kAudioFormatFlagsAreAllClear,
135 kAppleLosslessFormatFlag_16BitSourceData = 1,
136 kAppleLosslessFormatFlag_20BitSourceData = 2,
137 kAppleLosslessFormatFlag_24BitSourceData = 3,
138 kAppleLosslessFormatFlag_32BitSourceData = 4
139 }
140 }
141
142
143
144 enum
145 {
146 kAudioFormatFlagsNativeEndian = 0,
147 kAudioFormatFlagsCanonical = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked,
148 kAudioFormatFlagsNativeFloatPacked = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked
149 }
150
151 enum
152 {
153 kSMPTETimeType24 = 0,
154 kSMPTETimeType25 = 1,
155 kSMPTETimeType30Drop = 2,
156 kSMPTETimeType30 = 3,
157 kSMPTETimeType2997 = 4,
158 kSMPTETimeType2997Drop = 5,
159 kSMPTETimeType60 = 6,
160 kSMPTETimeType5994 = 7,
161 kSMPTETimeType60Drop = 8,
162 kSMPTETimeType5994Drop = 9,
163 kSMPTETimeType50 = 10,
164 kSMPTETimeType2398 = 11
165 }
166
167 enum
168 {
169 kSMPTETimeValid = (1L << 0),
170 kSMPTETimeRunning = (1L << 1)
171 }
172
173 enum
174 {
175 kAudioTimeStampSampleTimeValid = (1L << 0),
176 kAudioTimeStampHostTimeValid = (1L << 1),
177 kAudioTimeStampRateScalarValid = (1L << 2),
178 kAudioTimeStampWordClockTimeValid = (1L << 3),
179 kAudioTimeStampSMPTETimeValid = (1L << 4)
180 }
181
182 enum
183 {
184 kAudioTimeStampSampleHostTimeValid = (kAudioTimeStampSampleTimeValid | kAudioTimeStampHostTimeValid)
185 }
186
187 enum
188 {
189 kAudioChannelLabel_Unknown = 0xFFFFFFFF,
190 kAudioChannelLabel_Unused = 0,
191 kAudioChannelLabel_UseCoordinates = 100,
192 kAudioChannelLabel_Left = 1,
193 kAudioChannelLabel_Right = 2,
194 kAudioChannelLabel_Center = 3,
195 kAudioChannelLabel_LFEScreen = 4,
196 kAudioChannelLabel_LeftSurround = 5,
197 kAudioChannelLabel_RightSurround = 6,
198 kAudioChannelLabel_LeftCenter = 7,
199 kAudioChannelLabel_RightCenter = 8,
200 kAudioChannelLabel_CenterSurround = 9,
201 kAudioChannelLabel_LeftSurroundDirect = 10,
202 kAudioChannelLabel_RightSurroundDirect = 11,
203 kAudioChannelLabel_TopCenterSurround = 12,
204 kAudioChannelLabel_VerticalHeightLeft = 13,
205 kAudioChannelLabel_VerticalHeightCenter = 14,
206 kAudioChannelLabel_VerticalHeightRight = 15,
207 kAudioChannelLabel_TopBackLeft = 16,
208 kAudioChannelLabel_TopBackCenter = 17,
209 kAudioChannelLabel_TopBackRight = 18,
210 kAudioChannelLabel_RearSurroundLeft = 33,
211 kAudioChannelLabel_RearSurroundRight = 34,
212 kAudioChannelLabel_LeftWide = 35,
213 kAudioChannelLabel_RightWide = 36,
214 kAudioChannelLabel_LFE2 = 37,
215 kAudioChannelLabel_LeftTotal = 38,
216 kAudioChannelLabel_RightTotal = 39,
217 kAudioChannelLabel_HearingImpaired = 40,
218 kAudioChannelLabel_Narration = 41,
219 kAudioChannelLabel_Mono = 42,
220 kAudioChannelLabel_DialogCentricMix = 43,
221 kAudioChannelLabel_CenterSurroundDirect = 44,
222 kAudioChannelLabel_Haptic = 45,
223 kAudioChannelLabel_Ambisonic_W = 200,
224 kAudioChannelLabel_Ambisonic_X = 201,
225 kAudioChannelLabel_Ambisonic_Y = 202,
226 kAudioChannelLabel_Ambisonic_Z = 203,
227 kAudioChannelLabel_MS_Mid = 204,
228 kAudioChannelLabel_MS_Side = 205,
229 kAudioChannelLabel_XY_X = 206,
230 kAudioChannelLabel_XY_Y = 207,
231 kAudioChannelLabel_HeadphonesLeft = 301,
232 kAudioChannelLabel_HeadphonesRight = 302,
233 kAudioChannelLabel_ClickTrack = 304,
234 kAudioChannelLabel_ForeignLanguage = 305,
235 kAudioChannelLabel_Discrete = 400,
236 kAudioChannelLabel_Discrete_0 = (1L<<16) | 0,
237 kAudioChannelLabel_Discrete_1 = (1L<<16) | 1,
238 kAudioChannelLabel_Discrete_2 = (1L<<16) | 2,
239 kAudioChannelLabel_Discrete_3 = (1L<<16) | 3,
240 kAudioChannelLabel_Discrete_4 = (1L<<16) | 4,
241 kAudioChannelLabel_Discrete_5 = (1L<<16) | 5,
242 kAudioChannelLabel_Discrete_6 = (1L<<16) | 6,
243 kAudioChannelLabel_Discrete_7 = (1L<<16) | 7,
244 kAudioChannelLabel_Discrete_8 = (1L<<16) | 8,
245 kAudioChannelLabel_Discrete_9 = (1L<<16) | 9,
246 kAudioChannelLabel_Discrete_10 = (1L<<16) | 10,
247 kAudioChannelLabel_Discrete_11 = (1L<<16) | 11,
248 kAudioChannelLabel_Discrete_12 = (1L<<16) | 12,
249 kAudioChannelLabel_Discrete_13 = (1L<<16) | 13,
250 kAudioChannelLabel_Discrete_14 = (1L<<16) | 14,
251 kAudioChannelLabel_Discrete_15 = (1L<<16) | 15,
252 kAudioChannelLabel_Discrete_65535 = (1L<<16) | 65535
253 }
254
255 enum
256 {
257 kAudioChannelBit_Left = (1L<<0),
258 kAudioChannelBit_Right = (1L<<1),
259 kAudioChannelBit_Center = (1L<<2),
260 kAudioChannelBit_LFEScreen = (1L<<3),
261 kAudioChannelBit_LeftSurround = (1L<<4),
262 kAudioChannelBit_RightSurround = (1L<<5),
263 kAudioChannelBit_LeftCenter = (1L<<6),
264 kAudioChannelBit_RightCenter = (1L<<7),
265 kAudioChannelBit_CenterSurround = (1L<<8),
266 kAudioChannelBit_LeftSurroundDirect = (1L<<9),
267 kAudioChannelBit_RightSurroundDirect = (1L<<10),
268 kAudioChannelBit_TopCenterSurround = (1L<<11),
269 kAudioChannelBit_VerticalHeightLeft = (1L<<12),
270 kAudioChannelBit_VerticalHeightCenter = (1L<<13),
271 kAudioChannelBit_VerticalHeightRight = (1L<<14),
272 kAudioChannelBit_TopBackLeft = (1L<<15),
273 kAudioChannelBit_TopBackCenter = (1L<<16),
274 kAudioChannelBit_TopBackRight = (1L<<17)
275 }
276
277 enum
278 {
279 kAudioChannelFlags_AllOff = 0,
280 kAudioChannelFlags_RectangularCoordinates = (1L<<0),
281 kAudioChannelFlags_SphericalCoordinates = (1L<<1),
282 kAudioChannelFlags_Meters = (1L<<2)
283 }
284
285 enum
286 {
287 kAudioChannelCoordinates_LeftRight = 0,
288 kAudioChannelCoordinates_BackFront = 1,
289 kAudioChannelCoordinates_DownUp = 2,
290 kAudioChannelCoordinates_Azimuth = 0,
291 kAudioChannelCoordinates_Elevation = 1,
292 kAudioChannelCoordinates_Distance = 2
293 }
294
295 enum
296 {
297 kAudioChannelLayoutTag_UseChannelDescriptions = (0L<<16) | 0,
298 kAudioChannelLayoutTag_UseChannelBitmap = (1L<<16) | 0,
299 kAudioChannelLayoutTag_Mono = (100L<<16) | 1,
300 kAudioChannelLayoutTag_Stereo = (101L<<16) | 2,
301 kAudioChannelLayoutTag_StereoHeadphones = (102L<<16) | 2,
302 kAudioChannelLayoutTag_MatrixStereo = (103L<<16) | 2,
303 kAudioChannelLayoutTag_MidSide = (104L<<16) | 2,
304 kAudioChannelLayoutTag_XY = (105L<<16) | 2,
305 kAudioChannelLayoutTag_Binaural = (106L<<16) | 2,
306 kAudioChannelLayoutTag_Ambisonic_B_Format = (107L<<16) | 4,
307 kAudioChannelLayoutTag_Quadraphonic = (108L<<16) | 4,
308 kAudioChannelLayoutTag_Pentagonal = (109L<<16) | 5,
309 kAudioChannelLayoutTag_Hexagonal = (110L<<16) | 6,
310 kAudioChannelLayoutTag_Octagonal = (111L<<16) | 8,
311 kAudioChannelLayoutTag_Cube = (112L<<16) | 8,
312 kAudioChannelLayoutTag_MPEG_1_0 = kAudioChannelLayoutTag_Mono,
313 kAudioChannelLayoutTag_MPEG_2_0 = kAudioChannelLayoutTag_Stereo,
314 kAudioChannelLayoutTag_MPEG_3_0_A = (113L<<16) | 3,
315 kAudioChannelLayoutTag_MPEG_3_0_B = (114L<<16) | 3,
316 kAudioChannelLayoutTag_MPEG_4_0_A = (115L<<16) | 4,
317 kAudioChannelLayoutTag_MPEG_4_0_B = (116L<<16) | 4,
318 kAudioChannelLayoutTag_MPEG_5_0_A = (117L<<16) | 5,
319 kAudioChannelLayoutTag_MPEG_5_0_B = (118L<<16) | 5,
320 kAudioChannelLayoutTag_MPEG_5_0_C = (119L<<16) | 5,
321 kAudioChannelLayoutTag_MPEG_5_0_D = (120L<<16) | 5,
322 kAudioChannelLayoutTag_MPEG_5_1_A = (121L<<16) | 6,
323 kAudioChannelLayoutTag_MPEG_5_1_B = (122L<<16) | 6,
324 kAudioChannelLayoutTag_MPEG_5_1_C = (123L<<16) | 6,
325 kAudioChannelLayoutTag_MPEG_5_1_D = (124L<<16) | 6,
326 kAudioChannelLayoutTag_MPEG_6_1_A = (125L<<16) | 7,
327 kAudioChannelLayoutTag_MPEG_7_1_A = (126L<<16) | 8,
328 kAudioChannelLayoutTag_MPEG_7_1_B = (127L<<16) | 8,
329 kAudioChannelLayoutTag_MPEG_7_1_C = (128L<<16) | 8,
330 kAudioChannelLayoutTag_Emagic_Default_7_1 = (129L<<16) | 8,
331 kAudioChannelLayoutTag_SMPTE_DTV = (130L<<16) | 8,
332 kAudioChannelLayoutTag_ITU_1_0 = kAudioChannelLayoutTag_Mono,
333 kAudioChannelLayoutTag_ITU_2_0 = kAudioChannelLayoutTag_Stereo,
334 kAudioChannelLayoutTag_ITU_2_1 = (131L<<16) | 3,
335 kAudioChannelLayoutTag_ITU_2_2 = (132L<<16) | 4,
336 kAudioChannelLayoutTag_ITU_3_0 = kAudioChannelLayoutTag_MPEG_3_0_A,
337 kAudioChannelLayoutTag_ITU_3_1 = kAudioChannelLayoutTag_MPEG_4_0_A,
338 kAudioChannelLayoutTag_ITU_3_2 = kAudioChannelLayoutTag_MPEG_5_0_A,
339 kAudioChannelLayoutTag_ITU_3_2_1 = kAudioChannelLayoutTag_MPEG_5_1_A,
340 kAudioChannelLayoutTag_ITU_3_4_1 = kAudioChannelLayoutTag_MPEG_7_1_C,
341 kAudioChannelLayoutTag_DVD_0 = kAudioChannelLayoutTag_Mono,
342 kAudioChannelLayoutTag_DVD_1 = kAudioChannelLayoutTag_Stereo,
343 kAudioChannelLayoutTag_DVD_2 = kAudioChannelLayoutTag_ITU_2_1,
344 kAudioChannelLayoutTag_DVD_3 = kAudioChannelLayoutTag_ITU_2_2,
345 kAudioChannelLayoutTag_DVD_4 = (133L<<16) | 3,
346 kAudioChannelLayoutTag_DVD_5 = (134L<<16) | 4,
347 kAudioChannelLayoutTag_DVD_6 = (135L<<16) | 5,
348 kAudioChannelLayoutTag_DVD_7 = kAudioChannelLayoutTag_MPEG_3_0_A,
349 kAudioChannelLayoutTag_DVD_8 = kAudioChannelLayoutTag_MPEG_4_0_A,
350 kAudioChannelLayoutTag_DVD_9 = kAudioChannelLayoutTag_MPEG_5_0_A,
351 kAudioChannelLayoutTag_DVD_10 = (136L<<16) | 4,
352 kAudioChannelLayoutTag_DVD_11 = (137L<<16) | 5,
353 kAudioChannelLayoutTag_DVD_12 = kAudioChannelLayoutTag_MPEG_5_1_A,
354 kAudioChannelLayoutTag_DVD_13 = kAudioChannelLayoutTag_DVD_8,
355 kAudioChannelLayoutTag_DVD_14 = kAudioChannelLayoutTag_DVD_9,
356 kAudioChannelLayoutTag_DVD_15 = kAudioChannelLayoutTag_DVD_10,
357 kAudioChannelLayoutTag_DVD_16 = kAudioChannelLayoutTag_DVD_11,
358 kAudioChannelLayoutTag_DVD_17 = kAudioChannelLayoutTag_DVD_12,
359 kAudioChannelLayoutTag_DVD_18 = (138L<<16) | 5,
360 kAudioChannelLayoutTag_DVD_19 = kAudioChannelLayoutTag_MPEG_5_0_B,
361 kAudioChannelLayoutTag_DVD_20 = kAudioChannelLayoutTag_MPEG_5_1_B,
362 kAudioChannelLayoutTag_AudioUnit_4 = kAudioChannelLayoutTag_Quadraphonic,
363 kAudioChannelLayoutTag_AudioUnit_5 = kAudioChannelLayoutTag_Pentagonal,
364 kAudioChannelLayoutTag_AudioUnit_6 = kAudioChannelLayoutTag_Hexagonal,
365 kAudioChannelLayoutTag_AudioUnit_8 = kAudioChannelLayoutTag_Octagonal,
366 kAudioChannelLayoutTag_AudioUnit_5_0 = kAudioChannelLayoutTag_MPEG_5_0_B,
367 kAudioChannelLayoutTag_AudioUnit_6_0 = (139L<<16) | 6,
368 kAudioChannelLayoutTag_AudioUnit_7_0 = (140L<<16) | 7,
369 kAudioChannelLayoutTag_AudioUnit_7_0_Front = (148L<<16) | 7,
370 kAudioChannelLayoutTag_AudioUnit_5_1 = kAudioChannelLayoutTag_MPEG_5_1_A,
371 kAudioChannelLayoutTag_AudioUnit_6_1 = kAudioChannelLayoutTag_MPEG_6_1_A,
372 kAudioChannelLayoutTag_AudioUnit_7_1 = kAudioChannelLayoutTag_MPEG_7_1_C,
373 kAudioChannelLayoutTag_AudioUnit_7_1_Front = kAudioChannelLayoutTag_MPEG_7_1_A,
374 kAudioChannelLayoutTag_AAC_3_0 = kAudioChannelLayoutTag_MPEG_3_0_B,
375 kAudioChannelLayoutTag_AAC_Quadraphonic = kAudioChannelLayoutTag_Quadraphonic,
376 kAudioChannelLayoutTag_AAC_4_0 = kAudioChannelLayoutTag_MPEG_4_0_B,
377 kAudioChannelLayoutTag_AAC_5_0 = kAudioChannelLayoutTag_MPEG_5_0_D,
378 kAudioChannelLayoutTag_AAC_5_1 = kAudioChannelLayoutTag_MPEG_5_1_D,
379 kAudioChannelLayoutTag_AAC_6_0 = (141L<<16) | 6,
380 kAudioChannelLayoutTag_AAC_6_1 = (142L<<16) | 7,
381 kAudioChannelLayoutTag_AAC_7_0 = (143L<<16) | 7,
382 kAudioChannelLayoutTag_AAC_7_1 = kAudioChannelLayoutTag_MPEG_7_1_B,
383 kAudioChannelLayoutTag_AAC_Octagonal = (144L<<16) | 8,
384 kAudioChannelLayoutTag_TMH_10_2_std = (145L<<16) | 16,
385 kAudioChannelLayoutTag_TMH_10_2_full = (146L<<16) | 21,
386 kAudioChannelLayoutTag_AC3_1_0_1 = (149L<<16) | 2,
387 kAudioChannelLayoutTag_AC3_3_0 = (150L<<16) | 3,
388 kAudioChannelLayoutTag_AC3_3_1 = (151L<<16) | 4,
389 kAudioChannelLayoutTag_AC3_3_0_1 = (152L<<16) | 4,
390 kAudioChannelLayoutTag_AC3_2_1_1 = (153L<<16) | 4,
391 kAudioChannelLayoutTag_AC3_3_1_1 = (154L<<16) | 5,
392 kAudioChannelLayoutTag_DiscreteInOrder = (147L<<16) | 0,
393 kAudioChannelLayoutTag_Unknown = 0xFFFF0000
394 }
395
396 enum
397 {
398 kMPEG4Object_AAC_Main = 1,
399 kMPEG4Object_AAC_LC = 2,
400 kMPEG4Object_AAC_SSR = 3,
401 kMPEG4Object_AAC_LTP = 4,
402 kMPEG4Object_AAC_SBR = 5,
403 kMPEG4Object_AAC_Scalable = 6,
404 kMPEG4Object_TwinVQ = 7,
405 kMPEG4Object_CELP = 8,
406 kMPEG4Object_HVXC = 9
407 }
408
409 struct AudioValueRange
410 {
411 double mMinimum;
412 double mMaximum;
413 }
414
415
416 struct AudioValueTranslation
417 {
418 void* mInputData;
419 uint mInputDataSize;
420 void* mOutputData;
421 uint mOutputDataSize;
422 }
423
424
425 struct AudioBuffer
426 {
427 uint mNumberChannels;
428 uint mDataByteSize;
429 void* mData;
430 }
431
432
433 struct AudioBufferList
434 {
435 uint mNumberBuffers;
436 AudioBuffer* mBuffers;
437 }
438
439
440 struct AudioStreamBasicDescription
441 {
442 double mSampleRate;
443 uint mFormatID;
444 uint mFormatFlags;
445 uint mBytesPerPacket;
446 uint mFramesPerPacket;
447 uint mBytesPerFrame;
448 uint mChannelsPerFrame;
449 uint mBitsPerChannel;
450 uint mReserved;
451 }
452
453
454 struct AudioStreamPacketDescription
455 {
456 long mStartOffset;
457 uint mVariableFramesInPacket;
458 uint mDataByteSize;
459 }
460
461
462 struct SMPTETime
463 {
464 short mSubframes;
465 short mSubframeDivisor;
466 uint mCounter;
467 uint mType;
468 uint mFlags;
469 short mHours;
470 short mMinutes;
471 short mSeconds;
472 short mFrames;
473 }
474
475
476 struct AudioTimeStamp
477 {
478 double mSampleTime;
479 ulong mHostTime;
480 double mRateScalar;
481 ulong mWordClockTime;
482 SMPTETime mSMPTETime;
483 uint mFlags;
484 uint mReserved;
485 }
486
487
488 struct AudioClassDescription
489 {
490 uint mType;
491 uint mSubType;
492 uint mManufacturer;
493 }
494
495
496 struct AudioChannelDescription
497 {
498 uint mChannelLabel;
499 uint mChannelFlags;
500 Float32* mCoordinates;
501 }
502
503
504 struct AudioChannelLayout
505 {
506 uint mChannelLayoutTag;
507 uint mChannelBitmap;
508 uint mNumberChannelDescriptions;
509 AudioChannelDescription* mChannelDescriptions;
510 }