ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference
|
IOAudioTypes.h |
Includes: |
<libkern/OSTypes.h> <mach/message.h> <device/device_types.h> <IOKit/ndrvsupport/IOMacOSTypes.h> |
IOAudioBufferDataDescriptor |
typedef struct _IOAudioBufferDataDescriptor { UInt32 fActualDataByteSize; UInt32 fActualNumSampleFrames; UInt32 fTotalDataByteSize; UInt32 fNominalDataByteSize; Byte fData[kVariableLengthArray]; } IOAudioBufferDataDescriptor;
This structure is used to describe the structure of a sample data buffer
IOAudioControlCalls |
The set of constants passed to IOAudioControlUserClient::getExternalMethodForIndex() when making calls from the IOAudioFamily user client code.
typedef enum _IOAudioControlCalls { kIOAudioControlCallSetValue = 0, kIOAudioControlCallGetValue = 1 } IOAudioControlCalls;
kIOAudioControlCallSetValue
Used to set the value of an IOAudioControl.
kIOAudioControlCallGetValue
Used to get the value of an IOAudioControl.
IOAudioControlNotifications |
The set of constants passed in the type field of IOAudioControlUserClient::registerNotificaitonPort().
typedef enum _IOAudioControlNotifications { kIOAudioControlValueChangeNotification = 0, kIOAudioControlRangeChangeNotification = 1 } IOAudioControlNotifications;
kIOAudioControlValueChangeNotification
Used to request value change notifications.
kIOAudioControlRangeChangeNotification
Used to request range change notifications.
IOAudioEngineCalls |
The set of constants passed to IOAudioEngineUserClient::getExternalMethodForIndex() when making calls from the IOAudioFamily user client code.
typedef enum _IOAudioEngineCalls { kIOAudioEngineCallRegisterClientBuffer = 0, kIOAudioEngineCallUnregisterClientBuffer = 1, kIOAudioEngineCallGetConnectionID = 2, kIOAudioEngineCallStart = 3, kIOAudioEngineCallStop = 4, kIOAudioEngineCallGetNearestStartTime = 5 } IOAudioEngineCalls;
IOAudioEngineMemory |
Used to identify the type of memory requested by a client process to be mapped into its process space
typedef enum _IOAudioEngineMemory { kIOAudioStatusBuffer = 0, kIOAudioSampleBuffer = 1, kIOAudioMixBuffer = 2, kIOAudioBytesInInputBuffer = 3, kIOAudioBytesInOutputBuffer = 4 } IOAudioEngineMemory;
kIOAudioSampleBuffer
This requests the IOAudioEngine's sample buffer
kIOAudioStatusBuffer
This requests the IOAudioEngine's status buffer. It's type is IOAudioEngineStatus.
kIOAudioMixBuffer
This requests the IOAudioEngine's mix buffer
This is the parameter to the type field of IOMapMemory when called on an IOAudioEngine. This is only intended for use by the Audio Device API library.
IOAudioEngineNotifications |
typedef enum _IOAudioEngineNotifications { kIOAudioEngineAllNotifications = 0, kIOAudioEngineStreamFormatChangeNotification = 1, kIOAudioEngineChangeNotification = 2, kIOAudioEngineStartedNotification = 3, kIOAudioEngineStoppedNotification = 4, kIOAudioEnginePausedNotification = 5, kIOAudioEngineResumedNotification = 6 } IOAudioEngineNotifications;
This enum contains constants that can be used to register for notification about changes to the state of an audio engine
IOAudioEngineState |
Represents the state of an IOAudioEngine
typedef enum _IOAudioEngineState { kIOAudioEngineStopped = 0, kIOAudioEngineRunning = 1, kIOAudioEnginePaused = 2, kIOAudioEngineResumed = 3 } IOAudioEngineState;
kIOAudioEngineRunning
The IOAudioEngine is currently running - it is transferring data to or from the device.
kIOAudioEngineStopped
The IOAudioEngine is currently stopped - no activity is occurring.
IOAudioEngineStatus |
Shared-memory structure giving audio engine status
typedef struct _IOAudioEngineStatus { UInt32 fVersion; volatile UInt32 fCurrentLoopCount; volatile AbsoluteTime fLastLoopTime; volatile UInt32 fEraseHeadSampleFrame; } IOAudioEngineStatus;
fVersion
Indicates version of this structure
fCurrentLoopCount
Number of times around the ring buffer since the audio engine started
fLastLoopTime
Timestamp of the last time the ring buffer wrapped
fEraseHeadSampleFrame
Location of the erase head in sample frames - erased up to but not including the given sample frame
IOAudioEngineTraps |
typedef enum _IOAudioEngineTraps { kIOAudioEngineTrapPerformClientIO = 0 } IOAudioEngineTraps;
This enum contains constants for audio engine traps.
IOAudioNotificationMessage |
Used in the mach message for IOAudio notifications.
typedef struct _IOAudioNotificationMessage { mach_msg_header_t messageHeader; UInt32 type; UInt32 ref; void *sender; } IOAudioNotificationMessage;
messageHeader
Standard mach message header
ref
The param passed to registerNotificationPort() in refCon.
IOAudioSampleIntervalDescriptor |
typedef struct _IOAudioSampleIntervalDescriptor { UInt32 sampleIntervalHi; UInt32 sampleIntervalLo; } IOAudioSampleIntervalDescriptor;
This structure contains information about a sampling interval.
IOAudioSampleRate |
typedef struct _IOAudioSampleRate { UInt32 whole; UInt32 fraction; } IOAudioSampleRate;
Audio Sample Rate (expressed as a whole part and fractional part)
IOAudioSMPTETime |
A structure for holding a SMPTE time.
See Also:typedef struct _IOAudioSMPTETime { SInt16 fSubframes; SInt16 fSubframeDivisor; UInt32 fCounter; UInt32 fType; UInt32 fFlags; SInt16 fHours; SInt16 fMinutes; SInt16 fSeconds; SInt16 fFrames; } IOAudioSMPTETime;
fSubframes
The number of subframes in the full message.
fSubframeDivisor
The number of subframes per frame (typically 80).
fCounter
The total number of messages received.
fType
The kind of SMPTE time using the SMPTE time type constants.
fFlags
A set of flags that indicate the SMPTE state.
fHours
The number of hourse in the full message.
fMinutes
The number of minutes in the full message.
fSeconds
The number of seconds in the full message.
fFrames
The number of frames in the full message.
IOAudioStreamDataDescriptor |
typedef struct _IOAudioStreamDataDescriptor { UInt32 fVersion; UInt32 fNumberOfStreams; UInt32 fStreamLength[1]; // Array with fNumberOfStreams number of entries } IOAudioStreamDataDescriptor;
This structure contains a description of a block of data containing audio data streams.
IOAudioStreamDirection |
Represents the direction of an IOAudioStream
typedef enum _IOAudioStreamDirection { kIOAudioStreamDirectionOutput = 0, kIOAudioStreamDirectionInput = 1 } IOAudioStreamDirection;
kAudioOutput
Output buffer
kAudioInput
Input buffer
IOAudioStreamFormat |
typedef struct _IOAudioStreamFormat { UInt32 fNumChannels; UInt32 fSampleFormat; UInt32 fNumericRepresentation; UInt8 fBitDepth; UInt8 fBitWidth; UInt8 fAlignment; UInt8 fByteOrder; UInt8 fIsMixable; UInt32 fDriverTag; } IOAudioStreamFormat;
This structure describes the format of an audio stream.
IOAudioStreamFormatExtension |
typedef struct _IOAudioStreamFormatExtension { UInt32 fVersion; UInt32 fFlags; UInt32 fFramesPerPacket; UInt32 fBytesPerPacket; } IOAudioStreamFormatExtension;
This structure contains an extension to the audio stream format.
IOAudioTimeStamp |
typedef struct _IOAudioTimeStamp { UInt64 fSampleTime; UInt64 fHostTime; UInt64 fRateScalar; UInt64 fWordClockTime; IOAudioSMPTETime fSMPTETime; UInt32 fFlags; UInt32 fReserved; } IOAudioTimeStamp;
fSampleTime
the absolute sample time, was a Float64
fHostTime
the host's root timebase's time
fRateScalar
the system rate scalar, was a Float64
fWordClockTime
the word clock time
fSMPTETime
the SMPTE time
fFlags
the flags indicate which fields are valid
fReserved
reserved, pads the structure out to force 8 byte alignment
A struct for encapsulating the parts of a time stamp. The flags say which fields are valid.
SMPTETime |
A structure for holding a SMPTE time.
See Also:typedef struct _IOAudioSMPTETime { SInt16 fSubframes; SInt16 fSubframeDivisor; UInt32 fCounter; UInt32 fType; UInt32 fFlags; SInt16 fHours; SInt16 fMinutes; SInt16 fSeconds; SInt16 fFrames; } IOAudioSMPTETime;
fSubframes
The number of subframes in the full message.
fSubframeDivisor
The number of subframes per frame (typically 80).
fCounter
The total number of messages received.
fType
The kind of SMPTE time using the SMPTE time type constants.
fFlags
A set of flags that indicate the SMPTE state.
fHours
The number of hourse in the full message.
fMinutes
The number of minutes in the full message.
fSeconds
The number of seconds in the full message.
fFrames
The number of frames in the full message.
IOAudioBidirectionalTerminalTypes |
enum { BIDIRECTIONAL_UNDEFINED = 0x0400, BIDIRECTIONAL_HANDSET = 0x0401, BIDIRECTIONAL_HEADSET = 0x0402, BIDIRECTIONAL_SPEAKERPHONE_NO_ECHO_REDX = 0x0403, BIDIRECTIONAL_ECHO_SUPPRESSING_SPEAKERPHONE = 0x0404, BIDIRECTIONAL_ECHO_CANCELING_SPEAKERPHONE = 0x0405 };
Bidirectional terminal types
IOAudioClockSelectorTypes |
enum { kIOAudioClockSelectorTypeInternal = 'int ', kIOAudioClockSelectorTypeExternal = 'ext ', kIOAudioClockSelectorTypeAESEBU = 'asbu', kIOAudioClockSelectorTypeTOSLink = 'tosl', kIOAudioClockSelectorTypeSPDIF = 'spdf', kIOAudioClockSelectorTypeADATOptical = 'adto', kIOAudioClockSelectorTypeADAT9Pin = 'adt9', kIOAudioClockSelectorTypeSMPTE = 'smpt', kIOAudioClockSelectorTypeVideo = 'vdeo', kIOAudioClockSelectorTypeControl = 'cnrl', kIOAudioClockSelectorTypeOther = 'othr', };
This enum contains constants related to getting or setting the clock source for an audio interface.
IOAudioControlChannelIDValues |
enum { kIOAudioControlChannelNumberInactive = -1, kIOAudioControlChannelIDAll = 0, kIOAudioControlChannelIDDefaultLeft = 1, kIOAudioControlChannelIDDefaultRight = 2, kIOAudioControlChannelIDDefaultCenter = 3, kIOAudioControlChannelIDDefaultLeftRear = 4, kIOAudioControlChannelIDDefaultRightRear = 5, kIOAudioControlChannelIDDefaultSub = 6 };
This enum contains standard audio control channel ID values.
IOAudioControlSubtypes |
enum { kIOAudioLevelControlSubTypeVolume = 'vlme', kIOAudioLevelControlSubTypeLFEVolume = 'subv', kIOAudioLevelControlSubTypePRAMVolume = 'pram', kIOAudioToggleControlSubTypeMute = 'mute', kIOAudioToggleControlSubTypeSolo = 'solo', kIOAudioToggleControlSubTypeLFEMute = 'subm', kIOAudioToggleControlSubTypeiSubAttach = 'atch', kIOAudioSelectorControlSubTypeOutput = 'outp', kIOAudioSelectorControlSubTypeInput = 'inpt', kIOAudioSelectorControlSubTypeClockSource = 'clck', kIOAudioSelectorControlSubTypeDestination = 'dest', kIOAudioSelectorControlSubTypeChannelNominalLineLevel = 'nlev', kIOAudioSelectorControlSubTypeChannelLevelPlus4dBu = '4dbu', kIOAudioSelectorControlSubTypeChannelLevelMinus10dBV = '10db', kIOAudioSelectorControlSubTypeChannelLevelMinus20dBV = '20db', kIOAudioSelectorControlSubTypeChannelLevelMicLevel = 'micl', kIOAudioSelectorControlSubTypeChannelLevelInstrumentLevel = 'istl' };
This enum contains the standard audio control subtypes.
IOAudioControlTypes |
enum { kIOAudioControlTypeLevel = 'levl', kIOAudioControlTypeToggle = 'togl', kIOAudioControlTypeJack = 'jack', kIOAudioControlTypeSelector = 'slct' };
This enum contains the built-in audio controls.
IOAudioControlUsageValues |
enum { kIOAudioControlUsageOutput = 'outp', kIOAudioControlUsageInput = 'inpt', kIOAudioControlUsagePassThru = 'pass', kIOAudioControlUsageCoreAudioProperty = 'prop' };
This enum contains values that represent the intended usage of an IOAudioControl.
IOAudioDeviceTransportTypes |
enum { kIOAudioDeviceTransportTypeBuiltIn = 'bltn', kIOAudioDeviceTransportTypePCI = 'pci ', kIOAudioDeviceTransportTypeUSB = 'usb ', kIOAudioDeviceTransportTypeFireWire = '1394', kIOAudioDeviceTransportTypeNetwork = 'ntwk', kIOAudioDeviceTransportTypeWireless = 'wrls', kIOAudioDeviceTransportTypeOther = 'othr', kIOAudioDeviceTransportTypeBluetooth = 'blue', kIOAudioDeviceTransportTypeVirtual = 'virt' };
Device connection types
IOAudioDeviceUsageFlags |
enum { kIOAudioDeviceCanBeDefaultNothing = 0, kIOAudioDeviceCanBeDefaultInput = ( 1L << 0), kIOAudioDeviceCanBeDefaultOutput = ( 1L << 1), kIOAudioDeviceCanBeSystemOutput = ( 1L << 2) };
Flags that control how an audio device can be used.
IOAudioEmbeddedTerminalTypes |
enum { EMBEDDED_UNDEFINED = 0x0700, EMBEDDED_LEVEL_CALIBRATION_NOISE_SOURCE = 0x0701, EMBEDDED_EQUALIZATION_NOISE = 0x0702, EMBEDDED_CD_PLAYER = 0x0703, EMBEDDED_DAT = 0x0704, EMBEDDED_DCC = 0x0705, EMBEDDED_MINIDISK = 0x0706, EMBEDDED_ANALOG_TAPE = 0x0707, EMBEDDED_PHONOGRAPH = 0x0708, EMBEDDED_VCR_AUDIO = 0x0709, EMBEDDED_VIDEO_DISC_AUDIO = 0x070A, EMBEDDED_DVD_AUDIO = 0x070B, EMBEDDED_TV_TUNER_AUDIO = 0x070C, EMBEDDED_SATELLITE_RECEIVER_AUDIO = 0x070D, EMBEDDED_CABLE_TUNER_AUDIO = 0x070E, EMBEDDED_DSS_AUDIO = 0x070F, EMBEDDED_RADIO_RECEIVER = 0x0710, EMBEDDED_RADIO_TRANSMITTER = 0x0711, EMBEDDED_MULTITRACK_RECORDER = 0x0712, EMBEDDED_SYNTHESIZER = 0x0713 };
Embedded terminal types
IOAudioExternalTerminalTypes |
enum { EXTERNAL_UNDEFINED = 0x0600, EXTERNAL_ANALOG_CONNECTOR = 0x0601, EXTERNAL_DIGITAL_AUDIO_INTERFACE = 0x0602, EXTERNAL_LINE_CONNECTOR = 0x0603, EXTERNAL_LEGACY_AUDIO_CONNECTOR = 0x0604, EXTERNAL_SPDIF_INTERFACE = 0x0605, EXTERNAL_1394_DA_STREAM = 0x0606, EXTERNAL_1394_DV_STREAM_SOUNDTRACK = 0x0607, EXTERNAL_ADAT = 0x0608, EXTERNAL_TDIF = 0x0609, EXTERNAL_MADI = 0x060A };
External terminal types
IOAudioInputTerminalTypes |
enum { INPUT_UNDEFINED = 0x0200, INPUT_MICROPHONE = 0x0201, INPUT_DESKTOP_MICROPHONE = 0x0202, INPUT_PERSONAL_MICROPHONE = 0x0203, INPUT_OMNIDIRECTIONAL_MICROPHONE = 0x0204, INPUT_MICROPHONE_ARRAY = 0x0205, INPUT_PROCESSING_MICROPHONE_ARRAY = 0x0206, INPUT_MODEM_AUDIO = 0x207 };
Input terminal types
IOAudioNullTerminal Types |
enum { OUTPUT_NULL = 0x0100, INPUT_NULL = 0x0101 };
types that go nowhere
IOAudioOutputTerminalTypes |
enum { OUTPUT_UNDEFINED = 0x0300, OUTPUT_SPEAKER = 0x0301, OUTPUT_HEADPHONES = 0x0302, OUTPUT_HEAD_MOUNTED_DISPLAY_AUDIO = 0x0303, OUTPUT_DESKTOP_SPEAKER = 0x0304, OUTPUT_ROOM_SPEAKER = 0x0305, OUTPUT_COMMUNICATION_SPEAKER = 0x0306, OUTPUT_LOW_FREQUENCY_EFFECTS_SPEAKER = 0x0307 };
Output terminal types
IOAudioPortSubtypes |
enum { kIOAudioOutputPortSubTypeInternalSpeaker = 'ispk', kIOAudioOutputPortSubTypeExternalSpeaker = 'espk', kIOAudioOutputPortSubTypeHeadphones = 'hdpn', kIOAudioOutputPortSubTypeLine = 'line', kIOAudioOutputPortSubTypeSPDIF = 'spdf', kIOAudioInputPortSubTypeInternalMicrophone = 'imic', kIOAudioInputPortSubTypeExternalMicrophone = 'emic', kIOAudioInputPortSubTypeCD = 'cd ', kIOAudioInputPortSubTypeLine = 'line', kIOAudioInputPortSubTypeSPDIF = 'spdf' };
This enum contains subtypes for audio input and output ports.
IOAudioPortTypes |
enum { kIOAudioPortTypeOutput = 'outp', kIOAudioPortTypeInput = 'inpt', kIOAudioPortTypeMixer = 'mixr', kIOAudioPortTypePassThru = 'pass', kIOAudioPortTypeProcessing = 'proc' };
This enum contains audio port types.
IOAudioProcessingTerminalTypes |
enum { PROCESSOR_UNDEFINED = 0x0800, PROCESSOR_GENERAL = 0x0801 };
Processing terminal types
IOAudioSampleFormats |
enum { kIOAudioStreamSampleFormatLinearPCM = 'lpcm', kIOAudioStreamSampleFormatIEEEFloat = 'ieee', kIOAudioStreamSampleFormatALaw = 'alaw', kIOAudioStreamSampleFormatMuLaw = 'ulaw', kIOAudioStreamSampleFormatMPEG = 'mpeg', kIOAudioStreamSampleFormatAC3 = 'ac-3', kIOAudioStreamSampleFormat1937AC3 = 'cac3', kIOAudioStreamSampleFormat1937MPEG1 = 'mpg1', kIOAudioStreamSampleFormat1937MPEG2 = 'mpg2', kIOAudioStreamSampleFormatTimeCode = 'time' // a stream of IOAudioTimeStamp structures that capture any incoming time code information };
This enum contains constants to indicate the sample format for an audio stream.
IOAudioSelectorControlValues |
enum { kIOAudioSelectorControlSelectionValueNone = 'none', // Output-specific selection IDs kIOAudioSelectorControlSelectionValueInternalSpeaker = 'ispk', kIOAudioSelectorControlSelectionValueExternalSpeaker = 'espk', kIOAudioSelectorControlSelectionValueHeadphones = 'hdpn', // Input-specific selection IDs kIOAudioSelectorControlSelectionValueInternalMicrophone = 'imic', kIOAudioSelectorControlSelectionValueExternalMicrophone = 'emic', kIOAudioSelectorControlSelectionValueCD = 'cd ', // Common selection IDs kIOAudioSelectorControlSelectionValueLine = 'line', kIOAudioSelectorControlSelectionValueSPDIF = 'spdf' };
This enum contains standard selector control values. These are primarily used by the audio family itself.
IOAudioSMPTEFlags |
enum { kIOAudioSMPTETimeValid = ( 1L << 0), kIOAudioSMPTETimeRunning = ( 1L << 1) };
kIOAudioSMPTETimeValid
the full time is valid
kIOAudioSMPTETimeRunning
time is running
flags describing a SMPTE time stamp
IOAudioSMPTETypes |
enum { kIOAudioSMPTETimeType24 = 0, kIOAudioSMPTETimeType25 = 1, kIOAudioSMPTETimeType30Drop = 2, kIOAudioSMPTETimeType30 = 3, kIOAudioSMPTETimeType2997 = 4, kIOAudioSMPTETimeType2997Drop = 5 };
constants describing SMPTE types (taken from the MTC spec)
IOAudioStreamAlignments |
enum { kIOAudioStreamAlignmentLowByte = 0, kIOAudioStreamAlignmentHighByte = 1 };
This enum contains constants to describe whether an audio data format that contains padding (such as a 24-bit stream stored as a series of 32-bit integers) is aligned to the bottom or top of the encapsulating data word
IOAudioStreamByteOrder |
enum { kIOAudioStreamByteOrderBigEndian = 0, kIOAudioStreamByteOrderLittleEndian = 1 };
This enum contains byte order constants to describe an audio stream.
IOAudioStreamNumericRepresentations |
enum { kIOAudioStreamNumericRepresentationSignedInt = 'sint', kIOAudioStreamNumericRepresentationUnsignedInt = 'uint', kIOAudioStreamNumericRepresentationIEEE754Float = 'flot' };
This enum contains constants to indicate the underlying numeric data format for an uncompressed audio stream.
IOAudioTelephonyTerminalTypes |
enum { TELEPHONY_UNDEFINED = 0x0500, TELEPHONY_PHONE_LINE = 0x0501, TELEPHONY_TELEPHONE = 0x0502, TELEPHONY_DOWN_LINE_PHONE = 0x0503 };
Telephony terminal types
IOAudioTimeStampValidValueCombinations |
enum { kIOAudioTimeStampSampleHostTimeValid = ( kIOAudioTimeStampSampleTimeValid | kIOAudioTimeStampHostTimeValid) };
Some commonly used combinations of timestamp flags
IOAudioTimeStampValidValues |
enum { kIOAudioTimeStampSampleTimeValid = ( 1L << 0), kIOAudioTimeStampHostTimeValid = ( 1L << 1), kIOAudioTimeStampRateScalarValid = ( 1L << 2), kIOAudioTimeStampWordClockTimeValid = ( 1L << 3), kIOAudioTimeStampSMPTETimeValid = ( 1L << 4) };
flags for the AudioTimeStamp sturcture
kIOAudioControlNumCalls |
#define kIOAudioControlNumCalls 2
kIOAudioEngineDefaultMixBufferSampleSize |
#define kIOAudioEngineDefaultMixBufferSampleSize sizeof(float)
kIOAudioEngineNumCalls |
#define kIOAudioEngineNumCalls 6
|
Last Updated: 2008-12-19