Browse Source

Fix vst3 build with instance access

Signed-off-by: falkTX <falktx@falktx.com>
pull/357/head
falkTX 3 years ago
parent
commit
0452b25ff0
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 8 additions and 2 deletions
  1. +6
    -2
      distrho/src/DistrhoPluginVST3.cpp
  2. +2
    -0
      distrho/src/DistrhoUIVST3.cpp

+ 6
- 2
distrho/src/DistrhoPluginVST3.cpp View File

@@ -1029,16 +1029,16 @@ public:
fPlugin.setSampleRate(setup->sample_rate, true); fPlugin.setSampleRate(setup->sample_rate, true);
fPlugin.setBufferSize(setup->max_block_size, true); fPlugin.setBufferSize(setup->max_block_size, true);


#if DPF_VST3_USES_SEPARATE_CONTROLLER
#if DPF_VST3_USES_SEPARATE_CONTROLLER
fCachedParameterValues[kVst3InternalParameterBufferSize] = setup->max_block_size; fCachedParameterValues[kVst3InternalParameterBufferSize] = setup->max_block_size;
fParameterValuesChangedDuringProcessing[kVst3InternalParameterBufferSize] = true; fParameterValuesChangedDuringProcessing[kVst3InternalParameterBufferSize] = true;


fCachedParameterValues[kVst3InternalParameterSampleRate] = setup->sample_rate; fCachedParameterValues[kVst3InternalParameterSampleRate] = setup->sample_rate;
fParameterValuesChangedDuringProcessing[kVst3InternalParameterSampleRate] = true; fParameterValuesChangedDuringProcessing[kVst3InternalParameterSampleRate] = true;
#endif
#if DISTRHO_PLUGIN_HAS_UI #if DISTRHO_PLUGIN_HAS_UI
fParameterValueChangesForUI[kVst3InternalParameterSampleRate] = true; fParameterValueChangesForUI[kVst3InternalParameterSampleRate] = true;
#endif #endif
#endif


if (active) if (active)
fPlugin.activate(); fPlugin.activate();
@@ -1874,9 +1874,11 @@ public:
{ {
fConnectedToUI = true; fConnectedToUI = true;


#if DPF_VST3_USES_SEPARATE_CONTROLLER
fParameterValueChangesForUI[kVst3InternalParameterSampleRate] = false; fParameterValueChangesForUI[kVst3InternalParameterSampleRate] = false;
sendParameterSetToUI(kVst3InternalParameterSampleRate, sendParameterSetToUI(kVst3InternalParameterSampleRate,
fCachedParameterValues[kVst3InternalParameterSampleRate]); fCachedParameterValues[kVst3InternalParameterSampleRate]);
#endif


#if DISTRHO_PLUGIN_WANT_PROGRAMS #if DISTRHO_PLUGIN_WANT_PROGRAMS
fParameterValueChangesForUI[kVst3InternalParameterProgram] = false; fParameterValueChangesForUI[kVst3InternalParameterProgram] = false;
@@ -1921,12 +1923,14 @@ public:


if (std::strcmp(msgid, "idle") == 0) if (std::strcmp(msgid, "idle") == 0)
{ {
#if DPF_VST3_USES_SEPARATE_CONTROLLER
if (fParameterValueChangesForUI[kVst3InternalParameterSampleRate]) if (fParameterValueChangesForUI[kVst3InternalParameterSampleRate])
{ {
fParameterValueChangesForUI[kVst3InternalParameterSampleRate] = false; fParameterValueChangesForUI[kVst3InternalParameterSampleRate] = false;
sendParameterSetToUI(kVst3InternalParameterSampleRate, sendParameterSetToUI(kVst3InternalParameterSampleRate,
fCachedParameterValues[kVst3InternalParameterSampleRate]); fCachedParameterValues[kVst3InternalParameterSampleRate]);
} }
#endif


#if DISTRHO_PLUGIN_WANT_PROGRAMS #if DISTRHO_PLUGIN_WANT_PROGRAMS
if (fParameterValueChangesForUI[kVst3InternalParameterProgram]) if (fParameterValueChangesForUI[kVst3InternalParameterProgram])


+ 2
- 0
distrho/src/DistrhoUIVST3.cpp View File

@@ -379,10 +379,12 @@ public:
{ {
switch (rindex) switch (rindex)
{ {
#if DPF_VST3_USES_SEPARATE_CONTROLLER
case kVst3InternalParameterSampleRate: case kVst3InternalParameterSampleRate:
DISTRHO_SAFE_ASSERT_RETURN(value >= 0.0, V3_INVALID_ARG); DISTRHO_SAFE_ASSERT_RETURN(value >= 0.0, V3_INVALID_ARG);
fUI.setSampleRate(value, true); fUI.setSampleRate(value, true);
break; break;
#endif
#if DISTRHO_PLUGIN_WANT_PROGRAMS #if DISTRHO_PLUGIN_WANT_PROGRAMS
case kVst3InternalParameterProgram: case kVst3InternalParameterProgram:
DISTRHO_SAFE_ASSERT_RETURN(value >= 0.0, V3_INVALID_ARG); DISTRHO_SAFE_ASSERT_RETURN(value >= 0.0, V3_INVALID_ARG);


Loading…
Cancel
Save