Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/IOKit/audio/IOAudioTypes.h

Source at commit 1129 created 12 years 11 months ago.
By meklort, Change options.o so that it reloads the system config as well. Also change it so that it uses that config for variables (NOTE: if the calue exists in chameleonConfig, it's used instead.
1/*
2 * Copyright (c) 1998-2010 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22
23#ifndef _IOKIT_IOAUDIOTYPES_H
24#define _IOKIT_IOAUDIOTYPES_H
25
26#include <libkern/OSTypes.h>
27#include <mach/message.h>
28#include <device/device_types.h>
29
30
31/*!
32 * @enum IOAudioEngineMemory
33 * @abstract Used to identify the type of memory requested by a client process to be mapped into its process space
34 * @discussion This is the parameter to the type field of IOMapMemory when called on an IOAudioEngine. This is
35 * only intended for use by the Audio Device API library.
36 * @constant kIOAudioSampleBuffer This requests the IOAudioEngine's sample buffer
37 * @constant kIOAudioStatusBuffer This requests the IOAudioEngine's status buffer. It's type is IOAudioEngineStatus.
38 * @constant kIOAudioMixBuffer This requests the IOAudioEngine's mix buffer
39*/
40typedef enum _IOAudioEngineMemory {
41 kIOAudioStatusBuffer = 0,
42 kIOAudioSampleBuffer= 1,
43 kIOAudioMixBuffer= 2,
44kIOAudioBytesInInputBuffer= 3,
45kIOAudioBytesInOutputBuffer= 4
46} IOAudioEngineMemory;
47
48/*!
49 * @enum IOAudioEngineCalls
50 * @abstract The set of constants passed to IOAudioEngineUserClient::getExternalMethodForIndex() when making calls
51 * from the IOAudioFamily user client code.
52 */
53typedef enum _IOAudioEngineCalls {
54 kIOAudioEngineCallRegisterClientBuffer= 0,
55 kIOAudioEngineCallUnregisterClientBuffer= 1,
56 kIOAudioEngineCallGetConnectionID= 2,
57 kIOAudioEngineCallStart= 3,
58 kIOAudioEngineCallStop= 4,
59kIOAudioEngineCallGetNearestStartTime= 5
60} IOAudioEngineCalls;
61
62/*! @defined kIOAudioEngineNumCalls The number of elements in the IOAudioEngineCalls enum. */
63#define kIOAudioEngineNumCalls6
64
65typedef enum _IOAudioEngineTraps {
66 kIOAudioEngineTrapPerformClientIO= 0
67} IOAudioEngineTraps;
68
69typedef enum _IOAudioEngineNotifications {
70 kIOAudioEngineAllNotifications = 0,
71 kIOAudioEngineStreamFormatChangeNotification= 1,
72 kIOAudioEngineChangeNotification = 2,
73 kIOAudioEngineStartedNotification = 3,
74 kIOAudioEngineStoppedNotification = 4,
75 kIOAudioEnginePausedNotification= 5,
76 kIOAudioEngineResumedNotification= 6
77} IOAudioEngineNotifications;
78
79/*!
80 * @enum IOAudioEngineState
81 * @abstract Represents the state of an IOAudioEngine
82 * @constant kIOAudioEngineRunning The IOAudioEngine is currently running - it is transferring data to or
83 * from the device.
84 * @constant kIOAudioEngineStopped The IOAudioEngine is currently stopped - no activity is occurring.
85 */
86
87typedef enum _IOAudioEngineState {
88 kIOAudioEngineStopped= 0,
89 kIOAudioEngineRunning= 1,
90 kIOAudioEnginePaused= 2,
91 kIOAudioEngineResumed= 3
92} IOAudioEngineState;
93
94
95/*!
96 * @typedef IOAudioEngineStatus
97 * @abstract Shared-memory structure giving audio engine status
98 * @discussion
99 * @field fVersion Indicates version of this structure
100 * @field fCurrentLoopCount Number of times around the ring buffer since the audio engine started
101 * @field fLastLoopTime Timestamp of the last time the ring buffer wrapped
102 * @field fEraseHeadSampleFrame Location of the erase head in sample frames - erased up to but not
103 * including the given sample frame
104 */
105
106typedef struct _IOAudioEngineStatus {
107 UInt32fVersion;
108 volatile UInt32fCurrentLoopCount;
109 volatile AbsoluteTime fLastLoopTime;
110 volatile UInt32fEraseHeadSampleFrame;
111} IOAudioEngineStatus;
112
113#define kIOAudioEngineCurrentStatusStructVersion2
114
115typedef struct _IOAudioStreamFormat {
116 UInt32fNumChannels;
117 UInt32fSampleFormat;
118 UInt32fNumericRepresentation;
119 UInt8fBitDepth;
120 UInt8fBitWidth;
121 UInt8fAlignment;
122 UInt8fByteOrder;
123 UInt8fIsMixable;
124 UInt32fDriverTag;
125} IOAudioStreamFormat;
126
127#define kFormatExtensionInvalidVersion0
128#define kFormatExtensionCurrentVersion1
129
130typedef struct _IOAudioStreamFormatExtension {
131 UInt32fVersion;
132 UInt32fFlags;
133 UInt32fFramesPerPacket;
134 UInt32fBytesPerPacket;
135} IOAudioStreamFormatExtension;
136
137typedef struct _IOAudioBufferDataDescriptor {
138UInt32fActualDataByteSize;
139UInt32fActualNumSampleFrames;
140UInt32fTotalDataByteSize;
141UInt32fNominalDataByteSize;
142UInt8fData[1];
143} IOAudioBufferDataDescriptor;
144
145#define kStreamDataDescriptorInvalidVersion0
146#define kStreamDataDescriptorCurrentVersion1
147
148typedef struct _IOAudioStreamDataDescriptor {
149 UInt32fVersion;
150 UInt32fNumberOfStreams;
151 UInt32fStreamLength[1];// Array with fNumberOfStreams number of entries
152} IOAudioStreamDataDescriptor;
153
154typedef struct _IOAudioSampleIntervalDescriptor {
155UInt32sampleIntervalHi;
156UInt32sampleIntervalLo;
157} IOAudioSampleIntervalDescriptor;
158
159/*!
160 @struct SMPTETime
161 @abstract A structure for holding a SMPTE time.
162 @field fSubframes
163 The number of subframes in the full message.
164 @field fSubframeDivisor
165 The number of subframes per frame (typically 80).
166 @field fCounter
167 The total number of messages received.
168 @field fType
169 The kind of SMPTE time using the SMPTE time type constants.
170 @field fFlags
171 A set of flags that indicate the SMPTE state.
172 @field fHours
173 The number of hourse in the full message.
174 @field fMinutes
175 The number of minutes in the full message.
176 @field fSeconds
177 The number of seconds in the full message.
178 @field fFrames
179 The number of frames in the full message.
180*/
181typedef struct _IOAudioSMPTETime
182{
183 SInt16 fSubframes;
184 SInt16 fSubframeDivisor;
185 UInt32 fCounter;
186 UInt32 fType;
187 UInt32 fFlags;
188 SInt16 fHours;
189 SInt16 fMinutes;
190 SInt16 fSeconds;
191 SInt16 fFrames;
192
193} IOAudioSMPTETime;
194
195//constants describing SMPTE types (taken from the MTC spec)
196enum
197{
198kIOAudioSMPTETimeType24= 0,
199kIOAudioSMPTETimeType25= 1,
200kIOAudioSMPTETimeType30Drop= 2,
201kIOAudioSMPTETimeType30= 3,
202kIOAudioSMPTETimeType2997= 4,
203kIOAudioSMPTETimeType2997Drop= 5
204};
205
206//flags describing a SMPTE time stamp
207enum
208{
209kIOAudioSMPTETimeValid= (1L << 0),//the full time is valid
210kIOAudioSMPTETimeRunning= (1L << 1)//time is running
211};
212
213//A struct for encapsulating the parts of a time stamp. The flags
214//say which fields are valid.
215typedef struct _IOAudioTimeStamp
216{
217UInt64fSampleTime;//the absolute sample time, was a Float64
218UInt64fHostTime;//the host's root timebase's time
219UInt64fRateScalar;//the system rate scalar, was a Float64
220UInt64fWordClockTime;//the word clock time
221IOAudioSMPTETimefSMPTETime;//the SMPTE time
222UInt32fFlags;//the flags indicate which fields are valid
223UInt32fReserved;//reserved, pads the structure out to force 8 byte alignment
224} IOAudioTimeStamp;
225
226//flags for the AudioTimeStamp sturcture
227enum
228{
229kIOAudioTimeStampSampleTimeValid= (1L << 0),
230kIOAudioTimeStampHostTimeValid= (1L << 1),
231kIOAudioTimeStampRateScalarValid= (1L << 2),
232kIOAudioTimeStampWordClockTimeValid= (1L << 3),
233kIOAudioTimeStampSMPTETimeValid= (1L << 4)
234};
235
236//Some commonly used combinations of timestamp flags
237enum
238{
239kIOAudioTimeStampSampleHostTimeValid= (kIOAudioTimeStampSampleTimeValid | kIOAudioTimeStampHostTimeValid)
240};
241
242/*!
243* @enum IOAudioStreamDirection
244 * @abstract Represents the direction of an IOAudioStream
245 * @constant kIOAudioStreamDirectionOutput Output buffer
246 * @constant kIOAudioStreamDirectionInput Input buffer
247 */
248
249typedef enum _IOAudioStreamDirection {
250 kIOAudioStreamDirectionOutput= 0,
251 kIOAudioStreamDirectionInput= 1
252} IOAudioStreamDirection;
253
254enum {
255kIOAudioDeviceCanBeDefaultNothing= 0,
256kIOAudioDeviceCanBeDefaultInput= (1L << 0),
257kIOAudioDeviceCanBeDefaultOutput= (1L << 1),
258kIOAudioDeviceCanBeSystemOutput= (1L << 2)
259};
260
261/*!
262 * @defined kIOAudioEngineDefaultMixBufferSampleSize
263 */
264
265#define kIOAudioEngineDefaultMixBufferSampleSizesizeof(float)
266
267/* The following are for use only by the IOKit.framework audio family code */
268
269/*!
270 * @enum IOAudioControlCalls
271 * @abstract The set of constants passed to IOAudioControlUserClient::getExternalMethodForIndex() when making calls
272 * from the IOAudioFamily user client code.
273 * @constant kIOAudioControlCallSetValue Used to set the value of an IOAudioControl.
274 * @constant kIOAudioControlCallGetValue Used to get the value of an IOAudioControl.
275 */
276typedef enum _IOAudioControlCalls {
277 kIOAudioControlCallSetValue = 0,
278 kIOAudioControlCallGetValue = 1
279} IOAudioControlCalls;
280
281/*! @defined kIOAudioControlNumCalls The number of elements in the IOAudioControlCalls enum. */
282#define kIOAudioControlNumCalls 2
283
284/*!
285 * @enum IOAudioControlNotifications
286 * @abstract The set of constants passed in the type field of IOAudioControlUserClient::registerNotificaitonPort().
287 * @constant kIOAudioControlValueChangeNotification Used to request value change notifications.
288 * @constant kIOAudioControlRangeChangeNotification Used to request range change notifications.
289 */
290typedef enum _IOAudioControlNotifications {
291 kIOAudioControlValueChangeNotification = 0,
292kIOAudioControlRangeChangeNotification = 1
293} IOAudioControlNotifications;
294
295/*!
296 * @struct IOAudioNotificationMessage
297 * @abstract Used in the mach message for IOAudio notifications.
298 * @field messageHeader Standard mach message header
299 * @field ref The param passed to registerNotificationPort() in refCon.
300 */
301typedef struct _IOAudioNotificationMessage {
302 mach_msg_header_tmessageHeader;
303 UInt32type;
304 UInt32ref;
305 void *sender;
306} IOAudioNotificationMessage;
307
308typedef struct _IOAudioSampleRate {
309 UInt32whole;
310 UInt32fraction;
311} IOAudioSampleRate;
312
313#define kNoIdleAudioPowerDown0xffffffffffffffffULL
314
315enum {
316 kIOAudioPortTypeOutput= 'outp',
317 kIOAudioPortTypeInput= 'inpt',
318 kIOAudioPortTypeMixer= 'mixr',
319 kIOAudioPortTypePassThru= 'pass',
320 kIOAudioPortTypeProcessing= 'proc'
321};
322
323enum {
324 kIOAudioOutputPortSubTypeInternalSpeaker= 'ispk',
325 kIOAudioOutputPortSubTypeExternalSpeaker= 'espk',
326 kIOAudioOutputPortSubTypeHeadphones= 'hdpn',
327 kIOAudioOutputPortSubTypeLine= 'line',
328 kIOAudioOutputPortSubTypeSPDIF= 'spdf',
329
330 kIOAudioInputPortSubTypeInternalMicrophone= 'imic',
331 kIOAudioInputPortSubTypeExternalMicrophone= 'emic',
332 kIOAudioInputPortSubTypeCD= 'cd ',
333 kIOAudioInputPortSubTypeLine= 'line',
334 kIOAudioInputPortSubTypeSPDIF= 'spdf'
335};
336
337enum {
338 kIOAudioControlTypeLevel= 'levl',
339 kIOAudioControlTypeToggle= 'togl',
340kIOAudioControlTypeJack= 'jack',
341 kIOAudioControlTypeSelector= 'slct'
342};
343
344enum {
345 kIOAudioLevelControlSubTypeVolume= 'vlme',
346kIOAudioLevelControlSubTypeLFEVolume= 'subv',
347kIOAudioLevelControlSubTypePRAMVolume= 'pram',
348 kIOAudioToggleControlSubTypeMute= 'mute',
349 kIOAudioToggleControlSubTypeSolo= 'solo',
350kIOAudioToggleControlSubTypeLFEMute= 'subm',
351kIOAudioToggleControlSubTypeiSubAttach= 'atch',
352 kIOAudioSelectorControlSubTypeOutput= 'outp',
353 kIOAudioSelectorControlSubTypeInput= 'inpt',
354 kIOAudioSelectorControlSubTypeClockSource= 'clck',
355 kIOAudioSelectorControlSubTypeDestination= 'dest',
356kIOAudioSelectorControlSubTypeChannelNominalLineLevel= 'nlev',
357kIOAudioSelectorControlSubTypeChannelLevelPlus4dBu= '4dbu',
358kIOAudioSelectorControlSubTypeChannelLevelMinus10dBV= '10db',
359kIOAudioSelectorControlSubTypeChannelLevelMinus20dBV= '20db',
360kIOAudioSelectorControlSubTypeChannelLevelMicLevel= 'micl',
361kIOAudioSelectorControlSubTypeChannelLevelInstrumentLevel= 'istl'
362};
363
364enum {
365 kIOAudioControlUsageOutput= 'outp',
366 kIOAudioControlUsageInput= 'inpt',
367 kIOAudioControlUsagePassThru= 'pass',
368 kIOAudioControlUsageCoreAudioProperty= 'prop'
369};
370
371enum {
372 kIOAudioControlChannelNumberInactive= -1,
373 kIOAudioControlChannelIDAll= 0,
374 kIOAudioControlChannelIDDefaultLeft= 1,
375 kIOAudioControlChannelIDDefaultRight= 2,
376 kIOAudioControlChannelIDDefaultCenter= 3,
377 kIOAudioControlChannelIDDefaultLeftRear= 4,
378 kIOAudioControlChannelIDDefaultRightRear= 5,
379 kIOAudioControlChannelIDDefaultSub= 6,
380 kIOAudioControlChannelIDDefaultFrontLeftCenter= 7,
381 kIOAudioControlChannelIDDefaultFrontRightCenter= 8,
382 kIOAudioControlChannelIDDefaultRearCenter= 9,
383 kIOAudioControlChannelIDDefaultSurroundLeft= 10,
384 kIOAudioControlChannelIDDefaultSurroundRight= 11
385};
386
387enum {
388 kIOAudioSelectorControlSelectionValueNone= 'none',
389
390 // Output-specific selection IDs
391 kIOAudioSelectorControlSelectionValueInternalSpeaker= 'ispk',
392 kIOAudioSelectorControlSelectionValueExternalSpeaker= 'espk',
393 kIOAudioSelectorControlSelectionValueHeadphones= 'hdpn',
394
395 // Input-specific selection IDs
396 kIOAudioSelectorControlSelectionValueInternalMicrophone= 'imic',
397 kIOAudioSelectorControlSelectionValueExternalMicrophone= 'emic',
398 kIOAudioSelectorControlSelectionValueCD= 'cd ',
399
400 // Common selection IDs
401 kIOAudioSelectorControlSelectionValueLine= 'line',
402 kIOAudioSelectorControlSelectionValueSPDIF= 'spdf'
403};
404
405enum {
406 kIOAudioStreamSampleFormatLinearPCM= 'lpcm',
407 kIOAudioStreamSampleFormatIEEEFloat= 'ieee',
408 kIOAudioStreamSampleFormatALaw= 'alaw',
409 kIOAudioStreamSampleFormatMuLaw= 'ulaw',
410 kIOAudioStreamSampleFormatMPEG= 'mpeg',
411 kIOAudioStreamSampleFormatAC3= 'ac-3',
412 kIOAudioStreamSampleFormat1937AC3= 'cac3',
413 kIOAudioStreamSampleFormat1937MPEG1= 'mpg1',
414 kIOAudioStreamSampleFormat1937MPEG2= 'mpg2',
415kIOAudioStreamSampleFormatTimeCode= 'time'//a stream of IOAudioTimeStamp structures that capture any incoming time code information
416};
417
418enum {
419 kIOAudioStreamNumericRepresentationSignedInt= 'sint',
420 kIOAudioStreamNumericRepresentationUnsignedInt= 'uint',
421kIOAudioStreamNumericRepresentationIEEE754Float = 'flot'
422};
423
424enum {
425kIOAudioClockSelectorTypeInternal= 'int ',
426kIOAudioClockSelectorTypeExternal= 'ext ',
427kIOAudioClockSelectorTypeAESEBU= 'asbu',
428kIOAudioClockSelectorTypeTOSLink= 'tosl',
429kIOAudioClockSelectorTypeSPDIF= 'spdf',
430kIOAudioClockSelectorTypeADATOptical= 'adto',
431kIOAudioClockSelectorTypeADAT9Pin= 'adt9',
432kIOAudioClockSelectorTypeSMPTE= 'smpt',
433kIOAudioClockSelectorTypeVideo= 'vdeo',
434kIOAudioClockSelectorTypeControl= 'cnrl',
435kIOAudioClockSelectorTypeOther= 'othr',
436};
437
438enum {
439 kIOAudioStreamAlignmentLowByte= 0,
440 kIOAudioStreamAlignmentHighByte= 1
441};
442
443enum {
444 kIOAudioStreamByteOrderBigEndian= 0,
445 kIOAudioStreamByteOrderLittleEndian= 1
446};
447
448enum {
449 kIOAudioLevelControlNegativeInfinity= 0xffffffff
450};
451
452enum {
453 kIOAudioNewClockDomain= 0xffffffff
454};
455
456// Device connection types
457#ifndef __OPEN_SOURCE__
458//<rdar://7130813>Added kIOAudioDeviceTransportTypeDisplayPort
459#endif
460enum {
461kIOAudioDeviceTransportTypeBuiltIn= 'bltn',
462kIOAudioDeviceTransportTypePCI= 'pci ',
463kIOAudioDeviceTransportTypeUSB= 'usb ',
464kIOAudioDeviceTransportTypeFireWire= '1394',
465kIOAudioDeviceTransportTypeNetwork= 'ntwk',
466kIOAudioDeviceTransportTypeWireless= 'wrls',
467kIOAudioDeviceTransportTypeOther= 'othr',
468kIOAudioDeviceTransportTypeBluetooth= 'blue',
469kIOAudioDeviceTransportTypeVirtual= 'virt',
470kIOAudioDeviceTransportTypeDisplayPort= 'dprt',
471kIOAudioDeviceTransportTypeHdmi= 'hdmi'
472
473};
474
475// types that go nowhere
476enum {
477OUTPUT_NULL= 0x0100,
478INPUT_NULL= 0x0101
479};
480
481// Input terminal types
482enum {
483INPUT_UNDEFINED= 0x0200,
484INPUT_MICROPHONE= 0x0201,
485INPUT_DESKTOP_MICROPHONE= 0x0202,
486INPUT_PERSONAL_MICROPHONE= 0x0203,
487INPUT_OMNIDIRECTIONAL_MICROPHONE= 0x0204,
488INPUT_MICROPHONE_ARRAY= 0x0205,
489INPUT_PROCESSING_MICROPHONE_ARRAY= 0x0206,
490INPUT_MODEM_AUDIO= 0x207
491};
492
493// Output terminal types
494enum {
495OUTPUT_UNDEFINED= 0x0300,
496OUTPUT_SPEAKER= 0x0301,
497OUTPUT_HEADPHONES= 0x0302,
498OUTPUT_HEAD_MOUNTED_DISPLAY_AUDIO= 0x0303,
499OUTPUT_DESKTOP_SPEAKER= 0x0304,
500OUTPUT_ROOM_SPEAKER= 0x0305,
501OUTPUT_COMMUNICATION_SPEAKER= 0x0306,
502OUTPUT_LOW_FREQUENCY_EFFECTS_SPEAKER= 0x0307
503};
504
505// Bi-directional terminal types
506enum {
507BIDIRECTIONAL_UNDEFINED= 0x0400,
508BIDIRECTIONAL_HANDSET= 0x0401,
509BIDIRECTIONAL_HEADSET= 0x0402,
510BIDIRECTIONAL_SPEAKERPHONE_NO_ECHO_REDX= 0x0403,
511BIDIRECTIONAL_ECHO_SUPPRESSING_SPEAKERPHONE= 0x0404,
512BIDIRECTIONAL_ECHO_CANCELING_SPEAKERPHONE= 0x0405
513};
514
515// Telephony terminal types
516enum {
517TELEPHONY_UNDEFINED= 0x0500,
518TELEPHONY_PHONE_LINE= 0x0501,
519TELEPHONY_TELEPHONE= 0x0502,
520TELEPHONY_DOWN_LINE_PHONE= 0x0503
521};
522
523// External terminal types
524enum {
525EXTERNAL_UNDEFINED= 0x0600,
526EXTERNAL_ANALOG_CONNECTOR= 0x0601,
527EXTERNAL_DIGITAL_AUDIO_INTERFACE= 0x0602,
528EXTERNAL_LINE_CONNECTOR= 0x0603,
529EXTERNAL_LEGACY_AUDIO_CONNECTOR= 0x0604,
530EXTERNAL_SPDIF_INTERFACE= 0x0605,
531EXTERNAL_1394_DA_STREAM= 0x0606,
532EXTERNAL_1394_DV_STREAM_SOUNDTRACK= 0x0607,
533EXTERNAL_ADAT= 0x0608,
534EXTERNAL_TDIF= 0x0609,
535EXTERNAL_MADI= 0x060A
536};
537
538// Embedded terminal types
539enum {
540EMBEDDED_UNDEFINED= 0x0700,
541EMBEDDED_LEVEL_CALIBRATION_NOISE_SOURCE= 0x0701,
542EMBEDDED_EQUALIZATION_NOISE= 0x0702,
543EMBEDDED_CD_PLAYER= 0x0703,
544EMBEDDED_DAT= 0x0704,
545EMBEDDED_DCC= 0x0705,
546EMBEDDED_MINIDISK= 0x0706,
547EMBEDDED_ANALOG_TAPE= 0x0707,
548EMBEDDED_PHONOGRAPH= 0x0708,
549EMBEDDED_VCR_AUDIO= 0x0709,
550EMBEDDED_VIDEO_DISC_AUDIO= 0x070A,
551EMBEDDED_DVD_AUDIO= 0x070B,
552EMBEDDED_TV_TUNER_AUDIO= 0x070C,
553EMBEDDED_SATELLITE_RECEIVER_AUDIO= 0x070D,
554EMBEDDED_CABLE_TUNER_AUDIO= 0x070E,
555EMBEDDED_DSS_AUDIO= 0x070F,
556EMBEDDED_RADIO_RECEIVER= 0x0710,
557EMBEDDED_RADIO_TRANSMITTER= 0x0711,
558EMBEDDED_MULTITRACK_RECORDER= 0x0712,
559EMBEDDED_SYNTHESIZER= 0x0713
560};
561
562// Processing terminal types
563enum {
564PROCESSOR_UNDEFINED= 0x0800,
565PROCESSOR_GENERAL= 0x0801
566};
567
568//Channel spatial position types
569
570#ifndef __OPEN_SOURCE__
571//<rdar://6868206>NOTE: the following are derived from CoreAudioTypes.h
572#endif
573
574#definekIOAudioChannelLabel_Discrete_field_ba16
575enum {
576 kIOAudioChannelLabel_Unknown = 0xFFFFFFFF, // unknown or unspecified other use
577 kIOAudioChannelLabel_Unused = 0, // channel is present, but has no intended use or destination
578 kIOAudioChannelLabel_UseCoordinates = 100, // channel is described by the mCoordinates fields.
579
580 kIOAudioChannelLabel_Left = 1,
581 kIOAudioChannelLabel_Right = 2,
582 kIOAudioChannelLabel_Center = 3,
583 kIOAudioChannelLabel_LFEScreen = 4,
584 kIOAudioChannelLabel_LeftSurround = 5, // WAVE: "Back Left"
585 kIOAudioChannelLabel_RightSurround = 6, // WAVE: "Back Right"
586 kIOAudioChannelLabel_LeftCenter = 7,
587 kIOAudioChannelLabel_RightCenter = 8,
588 kIOAudioChannelLabel_CenterSurround = 9, // WAVE: "Back Center" or plain "Rear Surround"
589 kIOAudioChannelLabel_LeftSurroundDirect = 10, // WAVE: "Side Left"
590 kIOAudioChannelLabel_RightSurroundDirect = 11, // WAVE: "Side Right"
591 kIOAudioChannelLabel_TopCenterSurround = 12,
592 kIOAudioChannelLabel_VerticalHeightLeft = 13, // WAVE: "Top Front Left"
593 kIOAudioChannelLabel_VerticalHeightCenter = 14, // WAVE: "Top Front Center"
594 kIOAudioChannelLabel_VerticalHeightRight = 15, // WAVE: "Top Front Right"
595
596 kIOAudioChannelLabel_TopBackLeft = 16,
597 kIOAudioChannelLabel_TopBackCenter = 17,
598 kIOAudioChannelLabel_TopBackRight = 18,
599
600 kIOAudioChannelLabel_RearSurroundLeft = 33,
601 kIOAudioChannelLabel_RearSurroundRight = 34,
602 kIOAudioChannelLabel_LeftWide = 35,
603 kIOAudioChannelLabel_RightWide = 36,
604 kIOAudioChannelLabel_LFE2 = 37,
605 kIOAudioChannelLabel_LeftTotal = 38, // matrix encoded 4 channels
606 kIOAudioChannelLabel_RightTotal = 39, // matrix encoded 4 channels
607 kIOAudioChannelLabel_HearingImpaired = 40,
608 kIOAudioChannelLabel_Narration = 41,
609 kIOAudioChannelLabel_Mono = 42,
610 kIOAudioChannelLabel_DialogCentricMix = 43,
611
612 kIOAudioChannelLabel_CenterSurroundDirect = 44, // back center, non diffuse
613
614 kIOAudioChannelLabel_Haptic = 45,
615
616 // first order ambisonic channels
617 kIOAudioChannelLabel_Ambisonic_W = 200,
618 kIOAudioChannelLabel_Ambisonic_X = 201,
619 kIOAudioChannelLabel_Ambisonic_Y = 202,
620 kIOAudioChannelLabel_Ambisonic_Z = 203,
621
622 // Mid/Side Recording
623 kIOAudioChannelLabel_MS_Mid = 204,
624 kIOAudioChannelLabel_MS_Side = 205,
625
626 // X-Y Recording
627 kIOAudioChannelLabel_XY_X = 206,
628 kIOAudioChannelLabel_XY_Y = 207,
629
630 // other
631 kIOAudioChannelLabel_HeadphonesLeft = 301,
632 kIOAudioChannelLabel_HeadphonesRight = 302,
633 kIOAudioChannelLabel_ClickTrack = 304,
634 kIOAudioChannelLabel_ForeignLanguage = 305,
635
636 // generic discrete channel
637 kIOAudioChannelLabel_Discrete = 400,
638
639 // numbered discrete channel
640 kIOAudioChannelLabel_Discrete_0 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 0,
641 kIOAudioChannelLabel_Discrete_1 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 1,
642 kIOAudioChannelLabel_Discrete_2 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 2,
643 kIOAudioChannelLabel_Discrete_3 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 3,
644 kIOAudioChannelLabel_Discrete_4 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 4,
645 kIOAudioChannelLabel_Discrete_5 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 5,
646 kIOAudioChannelLabel_Discrete_6 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 6,
647 kIOAudioChannelLabel_Discrete_7 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 7,
648 kIOAudioChannelLabel_Discrete_8 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 8,
649 kIOAudioChannelLabel_Discrete_9 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 9,
650 kIOAudioChannelLabel_Discrete_10 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 10,
651 kIOAudioChannelLabel_Discrete_11 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 11,
652 kIOAudioChannelLabel_Discrete_12 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 12,
653 kIOAudioChannelLabel_Discrete_13 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 13,
654 kIOAudioChannelLabel_Discrete_14 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 14,
655 kIOAudioChannelLabel_Discrete_15 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 15,
656 kIOAudioChannelLabel_Discrete_65535 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 65535
657};
658
659
660
661#endif /* _IOKIT_IOAUDIOTYPES_H */
662

Archive Download this file

Revision: 1129