1 #include "PlugtasticAUInstrumentVersion.h"
2 #include "AUInstrumentBase.h"
3 #include "PlugtasticAUInstrumentGraph.h"
5 #if AU_DEBUG_DISPATCHER
6 #include "AUDebugDispatcher.h"
9 #ifndef __PlugtasticAUInstrument_h__
10 #define __PlugtasticAUInstrument_h__
71 class PlugtasticAUParameters;
76 class PlugtasticAUInstrument :
public AUMIDIEffectBase
78 PlugtasticAUInstrumentGraph* mGraph;
79 PlugtasticAUParameters* mParameters;
83 PlugtasticAUInstrument(AudioUnit component);
85 virtual ~PlugtasticAUInstrument()
90 #if AU_DEBUG_DISPATCHER
91 delete mDebugDispatcher;
97 virtual OSStatus GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo &outParameterInfo);
105 virtual ComponentResult SetParameter(AudioUnitParameterID inID,
106 AudioUnitScope inScope,
107 AudioUnitElement inElement,
109 UInt32 inBufferOffsetInFrames);
113 virtual OSStatus GetProperty(AudioUnitPropertyID inID,
114 AudioUnitScope inScope,
115 AudioUnitElement inElement,
118 virtual bool SupportsTail()
123 virtual OSStatus Version()
125 return kPlugtasticAUEffectVersion;
130 virtual OSStatus HandleMidiEvent(UInt8 inStatus, UInt8 inChannel, UInt8 inData1, UInt8 inData2,
long inStartFrame);
131 virtual ComponentResult StartNote(MusicDeviceInstrumentID inInstrument, MusicDeviceGroupID inGroupID, NoteInstanceID &outNoteInstanceID, UInt32 inOffsetSampleFrame,
const MusicDeviceNoteParams &inParams);
132 virtual ComponentResult StopNote(MusicDeviceGroupID inGroupID, NoteInstanceID inNoteInstanceID, UInt32 inOffsetSampleFrame);
147 OSStatus ProcessBufferLists(AudioUnitRenderActionFlags& ioActionFlags,
148 const AudioBufferList& inBufferList,
149 AudioBufferList& outBufferList,
151 const AudioBufferList* inSidechainBufferList,
152 AudioBufferList* outSidechainBufferList);
155 virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags& iFlags,
156 const AudioBufferList& inBufferList,
157 AudioBufferList& outBufferList,
160 virtual OSStatus ProcessScheduledSlice(
void* inUserData,
161 UInt32 inStartFrameInBuffer,
162 UInt32 inSliceFramesToProcess,
163 UInt32 inTotalBufferFrames );
165 virtual OSStatus Render(AudioUnitRenderActionFlags& ioActionFlags,
166 const AudioTimeStamp& inTimeStamp,
171 #endif // #ifndef __PlugtasticAUInstrument_h__