And it works like a charm
Here some code snippets as an example implementation:
PluginProcessor.h:
Inheriting from VSTCallbackHandler:
class StereoEncoderAudioProcessor : public AudioProcessor, public VSTCallbackHandler
overriding methods:
pointer_sized_int handleVstManufacturerSpecific (int32 index, pointer_sized_int value,
void* ptr, float opt) override { return 0; };
pointer_sized_int handleVstPluginCanDo (int32 index, pointer_sized_int value,
void* ptr, float opt) override;
PluginProcessor.cpp:
E.g. implementing Reaper’s recently supported wantsChannelCountNotifications canDo
pointer_sized_int StereoEncoderAudioProcessor::handleVstPluginCanDo (int32 index,
pointer_sized_int value, void* ptr, float opt)
{
auto text = (const char*) ptr;
auto matches = [=](const char* s) { return strcmp (text, s) == 0; };
if (matches ("wantsChannelCountNotifications"))
return 1;
return 0;
}