Browse Source

Fix persistence settings for VST2/3 instances

Signed-off-by: falkTX <falktx@falktx.com>
tags/23.07
falkTX 2 years ago
parent
commit
03055c2563
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
3 changed files with 33 additions and 21 deletions
  1. +28
    -21
      src/CardinalCommon.cpp
  2. +1
    -0
      src/CardinalCommon.hpp
  3. +4
    -0
      src/CardinalPlugin.cpp

+ 28
- 21
src/CardinalCommon.cpp View File

@@ -554,27 +554,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB
INFO("Initializing plugin browser DB");
app::browserInit();

if (isRealInstance)
{
INFO("Loading settings");
settings::load();
shouldSaveSettings = true;
}

// enforce settings that do not make sense as anything else
settings::safeMode = false;
settings::token.clear();
settings::windowMaximized = false;
settings::windowPos = math::Vec(0, 0);
settings::pixelRatio = 0.0;
settings::sampleRate = 0;
settings::threadCount = 1;
settings::frameSwapInterval = 1;
settings::autosaveInterval = 0;
settings::skipLoadOnLaunch = true;
settings::autoCheckUpdates = false;
settings::showTipsOnLaunch = false;
settings::tipIndex = -1;
loadSettings(isRealInstance);

#ifdef CARDINAL_INIT_OSC_THREAD
INFO("Initializing OSC Remote control");
@@ -636,6 +616,33 @@ Initializer::~Initializer()
logger::destroy();
}

void Initializer::loadSettings(const bool isRealInstance)
{
using namespace rack;

if (isRealInstance)
{
INFO("Loading settings");
settings::load();
shouldSaveSettings = true;
}

// enforce settings that do not make sense as anything else
settings::safeMode = false;
settings::token.clear();
settings::windowMaximized = false;
settings::windowPos = math::Vec(0, 0);
settings::pixelRatio = 0.0;
settings::sampleRate = 0;
settings::threadCount = 1;
settings::frameSwapInterval = 1;
settings::autosaveInterval = 0;
settings::skipLoadOnLaunch = true;
settings::autoCheckUpdates = false;
settings::showTipsOnLaunch = false;
settings::tipIndex = -1;
}

// --------------------------------------------------------------------------------------------------------------------

END_NAMESPACE_DISTRHO


+ 1
- 0
src/CardinalCommon.hpp View File

@@ -104,6 +104,7 @@ struct Initializer

Initializer(const CardinalBasePlugin* plugin, const CardinalBaseUI* ui);
~Initializer();
void loadSettings(bool isRealInstance);
};

#ifndef HEADLESS


+ 4
- 0
src/CardinalPlugin.cpp View File

@@ -217,6 +217,10 @@ public:
fNextExpectedFrame(0),
fWasBypassed(false)
{
// check if first time loading a real instance
if (!fInitializer->shouldSaveSettings && !isDummyInstance())
fInitializer->loadSettings(true);
#if CARDINAL_VARIANT_MINI || !defined(HEADLESS)
fWindowParameters[kWindowParameterShowTooltips] = rack::settings::tooltips ? 1.f : 0.f;
fWindowParameters[kWindowParameterCableOpacity] = std::min(100.f, std::max(0.f, rack::settings::cableOpacity * 100));


Loading…
Cancel
Save