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 76:
76. effBeginLoadProgram
>= VST2.3
@see AudioEffectX::beginLoadProgram()
Called before a Program is loaded
e[ptr]: points to VstPatchChunkInfo* structure
x[return]: -1 if the Program cannot be loaded, 1 if it can be loaded, 0 (for compatibility)
C++ method:
VstInt32 AudioEffectX::beginLoadProgram(VstPatchChunkInfo* ptr)
Delphi method:
function AudioEffectX.beginLoadProgram(ptr: PVstPatchChunkInfo): VstInt32;
VstPatchChunkInfo structure:
struct VstPatchChunkInfo
{
VstInt32 version; // Format Version (should be 1)
VstInt32 pluginUniqueID; // UniqueID of the plug-in
VstInt32 pluginVersion; // Plug-in Version
VstInt32 numElements; // Number of Programs (Bank) or Parameters (Program)
char future[48]; // Reserved for future use
};