Cider Isn't Darwin Emulation, Really
Something went wrong. Try again.
6.0 kB · 203 lines
C++
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204/*This file is part of Darling.
Copyright (C) 2020 Lubos Dolezel
Darling is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.
Darling is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with Darling. If not, see <http://www.gnu.org/licenses/>.*/
#include <AudioToolbox/AUComponent.h>#include <AudioToolbox/AudioOutputUnit.h>#include <CoreServices/MacErrors.h>#include "ComponentDispatch.h"
const CFStringRef kAudioComponentRegistrationsChangedNotification = CFSTR("AudioComponentRegistrationsChangedNotification");const CFStringRef kAudioComponentInstanceInvalidationNotification = CFSTR("AudioComponentInstanceInvalidationNotification");
OSStatus AudioOutputUnitStart(AudioUnit ci){ return dispatchCall(ci, kAudioOutputUnitStartSelect);}
OSStatus AudioOutputUnitStop(AudioUnit ci){ return dispatchCall(ci, kAudioOutputUnitStopSelect);}
OSStatus AudioUnitInitialize(AudioUnit inUnit){ return dispatchCall(inUnit, kAudioUnitInitializeSelect);}
OSStatus AudioUnitUninitialize(AudioUnit inUnit){ return dispatchCall(inUnit, kAudioUnitUninitializeSelect);}
OSStatusAudioUnitGetPropertyInfo(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32 * _Nullable outDataSize, Boolean * _Nullable outWritable){ return dispatchCall(inUnit, kAudioUnitGetPropertyInfoSelect, inID, inScope, inElement, outDataSize, outWritable);}
OSStatusAudioUnitGetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void * outData, UInt32 * ioDataSize){ return dispatchCall(inUnit, kAudioUnitGetPropertySelect, inID, inScope, inElement, outData, ioDataSize);}
OSStatusAudioUnitSetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void * _Nullable inData, UInt32 inDataSize){ return dispatchCall(inUnit, kAudioUnitSetPropertySelect, inID, inScope, inElement, inData, inDataSize);}
OSStatusAudioUnitAddPropertyListener(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitPropertyListenerProc inProc, void * _Nullable inProcUserData){ return dispatchCall(inUnit, kAudioUnitAddPropertyListenerSelect, inID, inProc, inProcUserData);}
OSStatusAudioUnitRemovePropertyListenerWithUserData( AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitPropertyListenerProc inProc, void * _Nullable inProcUserData){ return dispatchCall(inUnit, kAudioUnitRemovePropertyListenerWithUserDataSelect, inID, inProc, inProcUserData);}
OSStatusAudioUnitAddRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void * _Nullable inProcUserData){ return dispatchCall(inUnit, kAudioUnitAddRenderNotifySelect, inProc, inProcUserData);}
OSStatusAudioUnitRemoveRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void * _Nullable inProcUserData){ return dispatchCall(inUnit, kAudioUnitRemoveRenderNotifySelect, inProc, inProcUserData);}
OSStatusAudioUnitGetParameter(AudioUnit inUnit, AudioUnitParameterID inID, AudioUnitScope inScope, AudioUnitElement inElement, AudioUnitParameterValue * outValue){ return dispatchCall(inUnit, kAudioUnitGetParameterSelect, inID, inScope, inElement, outValue);}
OSStatusAudioUnitSetParameter(AudioUnit inUnit, AudioUnitParameterID inID, AudioUnitScope inScope, AudioUnitElement inElement, AudioUnitParameterValue inValue, UInt32 inBufferOffsetInFrames){ return dispatchCall(inUnit, kAudioUnitSetParameterSelect, inID, inScope, inElement, inValue, inBufferOffsetInFrames);}
OSStatusAudioUnitScheduleParameters(AudioUnit inUnit, const AudioUnitParameterEvent * inParameterEvent, UInt32 inNumParamEvents){ return dispatchCall(inUnit, kAudioUnitScheduleParametersSelect, inParameterEvent, inNumParamEvents);}
OSStatusAudioUnitRender(AudioUnit inUnit, AudioUnitRenderActionFlags * _Nullable ioActionFlags, const AudioTimeStamp * inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberFrames, AudioBufferList * ioData){ return dispatchCall(inUnit, kAudioUnitRenderSelect, ioActionFlags, inTimeStamp, inOutputBusNumber, inNumberFrames, ioData);}
OSStatusAudioUnitProcess (AudioUnit inUnit, AudioUnitRenderActionFlags * _Nullable ioActionFlags, const AudioTimeStamp * inTimeStamp, UInt32 inNumberFrames, AudioBufferList * ioData){ // TODO return unimpErr;}
OSStatusAudioUnitProcessMultiple(AudioUnit inUnit, AudioUnitRenderActionFlags * _Nullable ioActionFlags, const AudioTimeStamp * inTimeStamp, UInt32 inNumberFrames, UInt32 inNumberInputBufferLists, const AudioBufferList * _Nonnull * _Nonnull inInputBufferLists, UInt32 inNumberOutputBufferLists, AudioBufferList * _Nonnull * _Nonnull ioOutputBufferLists){ // TODO return unimpErr;}
OSStatusAudioUnitReset(AudioUnit inUnit, AudioUnitScope inScope, AudioUnitElement inElement){ return dispatchCall(inUnit, kAudioUnitResetSelect, inScope, inElement);}
OSStatusAudioUnitExtensionSetComponentList(CFStringRef extensionIdentifier, _Nullable CFArrayRef audioComponentInfo){ // TODO return unimpErr;}
_Nullable CFArrayRefAudioUnitExtensionCopyComponentList(CFStringRef extensionIdentifier){ // TODO return nullptr;}