this repo has no description
at fixPythonPipStalling 203 lines 6.0 kB view raw
1/* 2This file is part of Darling. 3 4Copyright (C) 2020 Lubos Dolezel 5 6Darling is free software: you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation, either version 3 of the License, or 9(at your option) any later version. 10 11Darling is distributed in the hope that it will be useful, 12but WITHOUT ANY WARRANTY; without even the implied warranty of 13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14GNU General Public License for more details. 15 16You should have received a copy of the GNU General Public License 17along with Darling. If not, see <http://www.gnu.org/licenses/>. 18*/ 19 20 21#include <AudioToolbox/AUComponent.h> 22#include <AudioToolbox/AudioOutputUnit.h> 23#include <CarbonCore/MacErrors.h> 24#include "ComponentDispatch.h" 25 26const CFStringRef kAudioComponentRegistrationsChangedNotification = CFSTR("AudioComponentRegistrationsChangedNotification"); 27const CFStringRef kAudioComponentInstanceInvalidationNotification = CFSTR("AudioComponentInstanceInvalidationNotification"); 28 29OSStatus AudioOutputUnitStart(AudioUnit ci) 30{ 31 return dispatchCall(ci, kAudioOutputUnitStartSelect); 32} 33 34OSStatus AudioOutputUnitStop(AudioUnit ci) 35{ 36 return dispatchCall(ci, kAudioOutputUnitStopSelect); 37} 38 39OSStatus AudioUnitInitialize(AudioUnit inUnit) 40{ 41 return dispatchCall(inUnit, kAudioUnitInitializeSelect); 42} 43 44OSStatus AudioUnitUninitialize(AudioUnit inUnit) 45{ 46 return dispatchCall(inUnit, kAudioUnitUninitializeSelect); 47} 48 49OSStatus 50AudioUnitGetPropertyInfo(AudioUnit inUnit, 51 AudioUnitPropertyID inID, 52 AudioUnitScope inScope, 53 AudioUnitElement inElement, 54 UInt32 * _Nullable outDataSize, 55 Boolean * _Nullable outWritable) 56{ 57 return dispatchCall(inUnit, kAudioUnitGetPropertyInfoSelect, inID, inScope, inElement, outDataSize, outWritable); 58} 59 60OSStatus 61AudioUnitGetProperty(AudioUnit inUnit, 62 AudioUnitPropertyID inID, 63 AudioUnitScope inScope, 64 AudioUnitElement inElement, 65 void * outData, 66 UInt32 * ioDataSize) 67{ 68 return dispatchCall(inUnit, kAudioUnitGetPropertySelect, inID, inScope, inElement, outData, ioDataSize); 69} 70 71OSStatus 72AudioUnitSetProperty(AudioUnit inUnit, 73 AudioUnitPropertyID inID, 74 AudioUnitScope inScope, 75 AudioUnitElement inElement, 76 const void * _Nullable inData, 77 UInt32 inDataSize) 78{ 79 return dispatchCall(inUnit, kAudioUnitSetPropertySelect, inID, inScope, inElement, inData, inDataSize); 80} 81 82OSStatus 83AudioUnitAddPropertyListener(AudioUnit inUnit, 84 AudioUnitPropertyID inID, 85 AudioUnitPropertyListenerProc inProc, 86 void * _Nullable inProcUserData) 87{ 88 return dispatchCall(inUnit, kAudioUnitAddPropertyListenerSelect, inID, inProc, inProcUserData); 89} 90 91OSStatus 92AudioUnitRemovePropertyListenerWithUserData( 93 AudioUnit inUnit, 94 AudioUnitPropertyID inID, 95 AudioUnitPropertyListenerProc inProc, 96 void * _Nullable inProcUserData) 97{ 98 return dispatchCall(inUnit, kAudioUnitRemovePropertyListenerWithUserDataSelect, inID, inProc, inProcUserData); 99} 100 101OSStatus 102AudioUnitAddRenderNotify(AudioUnit inUnit, 103 AURenderCallback inProc, 104 void * _Nullable inProcUserData) 105{ 106 return dispatchCall(inUnit, kAudioUnitAddRenderNotifySelect, inProc, inProcUserData); 107} 108 109OSStatus 110AudioUnitRemoveRenderNotify(AudioUnit inUnit, 111 AURenderCallback inProc, 112 void * _Nullable inProcUserData) 113{ 114 return dispatchCall(inUnit, kAudioUnitRemoveRenderNotifySelect, inProc, inProcUserData); 115} 116 117OSStatus 118AudioUnitGetParameter(AudioUnit inUnit, 119 AudioUnitParameterID inID, 120 AudioUnitScope inScope, 121 AudioUnitElement inElement, 122 AudioUnitParameterValue * outValue) 123{ 124 return dispatchCall(inUnit, kAudioUnitGetParameterSelect, inID, inScope, inElement, outValue); 125} 126 127OSStatus 128AudioUnitSetParameter(AudioUnit inUnit, 129 AudioUnitParameterID inID, 130 AudioUnitScope inScope, 131 AudioUnitElement inElement, 132 AudioUnitParameterValue inValue, 133 UInt32 inBufferOffsetInFrames) 134{ 135 return dispatchCall(inUnit, kAudioUnitSetParameterSelect, inID, inScope, inElement, inValue, inBufferOffsetInFrames); 136} 137 138OSStatus 139AudioUnitScheduleParameters(AudioUnit inUnit, 140 const AudioUnitParameterEvent * inParameterEvent, 141 UInt32 inNumParamEvents) 142{ 143 return dispatchCall(inUnit, kAudioUnitScheduleParametersSelect, inParameterEvent, inNumParamEvents); 144} 145 146OSStatus 147AudioUnitRender(AudioUnit inUnit, 148 AudioUnitRenderActionFlags * _Nullable ioActionFlags, 149 const AudioTimeStamp * inTimeStamp, 150 UInt32 inOutputBusNumber, 151 UInt32 inNumberFrames, 152 AudioBufferList * ioData) 153{ 154 return dispatchCall(inUnit, kAudioUnitRenderSelect, ioActionFlags, inTimeStamp, inOutputBusNumber, inNumberFrames, ioData); 155} 156 157OSStatus 158AudioUnitProcess (AudioUnit inUnit, 159 AudioUnitRenderActionFlags * _Nullable ioActionFlags, 160 const AudioTimeStamp * inTimeStamp, 161 UInt32 inNumberFrames, 162 AudioBufferList * ioData) 163{ 164 // TODO 165 return unimpErr; 166} 167 168OSStatus 169AudioUnitProcessMultiple(AudioUnit inUnit, 170 AudioUnitRenderActionFlags * _Nullable ioActionFlags, 171 const AudioTimeStamp * inTimeStamp, 172 UInt32 inNumberFrames, 173 UInt32 inNumberInputBufferLists, 174 const AudioBufferList * _Nonnull * _Nonnull inInputBufferLists, 175 UInt32 inNumberOutputBufferLists, 176 AudioBufferList * _Nonnull * _Nonnull ioOutputBufferLists) 177{ 178 // TODO 179 return unimpErr; 180} 181 182OSStatus 183AudioUnitReset(AudioUnit inUnit, 184 AudioUnitScope inScope, 185 AudioUnitElement inElement) 186{ 187 return dispatchCall(inUnit, kAudioUnitResetSelect, inScope, inElement); 188} 189 190OSStatus 191AudioUnitExtensionSetComponentList(CFStringRef extensionIdentifier, _Nullable CFArrayRef audioComponentInfo) 192{ 193 // TODO 194 return unimpErr; 195} 196 197_Nullable CFArrayRef 198AudioUnitExtensionCopyComponentList(CFStringRef extensionIdentifier) 199{ 200 // TODO 201 return nullptr; 202} 203