mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
VST3 Client: Add host API checks to setBusArrangements and activateBus
This commit is contained in:
parent
364b7f7316
commit
18300abde9
1 changed files with 14 additions and 0 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue