#ifndef _IOKIT_IOAUDIOTYPES_H
#define _IOKIT_IOAUDIOTYPES_H
#include <libkern/OSTypes.h>
#include <mach/message.h>
typedef enum _IOAudioEngineMemory {
kIOAudioStatusBuffer = 0,
kIOAudioSampleBuffer = 1,
kIOAudioMixBuffer = 2,
kIOAudioBytesInInputBuffer = 3,
kIOAudioBytesInOutputBuffer = 4
} IOAudioEngineMemory;
typedef enum _IOAudioEngineCalls {
kIOAudioEngineCallRegisterClientBuffer = 0,
kIOAudioEngineCallUnregisterClientBuffer = 1,
kIOAudioEngineCallGetConnectionID = 2,
kIOAudioEngineCallStart = 3,
kIOAudioEngineCallStop = 4,
kIOAudioEngineCallGetNearestStartTime = 5
} IOAudioEngineCalls;
#define kIOAudioEngineNumCalls 6
typedef enum _IOAudioEngineTraps {
kIOAudioEngineTrapPerformClientIO = 0
} IOAudioEngineTraps;
typedef enum _IOAudioEngineNotifications {
kIOAudioEngineAllNotifications = 0,
kIOAudioEngineStreamFormatChangeNotification = 1,
kIOAudioEngineChangeNotification = 2,
kIOAudioEngineStartedNotification = 3,
kIOAudioEngineStoppedNotification = 4,
kIOAudioEnginePausedNotification = 5,
kIOAudioEngineResumedNotification = 6
} IOAudioEngineNotifications;
typedef enum _IOAudioEngineState {
kIOAudioEngineStopped = 0,
kIOAudioEngineRunning = 1,
kIOAudioEnginePaused = 2,
kIOAudioEngineResumed = 3
} IOAudioEngineState;
typedef struct _IOAudioEngineStatus {
UInt32 fVersion;
volatile UInt32 fCurrentLoopCount;
volatile AbsoluteTime fLastLoopTime;
volatile UInt32 fEraseHeadSampleFrame;
} IOAudioEngineStatus;
#define kIOAudioEngineCurrentStatusStructVersion 2
typedef struct _IOAudioStreamFormat {
UInt32 fNumChannels;
UInt32 fSampleFormat;
UInt32 fNumericRepresentation;
UInt8 fBitDepth;
UInt8 fBitWidth;
UInt8 fAlignment;
UInt8 fByteOrder;
UInt8 fIsMixable;
UInt32 fDriverTag;
} IOAudioStreamFormat;
#define kFormatExtensionInvalidVersion 0
#define kFormatExtensionCurrentVersion 1
typedef struct _IOAudioStreamFormatExtension {
UInt32 fVersion;
UInt32 fFlags;
UInt32 fFramesPerPacket;
UInt32 fBytesPerPacket;
} IOAudioStreamFormatExtension;
typedef struct _IOAudioBufferDataDescriptor {
UInt32 fActualDataByteSize;
UInt32 fActualNumSampleFrames;
UInt32 fTotalDataByteSize;
UInt32 fNominalDataByteSize;
UInt8 fData[1];
} IOAudioBufferDataDescriptor;
#define kStreamDataDescriptorInvalidVersion 0
#define kStreamDataDescriptorCurrentVersion 1
typedef struct _IOAudioStreamDataDescriptor {
UInt32 fVersion;
UInt32 fNumberOfStreams;
UInt32 fStreamLength[1]; } IOAudioStreamDataDescriptor;
typedef struct _IOAudioSampleIntervalDescriptor {
UInt32 sampleIntervalHi;
UInt32 sampleIntervalLo;
} IOAudioSampleIntervalDescriptor;
typedef struct _IOAudioSMPTETime
{
SInt16 fSubframes;
SInt16 fSubframeDivisor;
UInt32 fCounter;
UInt32 fType;
UInt32 fFlags;
SInt16 fHours;
SInt16 fMinutes;
SInt16 fSeconds;
SInt16 fFrames;
} IOAudioSMPTETime;
enum
{
kIOAudioSMPTETimeType24 = 0,
kIOAudioSMPTETimeType25 = 1,
kIOAudioSMPTETimeType30Drop = 2,
kIOAudioSMPTETimeType30 = 3,
kIOAudioSMPTETimeType2997 = 4,
kIOAudioSMPTETimeType2997Drop = 5,
kIOAudioSMPTETimeType60 = 6,
kIOAudioSMPTETimeType5994 = 7,
kIOAudioSMPTETimeType60Drop = 8,
kIOAudioSMPTETimeType5994Drop = 9,
kIOAudioSMPTETimeType50 = 10,
kIOAudioSMPTETimeType2398 = 11
};
enum
{
kIOAudioSMPTETimeValid = (1L << 0), kIOAudioSMPTETimeRunning = (1L << 1) };
typedef struct _IOAudioTimeStamp
{
UInt64 fSampleTime; UInt64 fHostTime; UInt64 fRateScalar; UInt64 fWordClockTime; IOAudioSMPTETime fSMPTETime; UInt32 fFlags; UInt32 fReserved; } IOAudioTimeStamp;
enum
{
kIOAudioTimeStampSampleTimeValid = (1L << 0),
kIOAudioTimeStampHostTimeValid = (1L << 1),
kIOAudioTimeStampRateScalarValid = (1L << 2),
kIOAudioTimeStampWordClockTimeValid = (1L << 3),
kIOAudioTimeStampSMPTETimeValid = (1L << 4)
};
enum
{
kIOAudioTimeStampSampleHostTimeValid = (kIOAudioTimeStampSampleTimeValid | kIOAudioTimeStampHostTimeValid)
};
typedef enum _IOAudioStreamDirection {
kIOAudioStreamDirectionOutput = 0,
kIOAudioStreamDirectionInput = 1
} IOAudioStreamDirection;
enum {
kIOAudioDeviceCanBeDefaultNothing = 0,
kIOAudioDeviceCanBeDefaultInput = (1L << 0),
kIOAudioDeviceCanBeDefaultOutput = (1L << 1),
kIOAudioDeviceCanBeSystemOutput = (1L << 2)
};
#define kIOAudioEngineDefaultMixBufferSampleSize sizeof(float)
typedef enum _IOAudioControlCalls {
kIOAudioControlCallSetValue = 0,
kIOAudioControlCallGetValue = 1
} IOAudioControlCalls;
#define kIOAudioControlNumCalls 2
typedef enum _IOAudioControlNotifications {
kIOAudioControlValueChangeNotification = 0,
kIOAudioControlRangeChangeNotification = 1
} IOAudioControlNotifications;
typedef struct _IOAudioNotificationMessage {
mach_msg_header_t messageHeader;
UInt32 type;
UInt32 ref;
void * sender;
} IOAudioNotificationMessage;
typedef struct _IOAudioSampleRate {
UInt32 whole;
UInt32 fraction;
} IOAudioSampleRate;
#define kNoIdleAudioPowerDown 0xffffffffffffffffULL
enum {
kIOAudioPortTypeOutput = 'outp',
kIOAudioPortTypeInput = 'inpt',
kIOAudioPortTypeMixer = 'mixr',
kIOAudioPortTypePassThru = 'pass',
kIOAudioPortTypeProcessing = 'proc'
};
enum {
kIOAudioOutputPortSubTypeInternalSpeaker = 'ispk',
kIOAudioOutputPortSubTypeExternalSpeaker = 'espk',
kIOAudioOutputPortSubTypeHeadphones = 'hdpn',
kIOAudioOutputPortSubTypeLine = 'line',
kIOAudioOutputPortSubTypeSPDIF = 'spdf',
kIOAudioInputPortSubTypeInternalMicrophone = 'imic',
kIOAudioInputPortSubTypeExternalMicrophone = 'emic',
kIOAudioInputPortSubTypeCD = 'cd ',
kIOAudioInputPortSubTypeLine = 'line',
kIOAudioInputPortSubTypeSPDIF = 'spdf'
};
enum {
kIOAudioControlTypeLevel = 'levl',
kIOAudioControlTypeToggle = 'togl',
kIOAudioControlTypeJack = 'jack',
kIOAudioControlTypeSelector = 'slct'
};
enum {
kIOAudioLevelControlSubTypeVolume = 'vlme',
kIOAudioLevelControlSubTypeLFEVolume = 'subv',
kIOAudioLevelControlSubTypePRAMVolume = 'pram',
kIOAudioToggleControlSubTypeMute = 'mute',
kIOAudioToggleControlSubTypeSolo = 'solo',
kIOAudioToggleControlSubTypeLFEMute = 'subm',
kIOAudioToggleControlSubTypeiSubAttach = 'atch',
kIOAudioToggleControlSubTypePhantomPower = 'phan',
kIOAudioToggleControlSubTypePhaseInvert = 'phsi',
kIOAudioSelectorControlSubTypeOutput = 'outp',
kIOAudioSelectorControlSubTypeInput = 'inpt',
kIOAudioSelectorControlSubTypeClockSource = 'clck',
kIOAudioSelectorControlSubTypeDestination = 'dest',
kIOAudioSelectorControlSubTypeChannelNominalLineLevel = 'nlev',
kIOAudioSelectorControlSubTypeChannelLevelPlus4dBu = '4dbu',
kIOAudioSelectorControlSubTypeChannelLevelMinus10dBV = '10db',
kIOAudioSelectorControlSubTypeChannelLevelMinus20dBV = '20db',
kIOAudioSelectorControlSubTypeChannelLevelMicLevel = 'micl',
kIOAudioSelectorControlSubTypeChannelLevelInstrumentLevel = 'istl',
kIOAudioSelectorControlSubTypeChannelHighPassFilter = 'hipf'
};
enum {
kIOAudioControlUsageOutput = 'outp',
kIOAudioControlUsageInput = 'inpt',
kIOAudioControlUsagePassThru = 'pass',
kIOAudioControlUsageCoreAudioProperty = 'prop'
};
enum {
kIOAudioControlChannelNumberInactive = -1,
kIOAudioControlChannelIDAll = 0,
kIOAudioControlChannelIDDefaultLeft = 1,
kIOAudioControlChannelIDDefaultRight = 2,
kIOAudioControlChannelIDDefaultCenter = 3,
kIOAudioControlChannelIDDefaultLeftRear = 4,
kIOAudioControlChannelIDDefaultRightRear = 5,
kIOAudioControlChannelIDDefaultSub = 6,
kIOAudioControlChannelIDDefaultFrontLeftCenter = 7,
kIOAudioControlChannelIDDefaultFrontRightCenter = 8,
kIOAudioControlChannelIDDefaultRearCenter = 9,
kIOAudioControlChannelIDDefaultSurroundLeft = 10,
kIOAudioControlChannelIDDefaultSurroundRight = 11
};
enum {
kIOAudioSelectorControlSelectionValueNone = 'none',
kIOAudioSelectorControlSelectionValueInternalSpeaker = 'ispk',
kIOAudioSelectorControlSelectionValueExternalSpeaker = 'espk',
kIOAudioSelectorControlSelectionValueHeadphones = 'hdpn',
kIOAudioSelectorControlSelectionValueInternalMicrophone = 'imic',
kIOAudioSelectorControlSelectionValueExternalMicrophone = 'emic',
kIOAudioSelectorControlSelectionValueCD = 'cd ',
kIOAudioSelectorControlSelectionValueLine = 'line',
kIOAudioSelectorControlSelectionValueSPDIF = 'spdf'
};
enum {
kIOAudioStreamSampleFormatLinearPCM = 'lpcm',
kIOAudioStreamSampleFormatIEEEFloat = 'ieee',
kIOAudioStreamSampleFormatALaw = 'alaw',
kIOAudioStreamSampleFormatMuLaw = 'ulaw',
kIOAudioStreamSampleFormatMPEG = 'mpeg',
kIOAudioStreamSampleFormatAC3 = 'ac-3',
kIOAudioStreamSampleFormat1937AC3 = 'cac3',
kIOAudioStreamSampleFormat1937MPEG1 = 'mpg1',
kIOAudioStreamSampleFormat1937MPEG2 = 'mpg2',
kIOAudioStreamSampleFormatTimeCode = 'time' };
enum {
kIOAudioStreamNumericRepresentationSignedInt = 'sint',
kIOAudioStreamNumericRepresentationUnsignedInt = 'uint',
kIOAudioStreamNumericRepresentationIEEE754Float = 'flot'
};
enum {
kIOAudioClockSelectorTypeInternal = 'int ',
kIOAudioClockSelectorTypeExternal = 'ext ',
kIOAudioClockSelectorTypeAESEBU = 'asbu',
kIOAudioClockSelectorTypeTOSLink = 'tosl',
kIOAudioClockSelectorTypeSPDIF = 'spdf',
kIOAudioClockSelectorTypeADATOptical = 'adto',
kIOAudioClockSelectorTypeADAT9Pin = 'adt9',
kIOAudioClockSelectorTypeSMPTE = 'smpt',
kIOAudioClockSelectorTypeVideo = 'vdeo',
kIOAudioClockSelectorTypeControl = 'cnrl',
kIOAudioClockSelectorTypeOther = 'othr',
};
enum {
kIOAudioStreamAlignmentLowByte = 0,
kIOAudioStreamAlignmentHighByte = 1
};
enum {
kIOAudioStreamByteOrderBigEndian = 0,
kIOAudioStreamByteOrderLittleEndian = 1
};
enum {
kIOAudioLevelControlNegativeInfinity = 0xffffffff
};
enum {
kIOAudioNewClockDomain = 0xffffffff
};
enum {
kIOAudioDeviceTransportTypeBuiltIn = 'bltn',
kIOAudioDeviceTransportTypePCI = 'pci ',
kIOAudioDeviceTransportTypeUSB = 'usb ',
kIOAudioDeviceTransportTypeFireWire = '1394',
kIOAudioDeviceTransportTypeNetwork = 'ntwk',
kIOAudioDeviceTransportTypeWireless = 'wrls',
kIOAudioDeviceTransportTypeOther = 'othr',
kIOAudioDeviceTransportTypeBluetooth = 'blue',
kIOAudioDeviceTransportTypeVirtual = 'virt',
kIOAudioDeviceTransportTypeDisplayPort = 'dprt',
kIOAudioDeviceTransportTypeHdmi = 'hdmi',
kIOAudioDeviceTransportTypeAVB = 'eavb', kIOAudioDeviceTransportTypeThunderbolt = 'thun' };
enum {
OUTPUT_NULL = 0x0100,
INPUT_NULL = 0x0101
};
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
};
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
};
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
};
enum {
TELEPHONY_UNDEFINED = 0x0500,
TELEPHONY_PHONE_LINE = 0x0501,
TELEPHONY_TELEPHONE = 0x0502,
TELEPHONY_DOWN_LINE_PHONE = 0x0503
};
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
};
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
};
enum {
PROCESSOR_UNDEFINED = 0x0800,
PROCESSOR_GENERAL = 0x0801
};
#define kIOAudioChannelLabel_Discrete_field_ba 16
enum {
kIOAudioChannelLabel_Unknown = 0xFFFFFFFF, kIOAudioChannelLabel_Unused = 0, kIOAudioChannelLabel_UseCoordinates = 100,
kIOAudioChannelLabel_Left = 1,
kIOAudioChannelLabel_Right = 2,
kIOAudioChannelLabel_Center = 3,
kIOAudioChannelLabel_LFEScreen = 4,
kIOAudioChannelLabel_LeftSurround = 5, kIOAudioChannelLabel_RightSurround = 6, kIOAudioChannelLabel_LeftCenter = 7,
kIOAudioChannelLabel_RightCenter = 8,
kIOAudioChannelLabel_CenterSurround = 9, kIOAudioChannelLabel_LeftSurroundDirect = 10, kIOAudioChannelLabel_RightSurroundDirect = 11, kIOAudioChannelLabel_TopCenterSurround = 12,
kIOAudioChannelLabel_VerticalHeightLeft = 13, kIOAudioChannelLabel_VerticalHeightCenter = 14, kIOAudioChannelLabel_VerticalHeightRight = 15,
kIOAudioChannelLabel_TopBackLeft = 16,
kIOAudioChannelLabel_TopBackCenter = 17,
kIOAudioChannelLabel_TopBackRight = 18,
kIOAudioChannelLabel_RearSurroundLeft = 33,
kIOAudioChannelLabel_RearSurroundRight = 34,
kIOAudioChannelLabel_LeftWide = 35,
kIOAudioChannelLabel_RightWide = 36,
kIOAudioChannelLabel_LFE2 = 37,
kIOAudioChannelLabel_LeftTotal = 38, kIOAudioChannelLabel_RightTotal = 39, kIOAudioChannelLabel_HearingImpaired = 40,
kIOAudioChannelLabel_Narration = 41,
kIOAudioChannelLabel_Mono = 42,
kIOAudioChannelLabel_DialogCentricMix = 43,
kIOAudioChannelLabel_CenterSurroundDirect = 44,
kIOAudioChannelLabel_Haptic = 45,
kIOAudioChannelLabel_Ambisonic_W = 200,
kIOAudioChannelLabel_Ambisonic_X = 201,
kIOAudioChannelLabel_Ambisonic_Y = 202,
kIOAudioChannelLabel_Ambisonic_Z = 203,
kIOAudioChannelLabel_MS_Mid = 204,
kIOAudioChannelLabel_MS_Side = 205,
kIOAudioChannelLabel_XY_X = 206,
kIOAudioChannelLabel_XY_Y = 207,
kIOAudioChannelLabel_HeadphonesLeft = 301,
kIOAudioChannelLabel_HeadphonesRight = 302,
kIOAudioChannelLabel_ClickTrack = 304,
kIOAudioChannelLabel_ForeignLanguage = 305,
kIOAudioChannelLabel_Discrete = 400,
kIOAudioChannelLabel_Discrete_0 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 0,
kIOAudioChannelLabel_Discrete_1 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 1,
kIOAudioChannelLabel_Discrete_2 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 2,
kIOAudioChannelLabel_Discrete_3 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 3,
kIOAudioChannelLabel_Discrete_4 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 4,
kIOAudioChannelLabel_Discrete_5 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 5,
kIOAudioChannelLabel_Discrete_6 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 6,
kIOAudioChannelLabel_Discrete_7 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 7,
kIOAudioChannelLabel_Discrete_8 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 8,
kIOAudioChannelLabel_Discrete_9 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 9,
kIOAudioChannelLabel_Discrete_10 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 10,
kIOAudioChannelLabel_Discrete_11 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 11,
kIOAudioChannelLabel_Discrete_12 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 12,
kIOAudioChannelLabel_Discrete_13 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 13,
kIOAudioChannelLabel_Discrete_14 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 14,
kIOAudioChannelLabel_Discrete_15 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 15,
kIOAudioChannelLabel_Discrete_65535 = ( 1 << kIOAudioChannelLabel_Discrete_field_ba ) | 65535
};
#endif