29 audioMasterCallback mVSTHostCallback;
38 IPlugVST2(
const InstanceInfo& info,
const Config& config);
46 bool EditorResize(
int viewWidth,
int viewHeight)
override;
54 audioMasterCallback& GetHostCallback() {
return mHostCallback; }
55 AEffect& GetAEffect() {
return mAEffect; }
56 void OutputSysexFromEditor();
59 virtual VstIntPtr VSTVendorSpecific(VstInt32 idx, VstIntPtr value,
void* ptr,
float opt) {
return 0; }
60 virtual VstIntPtr VSTCanDo(
const char* hostString) {
return 0; }
69 template <
class SAMPLETYPE>
70 void VSTPreProcess(SAMPLETYPE** inputs, SAMPLETYPE** outputs, VstInt32 nFrames);
72 static VstIntPtr VSTCALLBACK VSTDispatcher(AEffect *pEffect, VstInt32 opCode, VstInt32 idx, VstIntPtr value,
void *ptr,
float opt);
73 static void VSTCALLBACK VSTProcess(AEffect *pEffect,
float **inputs,
float **outputs, VstInt32 nFrames);
74 static void VSTCALLBACK VSTProcessReplacing(AEffect *pEffect,
float **inputs,
float **outputs, VstInt32 nFrames);
75 static void VSTCALLBACK VSTProcessDoubleReplacing(AEffect *pEffect,
double **inputs,
double **outputs, VstInt32 nFrames);
76 static float VSTCALLBACK VSTGetParameter(AEffect *pEffect, VstInt32 idx);
77 static void VSTCALLBACK VSTSetParameter(AEffect *pEffect, VstInt32 idx,
float value);
79 bool SendVSTEvent(VstEvent& event);
80 bool SendVSTEvents(WDL_TypedBuf<VstEvent>* pEvents);
82 void UpdateEditRect();
85 VstSpeakerArrangement mInputSpkrArr, mOutputSpkrArr;
87 enum { VSTEXT_NONE=0, VSTEXT_COCKOS, VSTEXT_COCOA };
88 int mHasVSTExtensions;
94 audioMasterCallback mHostCallback;
97IPlugVST2* MakePlug(
const InstanceInfo& info);
Manages a block of memory, for plug-in settings store/recall.
The base class of an IPlug plug-in, which interacts with the different plug-in APIs.
The base class for IPlug Audio Processing.
VST2.4 API base class for an IPlug plug-in.
void InformHostOfParamChange(int idx, double normalizedValue) override
Implemented by the API class, called by the UI via SetParameterValue() with the value of a parameter ...
bool SendMidiMsg(const IMidiMsg &msg) override
Send a single MIDI message // TODO: info about what thread should this be called on or not called on!
void EndInformHostOfParamChange(int idx) override
Implemented by the API class, called by the UI (or by a delegate) at the end of a parameter change ge...
void SetLatency(int samples) override
Call this if the latency of your plug-in changes after initialization (perhaps from OnReset() ) This ...
bool EditorResize(int viewWidth, int viewHeight) override
Implementations call into the APIs resize hooks returns a bool to indicate whether the DAW or plugin ...
void HostSpecificInit() override
This method is implemented in some API classes, in order to do specific initialisation for particular...
bool SendSysEx(const ISysEx &msg) override
Send a single MIDI System Exclusive (SysEx) message // TODO: info about what thread should this be ca...
void BeginInformHostOfParamChange(int idx) override
Implemented by the API class, called by the UI (or by a delegate) at the beginning of a parameter cha...
void InformHostOfPresetChange() override
Implemented by the API class, called by the UI (etc) when the plug-in initiates a program/preset chan...
Encapsulates a MIDI message and provides helper functions.
A struct for dealing with SysEx messages.