this repo has no description
1#ifndef AUDIOQUEUEBASE_H
2#define AUDIOQUEUEBASE_H
3#include "AudioQueue.h"
4
5class AudioQueue
6{
7public:
8 AudioQueue(const AudioStreamBasicDescription* format, void* userData,
9 CFRunLoopRef runloop, CFStringRef runloopMode, UInt32 flags);
10 virtual ~AudioQueue();
11
12 virtual OSStatus start(const AudioTimeStamp *inStartTime) = 0;
13 virtual OSStatus prime(UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared) = 0;
14 virtual OSStatus flush() = 0;
15 virtual OSStatus stop(Boolean inImmediate) = 0;
16 virtual OSStatus pause() = 0;
17 virtual OSStatus reset() = 0;
18
19 virtual OSStatus dispose(Boolean inImmediate) = 0;
20
21 virtual OSStatus getParameter(AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue);
22 virtual OSStatus setParameter(AudioQueueParameterID inParamID, AudioQueueParameterValue inValue);
23
24 virtual OSStatus getProperty(AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize);
25 virtual OSStatus setProperty(AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize);
26 virtual OSStatus getPropertySize(AudioQueuePropertyID inID, UInt32 *outDataSize);
27
28 OSStatus addPropertyListener(AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData);
29 OSStatus removePropertyListener(AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData);
30
31 virtual OSStatus setOfflineRenderFormat(const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout) = 0;
32 virtual OSStatus offlineRender(const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames) = 0;
33protected:
34 AudioStreamBasicDescription m_format;
35 void* m_userData;
36 CFRunLoopRef m_runloop;
37 CFStringRef m_runloopMode;
38 UInt32 m_flags;
39};
40
41#endif /* AUDIOQUEUEBASE_H */
42