this repo has no description
1#ifndef AUDIOUNIT_H
2#define AUDIOUNIT_H
3#include <MacTypes.h>
4#include <CoreAudio/CoreAudioTypes.h>
5#include "AUComponent.h"
6
7typedef AudioComponentInstance AudioUnit;
8typedef UInt32 AudioUnitRenderActionFlags;
9typedef UInt32 AudioUnitElement;
10typedef UInt32 AudioUnitScope;
11typedef UInt32 AudioUnitPropertyID;
12
13typedef OSStatus (*AURenderCallback) (void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData);
14
15enum {
16 kAudioUnitRenderAction_PreRender = (1 << 2),
17 kAudioUnitRenderAction_PostRender = (1 << 3),
18 kAudioUnitRenderAction_OutputIsSilence = (1 << 4),
19 kAudioOfflineUnitRenderAction_Preflight = (1 << 5),
20 kAudioOfflineUnitRenderAction_Render = (1 << 6),
21 kAudioOfflineUnitRenderAction_Complete = (1 << 7),
22 kAudioUnitRenderAction_PostRenderError = (1 << 8),
23 kAudioUnitRenderAction_DoNotCheckRenderArgs = (1 << 9)
24};
25
26extern "C" {
27
28OSStatus AudioUnitInitialize(AudioUnit inUnit);
29OSStatus AudioUnitUninitialize(AudioUnit inUnit);
30
31OSStatus AudioUnitAddRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void* opaque);
32OSStatus AudioUnitRemoveRenderNotify(AudioUnit inUnit, AURenderCallback inProc, void* opaque);
33
34OSStatus AudioUnitRender(AudioUnit inUnit, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData);
35OSStatus AudioUnitReset(AudioUnit inUnit, AudioUnitScope inScope, AudioUnitElement inElement);
36
37OSStatus AudioUnitGetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData, UInt32 *ioDataSize);
38OSStatus AudioUnitGetPropertyInfo(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32 *outDataSize, Boolean *outWritable);
39OSStatus AudioUnitSetProperty(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void *inData, UInt32 inDataSize);
40
41OSStatus AudioOutputUnitStart(AudioUnit inUnit);
42OSStatus AudioOutputUnitStop(AudioUnit inUnit);
43
44}
45
46#endif
47