Fix persistence settings for VST2/3 instances

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2023-05-19 00:18:25 +02:00
parent d80c2e5c96
commit 03055c2563
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
3 changed files with 33 additions and 21 deletions

View file

@ -554,27 +554,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB
INFO("Initializing plugin browser DB"); INFO("Initializing plugin browser DB");
app::browserInit(); app::browserInit();
if (isRealInstance) loadSettings(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;
#ifdef CARDINAL_INIT_OSC_THREAD #ifdef CARDINAL_INIT_OSC_THREAD
INFO("Initializing OSC Remote control"); INFO("Initializing OSC Remote control");
@ -636,6 +616,33 @@ Initializer::~Initializer()
logger::destroy(); 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 END_NAMESPACE_DISTRHO

View file

@ -104,6 +104,7 @@ struct Initializer
Initializer(const CardinalBasePlugin* plugin, const CardinalBaseUI* ui); Initializer(const CardinalBasePlugin* plugin, const CardinalBaseUI* ui);
~Initializer(); ~Initializer();
void loadSettings(bool isRealInstance);
}; };
#ifndef HEADLESS #ifndef HEADLESS

View file

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