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 50:
50. effVendorSpecific
>= VST2.0
@see AudioEffectX::vendorSpecific()
no definition, vendor specific handling
C++ method:
VstIntPtr AudioEffectX::vendorSpecific(VstInt32 lArg, VstIntPtr lArg2, void* ptrArg, float floatArg)
Delphi method:
function AudioEffectX.vendorSpecific(lArg1: VstInt32; lArg2: VstIntPtr; ptrArg: pointer; floatArg: Single): VstInt32;
Comments:
The MouseWheel handling is a bit of an after thought, and has been implemented by Stenberg via the effVendorSpecific
call as follows:
e[index]: 'stCA' / $73744341
e[value]: 'Whee' / $57686565
e[ptr]: 1.0 = wheel-up, -1.0 = wheel-down
x[return]: 1 = MouseWheel is processed by plugin