Chameleon

Chameleon Svn Source Tree

Root/trunk/i386/include/IOKit/audio/IOAudioDefines.h

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 _IOAUDIODEFINES_H
24#define _IOAUDIODEFINES_H
25
26#define kIOAudioDeviceClassName"IOAudioDevice"
27#define kIOAudioEngineClassName"IOAudioEngine"
28#define kIOAudioStreamClassName"IOAudioStream"
29#define kIOAudioPortClassName"IOAudioPort"
30#define kIOAudioControlClassName"IOAudioControl"
31
32/*!
33 * @defined kIOAudioSampleRateKey
34 * @abstract The key in the IORegistry for the IOAudioEngine sample rate attribute
35 * @discussion This value is represented as an integer in samples per second.
36 */
37#define kIOAudioSampleRateKey"IOAudioSampleRate"
38
39#define kIOAudioSampleRateWholeNumberKey"IOAudioSampleRateWholeNumber"
40#define kIOAudioSampleRateFractionKey"IOAudioSampleRateFraction"
41
42
43
44/******
45 *
46 * IOAudioDevice defines
47 *
48 *****/
49
50
51/*!
52 * @defined kIOAudioDeviceNameKey
53 * @abstract The key in the IORegistry for the IOAudioDevice name attribute.
54 */
55#define kIOAudioDeviceNameKey"IOAudioDeviceName"
56
57#define kIOAudioDeviceShortNameKey"IOAudioDeviceShortName"
58
59/*!
60 * @defined kIOAudioDeviceManufacturerNameKey
61 * @abstract The key in the IORegistry for the IOAudioDevice manufacturer name attribute.
62 */
63#define kIOAudioDeviceManufacturerNameKey"IOAudioDeviceManufacturerName"
64
65#define kIOAudioDeviceLocalizedBundleKey"IOAudioDeviceLocalizedBundle"
66
67#define kIOAudioDeviceTransportTypeKey"IOAudioDeviceTransportType"
68
69#define kIOAudioDeviceConfigurationAppKey"IOAudioDeviceConfigurationApplication"
70
71#define kIOAudioDeviceCanBeDefaults"IOAudioDeviceCanBeDefaults"
72
73#define kIOAudioDeviceModelIDKey"IOAudioDeviceModelID"
74
75
76/*!
77 * @defined kIOAudioDeviceIconName
78 * @abstract The key in the IORegistry for the IOAudioDevice icon name attribute.
79 */
80#define kIOAudioDeviceIconNameKey"IOAudioDeviceIconName"
81
82#define kIOAudioDeviceIconTypeKey"IOAudioDeviceIconType"
83
84#define kIOAudioDeviceIconSubDirKey"IOAudioDeviceIconSubDir"
85
86/*****
87 *
88 * IOAudioEngine defines
89 *
90 *****/
91
92
93 /*!
94 * @defined kIOAudioEngineStateKey
95 * @abstract The key in the IORegistry for the IOAudioEngine state atrribute
96 * @discussion The value for this key may be one of: "Running", "Stopped" or "Paused". Currently the "Paused"
97 * state is unimplemented.
98 */
99#define kIOAudioEngineStateKey"IOAudioEngineState"
100
101/*!
102 * @defined kIOAudioEngineOutputSampleLatencyKey
103 * @abstract The key in the IORegistry for the IOAudioEngine output sample latency key
104 * @discussion
105 */
106#define kIOAudioEngineOutputSampleLatencyKey"IOAudioEngineOutputSampleLatency"
107
108/*!
109 * @defined kIOAudioStreamSampleLatencyKey
110 * @abstract The key in the IORegistry for the IOAudioStream output sample latency key
111 * @discussion Tells the HAL how much latency is on a particular stream. If two streams
112 * on the same engine have different latencies (e.g. one is analog, one is digital), then
113 * set this property on both streams to inform the HAL of the latency differences. Alternately,
114 * you can set the engine latency, and just include the latency additional to that for the particular
115 * stream. The HAL will add the engine and stream latency numbers together to get the total latency.
116 */
117#define kIOAudioStreamSampleLatencyKey"IOAudioStreamSampleLatency"
118
119#define kIOAudioEngineInputSampleLatencyKey"IOAudioEngineInputSampleLatency"
120
121#define kIOAudioEngineSampleOffsetKey"IOAudioEngineSampleOffset"
122
123#define kIOAudioEngineInputSampleOffsetKey"IOAudioEngineInputSampleOffset"
124
125#define kIOAudioEngineNumSampleFramesPerBufferKey"IOAudioEngineNumSampleFramesPerBuffer"
126
127#define kIOAudioEngineCoreAudioPlugInKey"IOAudioEngineCoreAudioPlugIn"
128
129#define kIOAudioEngineNumActiveUserClientsKey"IOAudioEngineNumActiveUserClients"
130
131#define kIOAudioEngineUserClientActiveKey"IOAudioEngineUserClientActive"
132
133#define kIOAudioEngineGlobalUniqueIDKey"IOAudioEngineGlobalUniqueID"
134
135#define kIOAudioEngineDescriptionKey"IOAudioEngineDescription"
136
137#define kIOAudioEngineClockIsStableKey"IOAudioEngineClockIsStable"
138
139#define kIOAudioEngineClockDomainKey"IOAudioEngineClockDomain"
140
141#define kIOAudioEngineIsHiddenKey "IOAudioEngineIsHidden"
142/*!
143 * @defined kIOAudioEngineFullChannelNamesKey
144 * @abstract The key in the IORegistry for the IOAudioEngine's dictionary of fully constructed names for each channel keyed by the device channel
145 * @discussion
146 */
147#definekIOAudioEngineFullChannelNamesKey"IOAudioEngineChannelNames"
148
149/*!
150 * @defined kIOAudioEngineFullChannelNamesKey
151 * @abstract The key in the IORegistry for the IOAudioEngine's dictionary of category names for each channel keyed by the device channel
152 * @discussion
153 */
154#definekIOAudioEngineFullChannelCategoryNamesKey"IOAudioEngineChannelCategoryNames"
155
156/*!
157 * @defined kIOAudioEngineFullChannelNamesKey
158 * @abstract The key in the IORegistry for the IOAudioEngine's dictionary of number names for each channel keyed by the device channel
159 * @discussion
160 */
161#definekIOAudioEngineFullChannelNumberNamesKey"IOAudioEngineChannelNumberNames"
162
163#definekIOAudioEngineFullChannelNameKeyInputFormat"InputChannel%u"
164
165#definekIOAudioEngineFullChannelNameKeyOutputFormat"OutputChannel%u"
166
167#define kIOAudioEngineFlavorKey"IOAudioEngineFlavor"
168
169#definekIOAudioEngineAlwaysLoadCoreAudioPlugInKey"IOAudioEngineAlwaysLoadCoreAudioPlugIn"
170
171/*!
172 * @defined kIOAudioEngineInputChannelLayoutKey
173 * @abstract The key in the IORegistry for the IOAudioEngine's dictionary describes an array of OSNumber data that describe the spatial position of each channel. See IOAudioTypes.h.
174 * @discussion
175 */
176
177#ifndef __OPEN_SOURCE__
178//<rdar://6868206>
179#endif
180#define kIOAudioEngineInputChannelLayoutKey"IOAudioEngineInputChannelLayout"
181
182/*!
183 * @defined kIOAudioEngineOutputChannelLayoutKey
184 * @abstract The key in the IORegistry for the IOAudioEngine's dictionary describes an array of OSNumber data that describe the spatial position of each channel. See IOAudioTypes.h.
185 * @discussion
186 */
187
188#ifndef __OPEN_SOURCE__
189//<rdar://6868206>
190#endif
191#define kIOAudioEngineOutputChannelLayoutKey"IOAudioEngineOutputChannelLayout"
192
193/*****
194 *
195 * IOAudioStream defines
196 *
197 *****/
198
199
200#define kIOAudioStreamIDKey"IOAudioStreamID"
201#define kIOAudioStreamDescriptionKey"IOAudioStreamDescription"
202#define kIOAudioStreamNumClientsKey"IOAudioStreamNumClients"
203
204/*!
205 * @defined kIOAudioStreamDirectionKey
206 * @abstract The key in the IORegistry for the IOAudioStream direction attribute.
207 * @discussion The value for this key may be either "Output" or "Input".
208 */
209#define kIOAudioStreamDirectionKey"IOAudioStreamDirection"
210
211#define kIOAudioStreamStartingChannelIDKey"IOAudioStreamStartingChannelID"
212#define kIOAudioStreamStartingChannelNumberKey"IOAudioStreamStartingChannelNumber"
213#define kIOAudioStreamAvailableKey"IOAudioStreamAvailable"
214
215#define kIOAudioStreamFormatKey"IOAudioStreamFormat"
216#define kIOAudioStreamAvailableFormatsKey"IOAudioStreamAvailableFormats"
217
218#define kIOAudioStreamNumChannelsKey"IOAudioStreamNumChannels"
219#define kIOAudioStreamSampleFormatKey"IOAudioStreamSampleFormat"
220
221#define kIOAudioStreamNumericRepresentationKey"IOAudioStreamNumericRepresentation"
222
223#define kIOAudioStreamFormatFlagsKey"IOAudioStreamFormatFlags"
224#define kIOAudioStreamFramesPerPacketKey"IOAudioStreamFramesPerPacket"
225#define kIOAudioStreamBytesPerPacketKey"IOAudioStreamBytesPerPacket"
226
227
228#define kIOAudioStreamBitDepthKey"IOAudioStreamBitDepth"
229#define kIOAudioStreamBitWidthKey"IOAudioStreamBitWidth"
230
231#define kIOAudioStreamAlignmentKey"IOAudioStreamAlignment"
232
233#define kIOAudioStreamByteOrderKey"IOAudioStreamByteOrder"
234
235#define kIOAudioStreamIsMixableKey"IOAudioStreamIsMixable"
236
237#define kIOAudioStreamMinimumSampleRateKey"IOAudioStreamMinimumSampleRate"
238#define kIOAudioStreamMaximumSampleRateKey"IOAudioStreamMaximumSampleRate"
239
240#define kIOAudioStreamDriverTagKey"IOAudioStreamDriverTag"
241
242#define kIOAudioStreamTerminalTypeKey"IOAudioStreamTerminalType"
243
244/*****
245 *
246 * IOAudioPort defines
247 *
248 *****/
249
250
251 /*!
252 * @defined kIOAudioPortTypeKey
253 * @abstract The key in the IORegistry for the IOAudioPort type attribute.
254 * @discussion This is a driver-defined text attribute that may contain any type.
255 * Common types are defined as: "Speaker", "Headphones", "Microphone", "CD", "Line", "Digital", "Mixer", "PassThru".
256 */
257#define kIOAudioPortTypeKey"IOAudioPortType"
258
259/*!
260 * @defined kIOAudioPortSubTypeKey
261 * @abstract The key in the IORegistry for the IOAudioPort subtype attribute.
262 * @discussion The IOAudioPort subtype is a driver-defined text attribute designed to complement the type
263 * attribute.
264 */
265#define kIOAudioPortSubTypeKey"IOAudioPortSubType"
266
267/*!
268 * @defined kIOAudioPortNameKey
269 * @abstract The key in the IORegistry for the IOAudioPort name attribute.
270 */
271#define kIOAudioPortNameKey"IOAudioPortName"
272
273
274
275/*****
276 *
277 * IOAudioControl defines
278 *
279 *****/
280
281
282 /*!
283 * @defined kIOAudioControlTypeKey
284 * @abstract The key in the IORegistry for the IOAudioCntrol type attribute.
285 * @discussion The value of this text attribute may be defined by the driver, however system-defined
286 * types recognized by the upper-level software are "Level", "Mute", "Selector".
287 */
288#define kIOAudioControlTypeKey"IOAudioControlType"
289
290#define kIOAudioControlSubTypeKey"IOAudioControlSubType"
291
292#define kIOAudioControlUsageKey"IOAudioControlUsage"
293
294#define kIOAudioControlIDKey"IOAudioControlID"
295
296/*!
297 * @defined kIOAudioControlChannelIDKey
298 * @abstract The key in the IORegistry for the IOAudioControl channel ID attribute
299 * @discussion The value for this key is an integer which may be driver defined. Default values for
300 * common channel types are provided in the following defines.
301 */
302#define kIOAudioControlChannelIDKey"IOAudioControlChannelID"
303
304#define kIOAudioControlChannelNumberKey"IOAudioControlChannelNumber"
305
306#define kIOAudioControlCoreAudioPropertyIDKey"IOAudioControlCoreAudioPropertyID"
307/*!
308 * @defined kIOAudioControlChannelNameKey
309 * @abstract The key in the IORegistry for the IOAudioControl name attribute.
310 * @discussion This name should be a human-readable name for the channel(s) represented by the port.
311 * *** NOTE *** We really need to make all of the human-readable attributes that have potential to
312 * be used in a GUI localizable. There will need to be localized strings in the kext bundle matching
313 * the text.
314 */
315#define kIOAudioControlChannelNameKey"IOAudioControlChannelName"
316
317/*!
318 * @defined kIOAudioControlChannelNameAll
319 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
320 * the channel name for all channels.
321 */
322#define kIOAudioControlChannelNameAll"All Channels"
323
324/*!
325 * @defined kIOAudioControlChannelNameLeft
326 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
327 * the channel name for the left channel.
328 */
329#define kIOAudioControlChannelNameLeft"Left"
330
331/*!
332 * @defined kIOAudioControlChannelNameRight
333 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
334 * the channel name for the right channel.
335 */
336#define kIOAudioControlChannelNameRight"Right"
337
338/*!
339 * @defined kIOAudioControlChannelNameCenter
340 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
341 * the channel name for the center channel.
342 */
343#define kIOAudioControlChannelNameCenter"Center"
344
345/*!
346 * @defined kIOAudioControlChannelNameLeftRear
347 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
348 * the channel name for the left rear channel.
349 */
350#define kIOAudioControlChannelNameLeftRear"LeftRear"
351
352/*!
353 * @defined kIOAudioControlChannelNameRightRear
354 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
355 * the channel name for the right rear channel.
356 */
357#define kIOAudioControlChannelNameRightRear"RightRear"
358
359/*!
360 * @defined kIOAudioControlChannelNameSub
361 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
362 * the channel name for the sub/LFE channel.
363 */
364#define kIOAudioControlChannelNameSub"Sub"
365
366/*!
367 * @defined kIOAudioControlChannelNameFrontLeftCenter
368 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
369 * the channel name for the FrontLeftCenter channel.
370 */
371#define kIOAudioControlChannelNameFrontLeftCenter"FrontLeftCenter"
372
373/*!
374 * @defined kIOAudioControlChannelNameFrontRightCenter
375 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
376 * the channel name for the FrontRightCenter channel.
377 */
378#define kIOAudioControlChannelNameFrontRightCenter"FrontRightCenter"
379
380/*!
381 * @defined kIOAudioControlChannelNameRearCenter
382 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
383 * the channel name for the RearCenter channel.
384 */
385#define kIOAudioControlChannelNameRearCenter"RearCenter"
386
387/*!
388 * @defined kIOAudioControlChannelNameSurroundLeft
389 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
390 * the channel name for the SurroundLeft channel.
391 */
392#define kIOAudioControlChannelNameSurroundLeft"SurroundLeft"
393
394/*!
395 * @defined kIOAudioControlChannelNameSurroundRight
396 * @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
397 * the channel name for the SurroundRight channel.
398 */
399#define kIOAudioControlChannelNameSurroundRight"SurroundRight"
400
401
402/*!
403 * @defined kIOAudioControlValueKey
404 * @abstract The key in the IORegistry for the IOAudioControl value attribute.
405 * @discussion The value returned by this key is a 32-bit integer representing the current value of the IOAudioControl.
406 */
407#define kIOAudioControlValueKey"IOAudioControlValue"
408
409/*!
410 * @defined kIOAudioControlValueIsReadOnlyKey
411 * @abstract The key in the IORegistry for the IOAudioControl value-is-read-only attribute.
412 * @discussion The value returned by this key is a 32-bit integer but the value doesn't have any direct meaning.
413 * Instead, the presence of this key indicates that the value for the control is read-only
414 */
415#define kIOAudioControlValueIsReadOnlyKey"IOAudioControlValueIsReadOnly"
416
417/*!
418 * @defined kIOAudioLevelControlMinValueKey
419 * @abstract The key in the IORegistry for the IOAudioControl minimum value attribute.
420 * @discussion The value returned by this key is a 32-bit integer representing the minimum value for the IOAudioControl.
421 * This is currently only valid for Level controls or other driver-defined controls that have a minimum and maximum
422 * value.
423 */
424#define kIOAudioLevelControlMinValueKey"IOAudioLevelControlMinValue"
425
426/*!
427 * @defined kIOAudioLevelControlMaxValueKey
428 * @abstract The key in the IORegistry for the IOAudioControl maximum value attribute.
429 * @discussion The value returned by this key is a 32-bit integer representing the maximum value for the IOAudioControl.
430 * This is currently only valid for Level controls or other driver-defined controls that have a minimum and maximum
431 * value.
432 */
433#define kIOAudioLevelControlMaxValueKey"IOAudioLevelControlMaxValue"
434
435/*!
436 * @defined kIOAudioLevelControlMinDBKey
437 * @abstract The key in the IORgistry for the IOAudioControl minimum db value attribute.
438 * @discussion The value returned by this key is a fixed point value in 16.16 format represented as a 32-bit
439 * integer. It represents the minimum value in db for the IOAudioControl. This value matches the minimum
440 * value attribute. This is currently valid for Level controls or other driver-defined controls that have a
441 * minimum and maximum db value.
442 */
443#define kIOAudioLevelControlMinDBKey"IOAudioLevelControlMinDB"
444
445/*!
446 * @defined kIOAudioLevelControlMaxDBKey
447 * @abstract The key in the IORgistry for the IOAudioControl maximum db value attribute.
448 * @discussion The value returned by this key is a fixed point value in 16.16 format represented as a 32-bit
449 * integer. It represents the maximum value in db for the IOAudioControl. This value matches the maximum
450 * value attribute. This is currently valid for Level controls or other driver-defined controls that have a
451 * minimum and maximum db value.
452 */
453#define kIOAudioLevelControlMaxDBKey"IOAudioLevelControlMaxDB"
454
455#define kIOAudioLevelControlRangesKey"IOAudioLevelControlRanges"
456
457#define kIOAudioLevelControlUseLinearScale"IOAudioLevelControlUseLinearScale"
458
459#define kIOAudioSelectorControlAvailableSelectionsKey"IOAudioSelectorControlAvailableSelections"
460#define kIOAudioSelectorControlSelectionValueKey"IOAudioSelectorControlSelectionValue"
461#define kIOAudioSelectorControlSelectionDescriptionKey"IOAudioSelectorControlSelectionDescriptionKey"
462
463#define kIOAudioSelectorControlClockSourceKey"IOAudioSelectorControlClockSourceKey"
464
465#endif /* _IOAUDIODEFINES_H */
466

Archive Download this file

Revision: 881