Browse Source

VST3 Client: Add host API checks to setBusArrangements and activateBus

pull/22/head
reuk 3 years ago
parent
commit
18300abde9
No known key found for this signature in database GPG Key ID: FCB43929F012EE5C
1 changed files with 14 additions and 0 deletions
  1. +14
    -0
      modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp

+ 14
- 0
modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp View File

@@ -2338,6 +2338,8 @@ public:
//==============================================================================
tresult PLUGIN_API setActive (TBool state) override
{
active = (state != 0);
if (! state)
{
getPluginInstance().releaseResources();
@@ -2904,6 +2906,9 @@ public:
tresult PLUGIN_API activateBus (Vst::MediaType type, Vst::BusDirection dir, Steinberg::int32 index, TBool state) override
{
// The host is misbehaving! The plugin must be deactivated before setting new arrangements.
jassert (! active);
if (type == Vst::kEvent)
{
#if JucePlugin_WantsMidiInput
@@ -2979,6 +2984,13 @@ public:
tresult PLUGIN_API setBusArrangements (Vst::SpeakerArrangement* inputs, Steinberg::int32 numIns,
Vst::SpeakerArrangement* outputs, Steinberg::int32 numOuts) override
{
if (active)
{
// The host is misbehaving! The plugin must be deactivated before setting new arrangements.
jassertfalse;
return kResultFalse;
}
auto numInputBuses = pluginInstance->getBusCount (true);
auto numOutputBuses = pluginInstance->getBusCount (false);
@@ -3536,6 +3548,8 @@ private:
AudioBuffer<float> emptyBufferFloat;
AudioBuffer<double> emptyBufferDouble;
bool active = false;
#if JucePlugin_WantsMidiInput
std::atomic<bool> isMidiInputBusEnabled { true };
#endif


Loading…
Cancel
Save