diff --git a/carla b/carla index 91dac6b..65dd56e 160000 --- a/carla +++ b/carla @@ -1 +1 @@ -Subproject commit 91dac6b693c6146a74da642b0b4f9ee7d5bc1e5b +Subproject commit 65dd56ea73526af7f3e5ffe45f0587a7c62e5f90 diff --git a/plugins/Common/IldaeilUI.cpp b/plugins/Common/IldaeilUI.cpp index e8edea4..30e0b3a 100644 --- a/plugins/Common/IldaeilUI.cpp +++ b/plugins/Common/IldaeilUI.cpp @@ -219,6 +219,8 @@ public: fPluginHasEmbedUI = false; if (fPluginGenericUI == nullptr) createPluginGenericUI(handle, info); + else + updatePluginGenericUI(handle); const double scaleFactor = getScaleFactor(); setSize(kGenericWidth * scaleFactor, (kGenericHeight + kExtraHeight) * scaleFactor); } @@ -307,6 +309,20 @@ public: fPluginGenericUI = ui; } + void updatePluginGenericUI(const CarlaHostHandle handle) + { + PluginGenericUI* const ui = fPluginGenericUI; + DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr,); + + for (uint32_t i=0; i < ui->parameterCount; ++i) + { + ui->values[i] = carla_get_current_parameter_value(handle, 0, ui->parameters[i].rindex); + + if (ui->parameters[i].boolean) + ui->parameters[i].bvalue = ui->values[i] > ui->parameters[i].min; + } + } + protected: void pluginWindowResized(uint width, uint height) override { @@ -457,6 +473,8 @@ protected: if (fPluginGenericUI == nullptr) createPluginGenericUI(handle, carla_get_plugin_info(handle, 0)); + else + updatePluginGenericUI(handle); const double scaleFactor = getScaleFactor(); setSize(std::max(getWidth(), static_cast(kGenericWidth * scaleFactor + 0.5)),