C++:
VstIntPtr function dispatcher(AEffect* e, VstInt32 opcode, VstInt32 index, VstIntPtr value,
void* ptr, float opt);
Delphi:
function dispatcher(e: PAEffect; opcode, index: VstInt32; value: VstIntPtr; ptr: pointer;
opt: Single): VstIntPtr; cdecl;
always returns 0, unless otherwise defined.
all string-pointers points to zero terminated strings.
e[ ]: = plugin receives as entry parameter
x[ ]: = plugin returns to host
dispatcher() function using opcode 51:
51. effCanDo
>= VST2.0
@see AudioEffectX::canDo()
host queries a plugin 'cando' capability
e[ptr]: string-pointer to cando string
x[return]: 1='cando', 0='don't know' (default), -1='No'
cando strings:
"sendVstEvents", plug-in will send Vst events to Host
"sendVstMidiEvent", plug-in will send MIDI events to Host
"receiveVstEvents", plug-in can receive MIDI events from Host
"receiveVstMidiEvent", plug-in can receive MIDI events from Host
"receiveVstTimeInfo", plug-in can receive Time info from Host
"offline", plug-in supports offline functions (offlineNotify, offlinePrepare, offlineRun)
"midiProgramNames", plug-in supports function getMidiProgramName ()
"bypass", plug-in supports function setBypass ()
C++ method:
VstInt32 AudioEffectX::canDo(char* text)
Delphi method:
function AudioEffectX.canDo(text: pchar): VstInt32;