this repo has no description
at fixPythonPipStalling 108 lines 5.1 kB view raw
1#ifndef AUDIOBUFFER_H 2#define AUDIOBUFFER_H 3#include <CoreAudio/CoreAudioTypes.h> 4#include <CoreServices/MacTypes.h> 5#include <CoreFoundation/CFString.h> 6#include <CoreFoundation/CFRunLoop.h> 7 8#ifdef __cplusplus 9extern "C" { 10#endif 11 12typedef UInt32 AudioQueuePropertyID; 13typedef UInt32 AudioQueueParameterID; 14typedef Float32 AudioQueueParameterValue; 15 16struct AudioQueueParameterEvent 17{ 18 AudioQueueParameterID mID; 19 AudioQueueParameterValue mValue; 20}; 21 22class AudioQueue; 23typedef AudioQueue* AudioQueueRef; 24 25struct AudioQueueBuffer 26{ 27 const UInt32 mAudioDataBytesCapacity; 28 void* mAudioData; 29 UInt32 mAudioDataByteSize; 30 void* mUserData; 31 32 UInt32 mPacketDescriptionCapacity; 33 AudioStreamPacketDescription* mPacketDescriptions; 34 UInt32 mPacketDescriptionCount; 35}; 36typedef AudioQueueBuffer* AudioQueueBufferRef; 37 38OSStatus AudioQueueStart(AudioQueueRef inAQ, const AudioTimeStamp *inStartTime); 39OSStatus AudioQueuePrime(AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared); 40OSStatus AudioQueueFlush(AudioQueueRef inAQ); 41OSStatus AudioQueueStop(AudioQueueRef inAQ, Boolean inImmediate); 42OSStatus AudioQueuePause(AudioQueueRef inAQ); 43OSStatus AudioQueueReset(AudioQueueRef inAQ); 44 45typedef void (*AudioQueueOutputCallback)(void* inUserData, AudioQueueRef inAQ, 46 AudioQueueBufferRef inBuffer); 47OSStatus AudioQueueNewOutput(const AudioStreamBasicDescription *inFormat, 48 AudioQueueOutputCallback inCallbackProc, 49 void *inUserData, CFRunLoopRef inCallbackRunLoop, 50 CFStringRef inCallbackRunLoopMode, UInt32 inFlags, 51 AudioQueueRef *outAQ); 52 53typedef void (*AudioQueueInputCallback)(void* inUserData, AudioQueueRef inAQ, 54 AudioQueueBufferRef inBuffer, const AudioTimeStamp* inStartTime, 55 UInt32 inNumberPacketDescriptions, 56 const AudioStreamPacketDescription* inPacketDescs); 57OSStatus AudioQueueNewInput(const AudioStreamBasicDescription *inFormat, 58 AudioQueueInputCallback inCallbackProc, 59 void *inUserData, CFRunLoopRef inCallbackRunLoop, 60 CFStringRef inCallbackRunLoopMode, UInt32 inFlags, 61 AudioQueueRef *outAQ); 62 63OSStatus AudioQueueDispose(AudioQueueRef inAQ, Boolean inImmediate); 64 65OSStatus AudioQueueGetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue); 66OSStatus AudioQueueSetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue inValue); 67 68OSStatus AudioQueueGetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize); 69OSStatus AudioQueueSetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize); 70OSStatus AudioQueueGetPropertySize(AudioQueueRef inAQ, AudioQueuePropertyID inID, UInt32 *outDataSize); 71 72typedef void (*AudioQueuePropertyListenerProc)(void* inUserData, AudioQueueRef inAQ, AudioQueuePropertyID inID); 73OSStatus AudioQueueAddPropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData); 74OSStatus AudioQueueRemovePropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData); 75 76OSStatus AudioQueueSetOfflineRenderFormat(AudioQueueRef inAQ, const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout); 77OSStatus AudioQueueOfflineRender(AudioQueueRef inAQ, const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames); 78 79OSStatus AudioQueueAllocateBuffer(AudioQueueRef inAQ, UInt32 inBufferByteSize, AudioQueueBufferRef *outBuffer); 80OSStatus AudioQueueAllocateBufferWithPacketDescriptions(AudioQueueRef inAQ, 81 UInt32 inBufferByteSize, UInt32 inNumberPacketDescriptions, 82 AudioQueueBufferRef *outBuffer); 83OSStatus AudioQueueFreeBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer); 84OSStatus AudioQueueEnqueueBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, 85 UInt32 inNumPacketDescs, const AudioStreamPacketDescription *inPacketDescs); 86OSStatus AudioQueueEnqueueBufferWithParameters(AudioQueueRef inAQ, 87 AudioQueueBufferRef inBuffer, UInt32 inNumPacketDescs, 88 const AudioStreamPacketDescription *inPacketDescs, 89 UInt32 inTrimFramesAtStart, UInt32 inTrimFramesAtEnd, 90 UInt32 inNumParamValues, const AudioQueueParameterEvent *inParamValues, 91 const AudioTimeStamp *inStartTime, AudioTimeStamp *outActualStartTime); 92 93class AudioQueueTimeline; 94typedef AudioQueueTimeline* AudioQueueTimelineRef; 95 96OSStatus AudioQueueCreateTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef *outTimeline); 97OSStatus AudioQueueDisposeTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline); 98OSStatus AudioQueueDeviceGetCurrentTime(AudioQueueRef inAQ, AudioTimeStamp *outTimeStamp); 99OSStatus AudioQueueDeviceGetNearestStartTime(AudioQueueRef inAQ, AudioTimeStamp *ioRequestedStartTime, UInt32 inFlags); 100OSStatus AudioQueueDeviceTranslateTime(AudioQueueRef inAQ, const AudioTimeStamp *inTime, AudioTimeStamp *outTime); 101OSStatus AudioQueueGetCurrentTime(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline, AudioTimeStamp *outTimeStamp, Boolean *outTimelineDiscontinuity); 102 103#ifdef __cplusplus 104} 105#endif 106 107#endif /* AUDIOBUFFER_H */ 108