29 audioMasterCallback mVSTHostCallback;
38 IPlugVST2(
const InstanceInfo& info,
const Config& config);
41 void BeginInformHostOfParamChange(
int idx)
override;
42 void InformHostOfParamChange(
int idx,
double normalizedValue)
override;
43 void EndInformHostOfParamChange(
int idx)
override;
44 void InformHostOfPresetChange()
override;
45 void HostSpecificInit()
override;
46 bool EditorResize(
int viewWidth,
int viewHeight)
override;
49 void SetLatency(
int samples)
override;
50 bool SendMidiMsg(
const IMidiMsg& msg)
override;
51 bool SendSysEx(
const ISysEx& msg)
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;
98 IPlugVST2* MakePlug(
const InstanceInfo& info);
The base class for IPlug Audio Processing.
The base class of an IPlug plug-in, which interacts with the different plug-in APIs.
Encapsulates a MIDI message and provides helper functions.
Manages a block of memory, for plug-in settings store/recall.
VST2.4 API base class for an IPlug plug-in.
The base class for IPlug Audio Processing.
The base class of an IPlug plug-in, which interacts with the different plug-in APIs.
A struct for dealing with SysEx messages.