/*
* Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
* The contents of this file constitute Original Code as defined in and
* are subject to the Apple Public Source License Version 1.1 (the
* "License"). You may not use this file except in compliance with the
* License. Please obtain a copy of the License at
* http://www.apple.com/publicsource and read it before using this file.
*
* This Original Code and all software distributed under the License are
* distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
* License for the specific language governing rights and limitations
* under the License.
*
* @APPLE_LICENSE_HEADER_END@
*/
#ifndef_IOAUDIODEFINES_H
#define_IOAUDIODEFINES_H
#definekIOAudioDeviceClassName"IOAudioDevice"
#definekIOAudioEngineClassName"IOAudioEngine"
#definekIOAudioStreamClassName"IOAudioStream"
#definekIOAudioPortClassName"IOAudioPort"
#definekIOAudioControlClassName"IOAudioControl"/*!
* @defined kIOAudioSampleRateKey
* @abstract The key in the IORegistry for the IOAudioEngine sample rate attribute
* @discussion This value is represented as an integer in samples per second.
*/
#definekIOAudioSampleRateKey"IOAudioSampleRate"
#definekIOAudioSampleRateWholeNumberKey"IOAudioSampleRateWholeNumber"
#definekIOAudioSampleRateFractionKey"IOAudioSampleRateFraction"/******
*
* IOAudioDevice defines
*
*****//*!
* @defined kIOAudioDeviceNameKey
* @abstract The key in the IORegistry for the IOAudioDevice name attribute.
*/
#definekIOAudioDeviceNameKey"IOAudioDeviceName"
#definekIOAudioDeviceShortNameKey"IOAudioDeviceShortName"/*!
* @defined kIOAudioDeviceManufacturerNameKey
* @abstract The key in the IORegistry for the IOAudioDevice manufacturer name attribute.
*/
#definekIOAudioDeviceManufacturerNameKey"IOAudioDeviceManufacturerName"
#definekIOAudioDeviceLocalizedBundleKey"IOAudioDeviceLocalizedBundle"
#definekIOAudioDeviceTransportTypeKey"IOAudioDeviceTransportType"
#definekIOAudioDeviceConfigurationAppKey"IOAudioDeviceConfigurationApplication"/*****
*
* IOAudioEngine defines
*
*****//*!
* @defined kIOAudioEngineStateKey
* @abstract The key in the IORegistry for the IOAudioEngine state atrribute
* @discussion The value for this key may be one of: "Running", "Stopped" or "Paused". Currently the "Paused"
* state is unimplemented.
*/
#definekIOAudioEngineStateKey"IOAudioEngineState"/*!
* @defined kIOAudioEngineOutputSampleLatencyKey
* @abstract The key in the IORegistry for the IOAudioEngine output sample latency key
* @discussion
*/
#definekIOAudioEngineOutputSampleLatencyKey"IOAudioEngineOutputSampleLatency"/*!
* @defined kIOAudioStreamSampleLatencyKey
* @abstract The key in the IORegistry for the IOAudioStream output sample latency key
* @discussion Tells the HAL how much latency is on a particular stream. If two streams
* on the same engine have different latencies (e.g. one is analog, one is digital), then
* set this property on both streams to inform the HAL of the latency differences. Alternately,
* you can set the engine latency, and just include the latency additional to that for the particular
* stream. The HAL will add the engine and stream latency numbers together to get the total latency.
*/
#definekIOAudioStreamSampleLatencyKey"IOAudioStreamSampleLatency"
#definekIOAudioEngineInputSampleLatencyKey"IOAudioEngineInputSampleLatency"
#definekIOAudioEngineSampleOffsetKey"IOAudioEngineSampleOffset"
#definekIOAudioEngineNumSampleFramesPerBufferKey"IOAudioEngineNumSampleFramesPerBuffer"
#definekIOAudioEngineCoreAudioPlugInKey"IOAudioEngineCoreAudioPlugIn"
#definekIOAudioEngineNumActiveUserClientsKey"IOAudioEngineNumActiveUserClients"
#definekIOAudioEngineUserClientActiveKey"IOAudioEngineUserClientActive"
#definekIOAudioEngineGlobalUniqueIDKey"IOAudioEngineGlobalUniqueID"
#definekIOAudioEngineDescriptionKey"IOAudioEngineDescription"/*!
* @defined kIOAudioEngineFullChannelNamesKey
* @abstract The key in the IORegistry for the IOAudioEngine's dictionary of fully constructed names for each channel keyed by the device channel
* @discussion
*/
#definekIOAudioEngineFullChannelNamesKey"IOAudioEngineChannelNames"/*!
* @defined kIOAudioEngineFullChannelNamesKey
* @abstract The key in the IORegistry for the IOAudioEngine's dictionary of category names for each channel keyed by the device channel
* @discussion
*/
#definekIOAudioEngineFullChannelCategoryNamesKey"IOAudioEngineChannelCategoryNames"/*!
* @defined kIOAudioEngineFullChannelNamesKey
* @abstract The key in the IORegistry for the IOAudioEngine's dictionary of number names for each channel keyed by the device channel
* @discussion
*/
#definekIOAudioEngineFullChannelNumberNamesKey"IOAudioEngineChannelNumberNames"
#definekIOAudioEngineFlavorKey"IOAudioEngineFlavor"/*****
*
* IOAudioStream defines
*
*****/
#definekIOAudioStreamIDKey"IOAudioStreamID"
#definekIOAudioStreamDescriptionKey"IOAudioStreamDescription"
#definekIOAudioStreamNumClientsKey"IOAudioStreamNumClients"/*!
* @defined kIOAudioStreamDirectionKey
* @abstract The key in the IORegistry for the IOAudioStream direction attribute.
* @discussion The value for this key may be either "Output" or "Input".
*/
#definekIOAudioStreamDirectionKey"IOAudioStreamDirection"
#definekIOAudioStreamStartingChannelIDKey"IOAudioStreamStartingChannelID"
#definekIOAudioStreamStartingChannelNumberKey"IOAudioStreamStartingChannelNumber"
#definekIOAudioStreamAvailableKey"IOAudioStreamAvailable"
#definekIOAudioStreamFormatKey"IOAudioStreamFormat"
#definekIOAudioStreamAvailableFormatsKey"IOAudioStreamAvailableFormats"
#definekIOAudioStreamNumChannelsKey"IOAudioStreamNumChannels"
#definekIOAudioStreamSampleFormatKey"IOAudioStreamSampleFormat"
#definekIOAudioStreamNumericRepresentationKey"IOAudioStreamNumericRepresentation"
#definekIOAudioStreamFormatFlagsKey"IOAudioStreamFormatFlags"
#definekIOAudioStreamFramesPerPacketKey"IOAudioStreamFramesPerPacket"
#definekIOAudioStreamBytesPerPacketKey"IOAudioStreamBytesPerPacket"
#definekIOAudioStreamBitDepthKey"IOAudioStreamBitDepth"
#definekIOAudioStreamBitWidthKey"IOAudioStreamBitWidth"
#definekIOAudioStreamAlignmentKey"IOAudioStreamAlignment"
#definekIOAudioStreamByteOrderKey"IOAudioStreamByteOrder"
#definekIOAudioStreamIsMixableKey"IOAudioStreamIsMixable"
#definekIOAudioStreamMinimumSampleRateKey"IOAudioStreamMinimumSampleRate"
#definekIOAudioStreamMaximumSampleRateKey"IOAudioStreamMaximumSampleRate"
#definekIOAudioStreamDriverTagKey"IOAudioStreamDriverTag"
#definekIOAudioStreamTerminalTypeKey"IOAudioStreamTerminalType"/*****
*
* IOAudioPort defines
*
*****//*!
* @defined kIOAudioPortTypeKey
* @abstract The key in the IORegistry for the IOAudioPort type attribute.
* @discussion This is a driver-defined text attribute that may contain any type.
* Common types are defined as: "Speaker", "Headphones", "Microphone", "CD", "Line", "Digital", "Mixer", "PassThru".
*/
#definekIOAudioPortTypeKey"IOAudioPortType"/*!
* @defined kIOAudioPortSubTypeKey
* @abstract The key in the IORegistry for the IOAudioPort subtype attribute.
* @discussion The IOAudioPort subtype is a driver-defined text attribute designed to complement the type
* attribute.
*/
#definekIOAudioPortSubTypeKey"IOAudioPortSubType"/*!
* @defined kIOAudioPortNameKey
* @abstract The key in the IORegistry for the IOAudioPort name attribute.
*/
#definekIOAudioPortNameKey"IOAudioPortName"/*****
*
* IOAudioControl defines
*
*****//*!
* @defined kIOAudioControlTypeKey
* @abstract The key in the IORegistry for the IOAudioCntrol type attribute.
* @discussion The value of this text attribute may be defined by the driver, however system-defined
* types recognized by the upper-level software are "Level", "Mute", "Selector".
*/
#definekIOAudioControlTypeKey"IOAudioControlType"
#definekIOAudioControlSubTypeKey"IOAudioControlSubType"
#definekIOAudioControlUsageKey"IOAudioControlUsage"
#definekIOAudioControlIDKey"IOAudioControlID"/*!
* @defined kIOAudioControlChannelIDKey
* @abstract The key in the IORegistry for the IOAudioControl channel ID attribute
* @discussion The value for this key is an integer which may be driver defined. Default values for
* common channel types are provided in the following defines.
*/
#definekIOAudioControlChannelIDKey"IOAudioControlChannelID"
#definekIOAudioControlChannelNumberKey"IOAudioControlChannelNumber"
#definekIOAudioControlCoreAudioPropertyIDKey"IOAudioControlCoreAudioPropertyID"/*!
* @defined kIOAudioControlChannelNameKey
* @abstract The key in the IORegistry for the IOAudioControl name attribute.
* @discussion This name should be a human-readable name for the channel(s) represented by the port.
* *** NOTE *** We really need to make all of the human-readable attributes that have potential to
* be used in a GUI localizable. There will need to be localized strings in the kext bundle matching
* the text.
*/
#definekIOAudioControlChannelNameKey"IOAudioControlChannelName"/*!
* @defined kIOAudioControlChannelNameAll
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for all channels.
*/
#definekIOAudioControlChannelNameAll"All Channels"/*!
* @defined kIOAudioControlChannelNameLeft
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for the left channel.
*/
#definekIOAudioControlChannelNameLeft"Left"/*!
* @defined kIOAudioControlChannelNameRight
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for the right channel.
*/
#definekIOAudioControlChannelNameRight"Right"/*!
* @defined kIOAudioControlChannelNameCenter
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for the center channel.
*/
#definekIOAudioControlChannelNameCenter"Center"/*!
* @defined kIOAudioControlChannelNameLeftRear
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for the left rear channel.
*/
#definekIOAudioControlChannelNameLeftRear"LeftRear"/*!
* @defined kIOAudioControlChannelNameRightRear
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for the right rear channel.
*/
#definekIOAudioControlChannelNameRightRear"RightRear"/*!
* @defined kIOAudioControlChannelNameSub
* @abstract The value for the kIOAudioControlChannelNameKey in the IORegistry representing
* the channel name for the sub/LFE channel.
*/
#definekIOAudioControlChannelNameSub"Sub"/*!
* @defined kIOAudioControlValueKey
* @abstract The key in the IORegistry for the IOAudioControl value attribute.
* @discussion The value returned by this key is a 32-bit integer representing the current value of the IOAudioControl.
*/
#definekIOAudioControlValueKey"IOAudioControlValue"/*!
* @defined kIOAudioControlValueIsReadOnlyKey
* @abstract The key in the IORegistry for the IOAudioControl value-is-read-only attribute.
* @discussion The value returned by this key is a 32-bit integer but the value doesn't have any direct meaning.
* Instead, the presence of this key indicates that the value for the control is read-only
*/
#definekIOAudioControlValueIsReadOnlyKey"IOAudioControlValueIsReadOnly"/*!
* @defined kIOAudioLevelControlMinValueKey
* @abstract The key in the IORegistry for the IOAudioControl minimum value attribute.
* @discussion The value returned by this key is a 32-bit integer representing the minimum value for the IOAudioControl.
* This is currently only valid for Level controls or other driver-defined controls that have a minimum and maximum
* value.
*/
#definekIOAudioLevelControlMinValueKey"IOAudioLevelControlMinValue"/*!
* @defined kIOAudioLevelControlMaxValueKey
* @abstract The key in the IORegistry for the IOAudioControl maximum value attribute.
* @discussion The value returned by this key is a 32-bit integer representing the maximum value for the IOAudioControl.
* This is currently only valid for Level controls or other driver-defined controls that have a minimum and maximum
* value.
*/
#definekIOAudioLevelControlMaxValueKey"IOAudioLevelControlMaxValue"/*!
* @defined kIOAudioLevelControlMinDBKey
* @abstract The key in the IORgistry for the IOAudioControl minimum db value attribute.
* @discussion The value returned by this key is a fixed point value in 16.16 format represented as a 32-bit
* integer. It represents the minimum value in db for the IOAudioControl. This value matches the minimum
* value attribute. This is currently valid for Level controls or other driver-defined controls that have a
* minimum and maximum db value.
*/
#definekIOAudioLevelControlMinDBKey"IOAudioLevelControlMinDB"/*!
* @defined kIOAudioLevelControlMaxDBKey
* @abstract The key in the IORgistry for the IOAudioControl maximum db value attribute.
* @discussion The value returned by this key is a fixed point value in 16.16 format represented as a 32-bit
* integer. It represents the maximum value in db for the IOAudioControl. This value matches the maximum
* value attribute. This is currently valid for Level controls or other driver-defined controls that have a
* minimum and maximum db value.
*/
#definekIOAudioLevelControlMaxDBKey"IOAudioLevelControlMaxDB"
#definekIOAudioLevelControlRangesKey"IOAudioLevelControlRanges"
#definekIOAudioSelectorControlAvailableSelectionsKey"IOAudioSelectorControlAvailableSelections"
#definekIOAudioSelectorControlSelectionValueKey"IOAudioSelectorControlSelectionValue"
#definekIOAudioSelectorControlSelectionDescriptionKey"IOAudioSelectorControlSelectionDescriptionKey"
#endif/* _IOAUDIODEFINES_H */