1 #include "AUEffectBase.h"
2 #include "PlugtasticAUEffectVersion.h"
3 #include "PlugtasticAUEffectGraph.h"
5 #if AU_DEBUG_DISPATCHER
6 #include "AUDebugDispatcher.h"
10 #ifndef __PlugtasticAUEffect_h__
11 #define __PlugtasticAUEffect_h__
13 class PlugtasticAUParameters;
15 class PlugtasticAUEffect :
public AUEffectBase
17 PlugtasticAUEffectGraph* mGraph;
18 PlugtasticAUParameters* mParameters;
22 PlugtasticAUEffect(AudioUnit component);
24 virtual ~PlugtasticAUEffect()
29 #if AU_DEBUG_DISPATCHER
30 delete mDebugDispatcher;
34 virtual OSStatus GetParameterValueStrings(AudioUnitScope inScope, AudioUnitParameterID inParameterID, CFArrayRef* outStrings);
36 virtual OSStatus GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo &outParameterInfo);
38 virtual OSStatus GetPropertyInfo(AudioUnitPropertyID inID,
39 AudioUnitScope inScope,
40 AudioUnitElement inElement,
42 Boolean& outWritable);
44 virtual ComponentResult SetParameter(AudioUnitParameterID inID,
45 AudioUnitScope inScope,
46 AudioUnitElement inElement,
48 UInt32 inBufferOffsetInFrames);
50 virtual void SetParameter(AudioUnitParameterID inID, Float32 inValue);
52 virtual OSStatus GetProperty(AudioUnitPropertyID inID,
53 AudioUnitScope inScope,
54 AudioUnitElement inElement,
57 virtual bool SupportsTail()
62 virtual OSStatus Version()
64 return kPlugtasticAUEffectVersion;
71 struct PlugtasticScheduledProcessParams {
72 ScheduledProcessParams au;
73 AudioBufferList* sidechainInputBufferList;
74 AudioBufferList* sidechainOutputBufferList;
79 OSStatus ProcessBufferLists(AudioUnitRenderActionFlags& ioActionFlags,
80 const AudioBufferList& inBufferList,
81 AudioBufferList& outBufferList,
83 const AudioBufferList* inSidechainBufferList,
84 AudioBufferList* outSidechainBufferList);
87 virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags& iFlags,
88 const AudioBufferList& inBufferList,
89 AudioBufferList& outBufferList,
92 virtual OSStatus ProcessScheduledSlice(
void* inUserData,
93 UInt32 inStartFrameInBuffer,
94 UInt32 inSliceFramesToProcess,
95 UInt32 inTotalBufferFrames );
97 virtual OSStatus Render(AudioUnitRenderActionFlags& ioActionFlags,
98 const AudioTimeStamp& inTimeStamp,
103 #endif // __PlugtasticAUEffect_h__