Something went wrong. Try again.
Cider Isn't Darwin Emulation, Really
Something went wrong. Try again.
24 kB · 892 lines
C
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893#ifndef AUDIOUNITPROPERTIES_H#define AUDIOUNITPROPERTIES_H#include <CoreAudio/CoreAudioTypes.h>#include <AudioToolbox/AUComponent.h>#include <CoreFoundation/CoreFoundation.h>
enum { kAudioUnitScope_Global = 0, kAudioUnitScope_Input = 1, kAudioUnitScope_Output = 2, kAudioUnitScope_Group = 3, kAudioUnitScope_Part = 4, kAudioUnitScope_Note = 5, kAudioUnitScope_Layer = 6, kAudioUnitScope_LayerItem = 7};
enum{
kAudioUnitProperty_ClassInfo = 0, kAudioUnitProperty_MakeConnection = 1, kAudioUnitProperty_SampleRate = 2, kAudioUnitProperty_ParameterList = 3, kAudioUnitProperty_ParameterInfo = 4, kAudioUnitProperty_CPULoad = 6, kAudioUnitProperty_StreamFormat = 8, kAudioUnitProperty_ElementCount = 11, kAudioUnitProperty_Latency = 12, kAudioUnitProperty_SupportedNumChannels = 13, kAudioUnitProperty_MaximumFramesPerSlice = 14, kAudioUnitProperty_ParameterValueStrings = 16, kAudioUnitProperty_AudioChannelLayout = 19, kAudioUnitProperty_TailTime = 20, kAudioUnitProperty_BypassEffect = 21, kAudioUnitProperty_LastRenderError = 22, kAudioUnitProperty_SetRenderCallback = 23, kAudioUnitProperty_FactoryPresets = 24, kAudioUnitProperty_RenderQuality = 26, kAudioUnitProperty_HostCallbacks = 27, kAudioUnitProperty_InPlaceProcessing = 29, kAudioUnitProperty_ElementName = 30, kAudioUnitProperty_SupportedChannelLayoutTags = 32, kAudioUnitProperty_PresentPreset = 36, kAudioUnitProperty_DependentParameters = 45, kAudioUnitProperty_InputSamplesInOutput = 49, kAudioUnitProperty_ShouldAllocateBuffer = 51, kAudioUnitProperty_FrequencyResponse = 52, kAudioUnitProperty_ParameterHistoryInfo = 53, kAudioUnitProperty_NickName = 54, kAudioUnitProperty_OfflineRender = 37, kAudioUnitProperty_ParameterIDName = 34, kAudioUnitProperty_ParameterStringFromValue = 33, kAudioUnitProperty_ParameterClumpName = 35, kAudioUnitProperty_ParameterValueFromString = 38, kAudioUnitProperty_ContextName = 25, kAudioUnitProperty_PresentationLatency = 40, kAudioUnitProperty_ClassInfoFromDocument = 50, kAudioUnitProperty_RequestViewController = 56, kAudioUnitProperty_ParametersForOverview = 57, kAudioUnitProperty_SupportsMPE = 58,
kAudioUnitProperty_FastDispatch = 5, kAudioUnitProperty_SetExternalBuffer = 15, kAudioUnitProperty_GetUIComponentList = 18, kAudioUnitProperty_CocoaUI = 31, kAudioUnitProperty_IconLocation = 39, kAudioUnitProperty_AUHostIdentifier = 46,
kAudioUnitProperty_MIDIOutputCallbackInfo = 47, kAudioUnitProperty_MIDIOutputCallback = 48,};typedef struct AudioUnitConnection { AudioUnit _Nullable sourceAudioUnit; UInt32 sourceOutputNumber; UInt32 destInputNumber;} AudioUnitConnection;
typedef struct AUChannelInfo { SInt16 inChannels; SInt16 outChannels;} AUChannelInfo;
typedef struct AudioUnitExternalBuffer { Byte * buffer; UInt32 size;} AudioUnitExternalBuffer;
typedef struct AURenderCallbackStruct { AURenderCallback _Nullable inputProc; void * _Nullable inputProcRefCon;} AURenderCallbackStruct;typedef struct AUPreset { SInt32 presetNumber; CFStringRef _Nullable presetName;} AUPreset;
enum { kRenderQuality_Max = 127, kRenderQuality_High = 96, kRenderQuality_Medium = 64, kRenderQuality_Low = 32, kRenderQuality_Min = 0};enum { kNumberOfResponseFrequencies = 1024};typedef struct AudioUnitFrequencyResponseBin{ Float64 mFrequency; Float64 mMagnitude;} AudioUnitFrequencyResponseBin;typedef OSStatus (*HostCallback_GetBeatAndTempo)(void * _Nullable inHostUserData, Float64 * _Nullable outCurrentBeat, Float64 * _Nullable outCurrentTempo);typedef OSStatus (*HostCallback_GetMusicalTimeLocation)(void * _Nullable inHostUserData, UInt32 * _Nullable outDeltaSampleOffsetToNextBeat, Float32 * _Nullable outTimeSig_Numerator, UInt32 * _Nullable outTimeSig_Denominator, Float64 * _Nullable outCurrentMeasureDownBeat);typedef OSStatus (*HostCallback_GetTransportState)(void * _Nullable inHostUserData, Boolean * _Nullable outIsPlaying, Boolean * _Nullable outTransportStateChanged, Float64 * _Nullable outCurrentSampleInTimeLine, Boolean * _Nullable outIsCycling, Float64 * _Nullable outCycleStartBeat, Float64 * _Nullable outCycleEndBeat);typedef OSStatus (*HostCallback_GetTransportState2)(void * _Nullable inHostUserData, Boolean * _Nullable outIsPlaying, Boolean * _Nullable outIsRecording, Boolean * _Nullable outTransportStateChanged, Float64 * _Nullable outCurrentSampleInTimeLine, Boolean * _Nullable outIsCycling, Float64 * _Nullable outCycleStartBeat, Float64 * _Nullable outCycleEndBeat);
typedef struct HostCallbackInfo { void * _Nullable hostUserData; HostCallback_GetBeatAndTempo _Nullable beatAndTempoProc; HostCallback_GetMusicalTimeLocation _Nullable musicalTimeLocationProc; HostCallback_GetTransportState _Nullable transportStateProc; HostCallback_GetTransportState2 _Nullable transportStateProc2;} HostCallbackInfo;
typedef struct AUDependentParameter { AudioUnitScope mScope; AudioUnitParameterID mParameterID;} AUDependentParameter;typedef struct AudioUnitCocoaViewInfo { CFURLRef mCocoaAUViewBundleLocation; CFStringRef _Nonnull mCocoaAUViewClass[1];} AudioUnitCocoaViewInfo;
typedef struct AUHostVersionIdentifier { CFStringRef hostName; UInt32 hostVersion;} AUHostVersionIdentifier;
struct MIDIPacketList;
typedef OSStatus(*AUMIDIOutputCallback)(void * _Nullable userData, const AudioTimeStamp * timeStamp, UInt32 midiOutNum, const struct MIDIPacketList * pktlist);
typedef struct AUMIDIOutputCallbackStruct { AUMIDIOutputCallback midiOutputCallback; void * _Nullable userData;} AUMIDIOutputCallbackStruct;
typedef struct AUInputSamplesInOutputCallbackStruct { AUInputSamplesInOutputCallback inputToOutputCallback; void * _Nullable userData;} AUInputSamplesInOutputCallbackStruct;typedef struct AudioUnitParameterHistoryInfo{ Float32 updatesPerSecond; Float32 historyDurationInSeconds;} AudioUnitParameterHistoryInfo;typedef UInt32 AudioUnitParameterUnit; enum{ kAudioUnitParameterUnit_Generic = 0, kAudioUnitParameterUnit_Indexed = 1, kAudioUnitParameterUnit_Boolean = 2, kAudioUnitParameterUnit_Percent = 3, kAudioUnitParameterUnit_Seconds = 4, kAudioUnitParameterUnit_SampleFrames = 5, kAudioUnitParameterUnit_Phase = 6, kAudioUnitParameterUnit_Rate = 7, kAudioUnitParameterUnit_Hertz = 8, kAudioUnitParameterUnit_Cents = 9, kAudioUnitParameterUnit_RelativeSemiTones = 10, kAudioUnitParameterUnit_MIDINoteNumber = 11, kAudioUnitParameterUnit_MIDIController = 12, kAudioUnitParameterUnit_Decibels = 13, kAudioUnitParameterUnit_LinearGain = 14, kAudioUnitParameterUnit_Degrees = 15, kAudioUnitParameterUnit_EqualPowerCrossfade = 16, kAudioUnitParameterUnit_MixerFaderCurve1 = 17, kAudioUnitParameterUnit_Pan = 18, kAudioUnitParameterUnit_Meters = 19, kAudioUnitParameterUnit_AbsoluteCents = 20, kAudioUnitParameterUnit_Octaves = 21, kAudioUnitParameterUnit_BPM = 22, kAudioUnitParameterUnit_Beats = 23, kAudioUnitParameterUnit_Milliseconds = 24, kAudioUnitParameterUnit_Ratio = 25, kAudioUnitParameterUnit_CustomUnit = 26};typedef UInt32 AudioUnitParameterOptions; enum{ kAudioUnitParameterFlag_CFNameRelease = (1UL << 4),
kAudioUnitParameterFlag_OmitFromPresets = (1UL << 13), kAudioUnitParameterFlag_PlotHistory = (1UL << 14), kAudioUnitParameterFlag_MeterReadOnly = (1UL << 15),
kAudioUnitParameterFlag_DisplayMask = (7UL << 16) | (1UL << 22), kAudioUnitParameterFlag_DisplaySquareRoot = (1UL << 16), kAudioUnitParameterFlag_DisplaySquared = (2UL << 16), kAudioUnitParameterFlag_DisplayCubed = (3UL << 16), kAudioUnitParameterFlag_DisplayCubeRoot = (4UL << 16), kAudioUnitParameterFlag_DisplayExponential = (5UL << 16),
kAudioUnitParameterFlag_HasClump = (1UL << 20), kAudioUnitParameterFlag_ValuesHaveStrings = (1UL << 21),
kAudioUnitParameterFlag_DisplayLogarithmic = (1UL << 22),
kAudioUnitParameterFlag_IsHighResolution = (1UL << 23), kAudioUnitParameterFlag_NonRealTime = (1UL << 24), kAudioUnitParameterFlag_CanRamp = (1UL << 25), kAudioUnitParameterFlag_ExpertMode = (1UL << 26), kAudioUnitParameterFlag_HasCFNameString = (1UL << 27), kAudioUnitParameterFlag_IsGlobalMeta = (1UL << 28), kAudioUnitParameterFlag_IsElementMeta = (1UL << 29), kAudioUnitParameterFlag_IsReadable = (1UL << 30), kAudioUnitParameterFlag_IsWritable = (1UL << 31)};typedef struct AudioUnitParameterInfo{ char name[52]; CFStringRef _Nullable unitName; UInt32 clumpID; CFStringRef _Nullable cfNameString; AudioUnitParameterUnit unit; AudioUnitParameterValue minValue; AudioUnitParameterValue maxValue; AudioUnitParameterValue defaultValue; AudioUnitParameterOptions flags;} AudioUnitParameterInfo;
enum { kAudioUnitClumpID_System = 0};
static __inline__ __attribute__((always_inline)) AudioUnitParameterOptions GetAudioUnitParameterDisplayType(AudioUnitParameterOptions flags){ return flags & kAudioUnitParameterFlag_DisplayMask;}
static __inline__ __attribute__((always_inline)) AudioUnitParameterOptions SetAudioUnitParameterDisplayType(AudioUnitParameterOptions flags, AudioUnitParameterOptions displayType){ return (flags & ~kAudioUnitParameterFlag_DisplayMask) | displayType;}enum { kAudioUnitParameterName_Full = -1};
typedef struct AudioUnitParameterNameInfo { AudioUnitParameterID inID; SInt32 inDesiredLength; CFStringRef _Nullable outName;} AudioUnitParameterIDName;
typedef struct AudioUnitParameterStringFromValue { AudioUnitParameterID inParamID; const AudioUnitParameterValue * inValue; CFStringRef _Nullable outString;} AudioUnitParameterStringFromValue;
typedef struct AudioUnitParameterValueFromString { AudioUnitParameterID inParamID; CFStringRef inString; AudioUnitParameterValue outValue;} AudioUnitParameterValueFromString;enum {
kAudioOutputUnitProperty_IsRunning = 2001};enum { kAudioUnitProperty_AllParameterMIDIMappings = 41, kAudioUnitProperty_AddParameterMIDIMapping = 42, kAudioUnitProperty_RemoveParameterMIDIMapping = 43, kAudioUnitProperty_HotMapParameterMIDIMapping = 44};typedef UInt32 AUParameterMIDIMappingFlags; enum { kAUParameterMIDIMapping_AnyChannelFlag = (1L << 0), kAUParameterMIDIMapping_AnyNoteFlag = (1L << 1), kAUParameterMIDIMapping_SubRange = (1L << 2), kAUParameterMIDIMapping_Toggle = (1L << 3), kAUParameterMIDIMapping_Bipolar = (1L << 4), kAUParameterMIDIMapping_Bipolar_On = (1L << 5)};typedef struct AUParameterMIDIMapping{ AudioUnitScope mScope; AudioUnitElement mElement; AudioUnitParameterID mParameterID; AUParameterMIDIMappingFlags mFlags; AudioUnitParameterValue mSubRangeMin; AudioUnitParameterValue mSubRangeMax; UInt8 mStatus; UInt8 mData1; UInt8 reserved1; UInt8 reserved2; UInt32 reserved3;} AUParameterMIDIMapping;enum {
kMusicDeviceProperty_MIDIXMLNames = 1006, kMusicDeviceProperty_PartGroup = 1010, kMusicDeviceProperty_DualSchedulingMode = 1013, kMusicDeviceProperty_SupportsStartStopNote = 1014};
enum { kMusicDeviceSampleFrameMask_SampleOffset = 0xFFFFFF, kMusicDeviceSampleFrameMask_IsScheduled = 0x01000000};enum {
kAudioUnitOfflineProperty_InputSize = 3020, kAudioUnitOfflineProperty_OutputSize = 3021, kAudioUnitOfflineProperty_StartOffset = 3022, kAudioUnitOfflineProperty_PreflightRequirements = 3023, kAudioUnitOfflineProperty_PreflightName = 3024};enum { kOfflinePreflight_NotRequired = 0, kOfflinePreflight_Optional = 1, kOfflinePreflight_Required = 2};enum {
kAudioUnitProperty_DistanceAttenuationData = 3600} __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)));
typedef struct AUDistanceAttenuationData{ UInt32 inNumberOfPairs; struct { Float32 inDistance; Float32 outGain; } pairs[1];} AUDistanceAttenuationData __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)));enum {
kAudioUnitMigrateProperty_FromPlugin = 4000, kAudioUnitMigrateProperty_OldAutomation = 4001};
enum { kOtherPluginFormat_Undefined = 0, kOtherPluginFormat_kMAS = 1, kOtherPluginFormat_kVST = 2, kOtherPluginFormat_AU = 3};typedef struct AudioUnitOtherPluginDesc{ UInt32 format; AudioClassDescription plugin;} AudioUnitOtherPluginDesc;
typedef struct AudioUnitParameterValueTranslation{ AudioUnitOtherPluginDesc otherDesc; UInt32 otherParamID; Float32 otherValue; AudioUnitParameterID auParamID; AudioUnitParameterValue auValue;} AudioUnitParameterValueTranslation;
typedef struct AudioUnitPresetMAS_SettingData{ UInt32 isStockSetting; UInt32 settingID; UInt32 dataLen; UInt8 data[1];} AudioUnitPresetMAS_SettingData;
typedef struct AudioUnitPresetMAS_Settings{ UInt32 manufacturerID; UInt32 effectID; UInt32 variantID; UInt32 settingsVersion; UInt32 numberOfSettings; AudioUnitPresetMAS_SettingData settings[1];} AudioUnitPresetMAS_Settings;enum { kAudioUnitProperty_SampleRateConverterComplexity = 3014};enum { kAudioUnitSampleRateConverterComplexity_Linear = 'line', kAudioUnitSampleRateConverterComplexity_Normal = 'norm', kAudioUnitSampleRateConverterComplexity_Mastering = 'bats'};enum { kAudioOutputUnitProperty_CurrentDevice = 2000, kAudioOutputUnitProperty_ChannelMap = 2002, kAudioOutputUnitProperty_EnableIO = 2003, kAudioOutputUnitProperty_StartTime = 2004, kAudioOutputUnitProperty_SetInputCallback = 2005, kAudioOutputUnitProperty_HasIO = 2006, kAudioOutputUnitProperty_StartTimestampsAtZero = 2007};
typedef struct AudioOutputUnitStartAtTimeParams {
AudioTimeStamp mTimestamp; UInt32 mFlags;} AudioOutputUnitStartAtTimeParams;enum { kAUVoiceIOProperty_BypassVoiceProcessing = 2100, kAUVoiceIOProperty_VoiceProcessingEnableAGC = 2101, kAUVoiceIOProperty_MuteOutput = 2104
};enum { kAUVoiceIOProperty_VoiceProcessingQuality = 2103} __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)));enum { kAUNBandEQProperty_NumberOfBands = 2200, kAUNBandEQProperty_MaxNumberOfBands = 2201, kAUNBandEQProperty_BiquadCoefficients = 2203};enum { kAUVoiceIOErr_UnexpectedNumberOfInputChannels = -66784,};enum {
kAudioUnitProperty_MeteringMode = 3007,
kAudioUnitProperty_MatrixLevels = 3006, kAudioUnitProperty_MatrixDimensions = 3009, kAudioUnitProperty_MeterClipping = 3011,
kAudioUnitProperty_InputAnchorTimeStamp = 3016};typedef struct AudioUnitMeterClipping{ Float32 peakValueSinceLastCall; Boolean sawInfinity; Boolean sawNotANumber;} AudioUnitMeterClipping;enum { kAudioUnitProperty_ReverbRoomType = 10, kAudioUnitProperty_UsesInternalReverb = 1005, kAudioUnitProperty_SpatializationAlgorithm = 3000, kAudioUnitProperty_SpatialMixerDistanceParams = 3010, kAudioUnitProperty_SpatialMixerAttenuationCurve = 3013, kAudioUnitProperty_SpatialMixerRenderingFlags = 3003,};
typedef UInt32 AUSpatializationAlgorithm; enum { kSpatializationAlgorithm_EqualPowerPanning = 0, kSpatializationAlgorithm_SphericalHead = 1, kSpatializationAlgorithm_HRTF = 2, kSpatializationAlgorithm_SoundField = 3, kSpatializationAlgorithm_VectorBasedPanning = 4, kSpatializationAlgorithm_StereoPassThrough = 5, kSpatializationAlgorithm_HRTFHQ = 6};
typedef UInt32 AUReverbRoomType; enum { kReverbRoomType_SmallRoom = 0, kReverbRoomType_MediumRoom = 1, kReverbRoomType_LargeRoom = 2, kReverbRoomType_MediumHall = 3, kReverbRoomType_LargeHall = 4, kReverbRoomType_Plate = 5, kReverbRoomType_MediumChamber = 6, kReverbRoomType_LargeChamber = 7, kReverbRoomType_Cathedral = 8, kReverbRoomType_LargeRoom2 = 9, kReverbRoomType_MediumHall2 = 10, kReverbRoomType_MediumHall3 = 11, kReverbRoomType_LargeHall2 = 12};
typedef UInt32 AUSpatialMixerAttenuationCurve; enum { kSpatialMixerAttenuationCurve_Power = 0, kSpatialMixerAttenuationCurve_Exponential = 1, kSpatialMixerAttenuationCurve_Inverse = 2, kSpatialMixerAttenuationCurve_Linear = 3};
typedef struct MixerDistanceParams { Float32 mReferenceDistance; Float32 mMaxDistance; Float32 mMaxAttenuation;} MixerDistanceParams;
typedef UInt32 AUSpatialMixerRenderingFlags; enum { kSpatialMixerRenderingFlags_InterAuralDelay = (1L << 0), kSpatialMixerRenderingFlags_DistanceAttenuation = (1L << 2),};enum { kAudioUnitProperty_3DMixerDistanceParams = 3010, kAudioUnitProperty_3DMixerAttenuationCurve = 3013, kAudioUnitProperty_DopplerShift = 3002, kAudioUnitProperty_3DMixerRenderingFlags = 3003, kAudioUnitProperty_3DMixerDistanceAtten = 3004, kAudioUnitProperty_ReverbPreset = 3012} __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)));
typedef UInt32 AU3DMixerRenderingFlags; enum { k3DMixerRenderingFlags_InterAuralDelay = (1L << 0), k3DMixerRenderingFlags_DopplerShift = (1L << 1), k3DMixerRenderingFlags_DistanceAttenuation = (1L << 2), k3DMixerRenderingFlags_DistanceFilter = (1L << 3), k3DMixerRenderingFlags_DistanceDiffusion = (1L << 4), k3DMixerRenderingFlags_LinearDistanceAttenuation = (1L << 5), k3DMixerRenderingFlags_ConstantReverbBlend = (1L << 6)};
typedef UInt32 AU3DMixerAttenuationCurve; enum { k3DMixerAttenuationCurve_Power = 0, k3DMixerAttenuationCurve_Exponential = 1, k3DMixerAttenuationCurve_Inverse = 2, k3DMixerAttenuationCurve_Linear = 3};enum { kAudioUnitProperty_ScheduleAudioSlice = 3300, kAudioUnitProperty_ScheduleStartTimeStamp = 3301, kAudioUnitProperty_CurrentPlayTime = 3302};typedef UInt32 AUScheduledAudioSliceFlags; enum { kScheduledAudioSliceFlag_Complete = 0x01, kScheduledAudioSliceFlag_BeganToRender = 0x02, kScheduledAudioSliceFlag_BeganToRenderLate = 0x04,
kScheduledAudioSliceFlag_Loop = 0x08, kScheduledAudioSliceFlag_Interrupt = 0x10, kScheduledAudioSliceFlag_InterruptAtLoop = 0x20};
typedef struct ScheduledAudioSlice ScheduledAudioSlice;
typedef void (*ScheduledAudioSliceCompletionProc)(void * _Nullable userData, ScheduledAudioSlice *bufferList);struct ScheduledAudioSlice { AudioTimeStamp mTimeStamp; ScheduledAudioSliceCompletionProc _Nullable mCompletionProc; void * mCompletionProcUserData; AUScheduledAudioSliceFlags mFlags; UInt32 mReserved; void * _Nullable mReserved2; UInt32 mNumberFrames; AudioBufferList * mBufferList;};enum { kAudioUnitProperty_ScheduledFileIDs = 3310, kAudioUnitProperty_ScheduledFileRegion = 3311, kAudioUnitProperty_ScheduledFilePrime = 3312, kAudioUnitProperty_ScheduledFileBufferSizeFrames = 3313, kAudioUnitProperty_ScheduledFileNumberBuffers = 3314};
typedef struct ScheduledAudioFileRegion ScheduledAudioFileRegion;
typedef void (*ScheduledAudioFileRegionCompletionProc)(void * _Nullable userData, ScheduledAudioFileRegion *fileRegion, OSStatus result);struct ScheduledAudioFileRegion { AudioTimeStamp mTimeStamp; ScheduledAudioFileRegionCompletionProc _Nullable mCompletionProc; void * _Nullable mCompletionProcUserData; struct OpaqueAudioFileID * mAudioFile; UInt32 mLoopCount; SInt64 mStartFrame; UInt32 mFramesToPlay;};enum { kMusicDeviceProperty_UsesInternalReverb = kAudioUnitProperty_UsesInternalReverb, kMusicDeviceProperty_SoundBankData = 1008, kMusicDeviceProperty_StreamFromDisk = 1011, kMusicDeviceProperty_SoundBankFSRef = 1012};enum { kMusicDeviceProperty_InstrumentName = 1001, kMusicDeviceProperty_InstrumentNumber = 1004};enum { kMusicDeviceProperty_InstrumentCount = 1000, kMusicDeviceProperty_BankName = 1007, kMusicDeviceProperty_SoundBankURL = 1100};enum { kAUMIDISynthProperty_EnablePreload = 4119};enum {
kAUSamplerProperty_LoadInstrument = 4102, kAUSamplerProperty_LoadAudioFiles = 4101};typedef struct AUSamplerInstrumentData { CFURLRef fileURL; UInt8 instrumentType; UInt8 bankMSB; UInt8 bankLSB; UInt8 presetID;} AUSamplerInstrumentData;enum{ kInstrumentType_DLSPreset = 1, kInstrumentType_SF2Preset = kInstrumentType_DLSPreset, kInstrumentType_AUPreset = 2, kInstrumentType_Audiofile = 3, kInstrumentType_EXS24 = 4};
enum{ kAUSampler_DefaultPercussionBankMSB = 0x78, kAUSampler_DefaultMelodicBankMSB = 0x79, kAUSampler_DefaultBankLSB = 0x00};enum { kAudioUnitProperty_DeferredRendererPullSize = 3320, kAudioUnitProperty_DeferredRendererExtraLatency = 3321, kAudioUnitProperty_DeferredRendererWaitFrames = 3322};enum { kAUNetReceiveProperty_Hostname = 3511, kAUNetReceiveProperty_Password = 3512};enum { kAUNetSendProperty_PortNum = 3513, kAUNetSendProperty_TransmissionFormat = 3514, kAUNetSendProperty_TransmissionFormatIndex = 3515, kAUNetSendProperty_ServiceName = 3516, kAUNetSendProperty_Disconnect = 3517, kAUNetSendProperty_Password = 3518};enum { kAUNetSendPresetFormat_PCMFloat32 = 0, kAUNetSendPresetFormat_PCMInt24 = 1, kAUNetSendPresetFormat_PCMInt16 = 2, kAUNetSendPresetFormat_Lossless24 = 3, kAUNetSendPresetFormat_Lossless16 = 4, kAUNetSendPresetFormat_ULaw = 5, kAUNetSendPresetFormat_IMA4 = 6, kAUNetSendPresetFormat_AAC_128kbpspc = 7, kAUNetSendPresetFormat_AAC_96kbpspc = 8, kAUNetSendPresetFormat_AAC_80kbpspc = 9, kAUNetSendPresetFormat_AAC_64kbpspc = 10, kAUNetSendPresetFormat_AAC_48kbpspc = 11, kAUNetSendPresetFormat_AAC_40kbpspc = 12, kAUNetSendPresetFormat_AAC_32kbpspc = 13, kAUNetSendPresetFormat_AAC_LD_64kbpspc = 14, kAUNetSendPresetFormat_AAC_LD_48kbpspc = 15, kAUNetSendPresetFormat_AAC_LD_40kbpspc = 16, kAUNetSendPresetFormat_AAC_LD_32kbpspc = 17, kAUNetSendNumPresetFormats = 18};typedef struct AUNumVersion {
UInt8 nonRelRev; UInt8 stage; UInt8 minorAndBugRev; UInt8 majorRev;} AUNumVersion;
typedef struct AUHostIdentifier { CFStringRef hostName; AUNumVersion hostVersion;} AUHostIdentifier;
enum { kAudioUnitParameterFlag_Global = (1L << 0), kAudioUnitParameterFlag_Input = (1L << 1), kAudioUnitParameterFlag_Output = (1L << 2), kAudioUnitParameterFlag_Group = (1L << 3)};
enum { kAudioUnitParameterFlag_HasName = kAudioUnitParameterFlag_ValuesHaveStrings};
enum {
kAudioUnitProperty_SRCAlgorithm = 9, kAudioUnitProperty_MIDIControlMapping = 17, kAudioUnitProperty_CurrentPreset = 28,
kAudioUnitProperty_ParameterValueName = kAudioUnitProperty_ParameterStringFromValue, kAudioUnitProperty_BusCount = kAudioUnitProperty_ElementCount,
kAudioOfflineUnitProperty_InputSize = kAudioUnitOfflineProperty_InputSize, kAudioOfflineUnitProperty_OutputSize = kAudioUnitOfflineProperty_OutputSize};
enum { kAudioUnitSRCAlgorithm_Polyphase = 'poly', kAudioUnitSRCAlgorithm_MediumQuality = 'csrc'};
typedef struct AudioUnitMIDIControlMapping{ UInt16 midiNRPN; UInt8 midiControl; UInt8 scope; AudioUnitElement element; AudioUnitParameterID parameter;} AudioUnitMIDIControlMapping;
typedef struct AudioUnitParameterValueName { AudioUnitParameterID inParamID; const Float32 * _Nonnull inValue; CFStringRef outName;} AudioUnitParameterValueName;
enum { kMusicDeviceProperty_GroupOutputBus = 1002, kMusicDeviceProperty_SoundBankFSSpec = 1003, kAudioUnitProperty_PannerMode = 3008};
enum { kAudioUnitProperty_SpeakerConfiguration = 3001};
enum { kSpeakerConfiguration_HeadPhones = 0, kSpeakerConfiguration_Stereo = 1, kSpeakerConfiguration_Quad = 2, kSpeakerConfiguration_5_0 = 3, kSpeakerConfiguration_5_1 = kSpeakerConfiguration_5_0};
typedef struct AUSamplerBankPresetData { CFURLRef bankURL; UInt8 bankMSB; UInt8 bankLSB; UInt8 presetID; UInt8 reserved;} AUSamplerBankPresetData;
enum { kAUSamplerProperty_LoadPresetFromBank = 4100, kAUSamplerProperty_BankAndPreset = kAUSamplerProperty_LoadPresetFromBank};
#define kAUPresetVersionKey "version"#define kAUPresetTypeKey "type"#define kAUPresetSubtypeKey "subtype"#define kAUPresetManufacturerKey "manufacturer"#define kAUPresetDataKey "data"#define kAUPresetNameKey "name"#define kAUPresetRenderQualityKey "render-quality"#define kAUPresetCPULoadKey "cpu-load"#define kAUPresetElementNameKey "element-name"#define kAUPresetExternalFileRefs "file-references"#define kAUPresetPartKey "part"
#endif