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 36:
36. effGetCurrentPosition
>= VST2.0 ... deprecated in VST2.4 @see AudioEffectX::reportCurrentPosition()
for external dsp, @see VstAEffectFlags
C++ method:
VstInt32 AudioEffectX::DECLARE_VST_DEPRECATED(reportCurrentPosition) ()
Delphi method:
function AudioEffectX.reportCurrentPosition: VstInt32;
VstAEffectFlags constants:
enum VstAEffectFlags
{
effFlagsHasEditor = 1 << 0, // set if the plug-in provides a custom editor
effFlagsCanReplacing = 1 << 4, // supports replacing process mode (which should the default mode in VST 2.4)
effFlagsProgramChunks = 1 << 5, // program data is handled in formatless chunks
effFlagsIsSynth = 1 << 8, // plug-in is a synth (VSTi), Host may assign mixer channels for its outputs
effFlagsNoSoundInStop = 1 << 9, // plug-in does not produce sound when input is all silence
#if VST_2_4_EXTENSIONS
effFlagsCanDoubleReplacing = 1 << 12, // plug-in supports double precision processing
#endif
DECLARE_VST_DEPRECATED (effFlagsHasClip) = 1 << 1, // deprecated in VST 2.4
DECLARE_VST_DEPRECATED (effFlagsHasVu) = 1 << 2, // deprecated in VST 2.4
DECLARE_VST_DEPRECATED (effFlagsCanMono) = 1 << 3, // deprecated in VST 2.4
DECLARE_VST_DEPRECATED (effFlagsExtIsAsync) = 1 << 10, // deprecated in VST 2.4
DECLARE_VST_DEPRECATED (effFlagsExtHasBuffer) = 1 << 11 // deprecated in VST 2.4
};