Browse Source

Still not working

Signed-off-by: falkTX <falktx@falktx.com>
pull/351/head
falkTX 4 years ago
parent
commit
c2ac64abf9
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 40 additions and 9 deletions
  1. +40
    -9
      distrho/src/DistrhoPluginVST3.cpp

+ 40
- 9
distrho/src/DistrhoPluginVST3.cpp View File

@@ -1868,6 +1868,21 @@ public:
// #endif

setNormalizedPluginParameterValue(rindex, normalized);

// if (latencyHasChanged || parametersHaveChanged)
// {
DISTRHO_SAFE_ASSERT_RETURN(fComponentHandler != nullptr, V3_OK);

int32_t flags = 0x0;

// if (latencyHasChanged)
// flags |= V3_RESTART_LATENCY_CHANGED;
// if (parametersHaveChanged)
flags |= V3_RESTART_PARAM_VALUES_CHANGED;

v3_cpp_obj(fComponentHandler)->restart_component(fComponentHandler, flags);
// }

return V3_OK;
}

@@ -2173,20 +2188,23 @@ private:
int32_t index;
float curValue;

bool latencyHasChanged = false;
bool parametersHaveChanged = false;

for (uint32_t i=0, count=fPlugin.getParameterCount(); i < count; ++i)
{
if (fParameterValuesChangedDuringRT[i])
{
fParameterValuesChangedDuringRT[i] = false;
curValue = fPlugin.getParameterValue(i);
fParameterValues[i] = curValue = fPlugin.getParameterValue(i);
}
else if (fPlugin.isParameterOutput(i))
{
// NOTE: no output parameter support in VST3, simulate it here
curValue = fPlugin.getParameterValue(i);

// if (d_isEqual(curValue, fParameterValues[i]))
// continue;
if (d_isEqual(curValue, fParameterValues[i]))
continue;

fParameterValues[i] = curValue;
#if DISTRHO_PLUGIN_HAS_UI
@@ -2219,12 +2237,12 @@ private:

curValue = fPlugin.getParameterRanges(i).getNormalizedValue(curValue);

v3_cpp_obj(queue)->add_point(queue, 0, curValue, &index);
DISTRHO_SAFE_ASSERT(v3_cpp_obj(queue)->add_point(queue, 0, curValue, &index) == V3_OK);

if (offset != 0)
v3_cpp_obj(queue)->add_point(queue, offset, curValue, &index);

d_stdout("sending change of %d %f", index, curValue);
parametersHaveChanged = true;
}

#if DISTRHO_PLUGIN_WANT_LATENCY
@@ -2233,11 +2251,23 @@ private:
if (fLastKnownLatency != latency)
{
fLastKnownLatency = latency;

if (fComponentHandler != nullptr)
v3_cpp_obj(fComponentHandler)->restart_component(fComponentHandler, V3_RESTART_LATENCY_CHANGED);
latencyHasChanged = true;
}
#endif

// if (latencyHasChanged || parametersHaveChanged)
// {
// DISTRHO_SAFE_ASSERT_RETURN(fComponentHandler != nullptr,);
//
// int32_t flags = 0x0;
//
// if (latencyHasChanged)
// flags |= V3_RESTART_LATENCY_CHANGED;
// if (parametersHaveChanged)
// flags |= V3_RESTART_PARAM_VALUES_CHANGED;
//
// v3_cpp_obj(fComponentHandler)->restart_component(fComponentHandler, flags);
// }
}

#if DISTRHO_PLUGIN_HAS_UI
@@ -3082,8 +3112,9 @@ struct dpf_edit_controller : v3_edit_controller_cpp {
return vst3->getParameterNormalized(index);
}

static v3_result V3_API set_parameter_normalised(void* self, v3_param_id index, double normalised)
static v3_result V3_API set_parameter_normalised(void* const self, const v3_param_id index, const double normalised)
{
// d_stdout("dpf_edit_controller::set_parameter_normalised => %p %u %f", self, index, normalised);
dpf_edit_controller* const controller = *static_cast<dpf_edit_controller**>(self);

PluginVst3* const vst3 = controller->vst3;


Loading…
Cancel
Save