Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/IOKit/audio/IOAudioDefines.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 _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: 1129