Jack Settings bug fixes.

This commit is contained in:
Robin Davies
2021-08-30 04:34:07 -04:00
parent 57ecc0d9ef
commit 6cb1300cc9
7 changed files with 135 additions and 39 deletions
+15 -1
View File
@@ -76,6 +76,11 @@ void PiPedalModel::Close()
PiPedalModel::~PiPedalModel()
{
CurrentPreset currentPreset;
currentPreset.modified_ = this->hasPresetChanged;
currentPreset.preset_ = this->pedalBoard;
storage.SaveCurrentPreset(currentPreset);
if (jackHost)
{
jackHost->Close();
@@ -109,7 +114,15 @@ void PiPedalModel::Load(const PiPedalConfiguration &configuration)
}
lv2Host.Load(configuration.GetLv2Path().c_str());
this->pedalBoard = storage.GetCurrentPreset();
this->pedalBoard = storage.GetCurrentPreset(); // the current *saved* preset.
// the current edited preset, saved only across orderly shutdowns.
CurrentPreset currentPreset;
if (storage.RestoreCurrentPreset(&currentPreset))
{
this->pedalBoard = currentPreset.preset_;
this->hasPresetChanged = currentPreset.modified_;
}
updateDefaults(&this->pedalBoard);
std::unique_ptr<JackHost> p{JackHost::CreateInstance(lv2Host.asIHost())};
@@ -373,6 +386,7 @@ void PiPedalModel::firePresetsChanged(int64_t clientId)
}
}
void PiPedalModel::saveCurrentPreset(int64_t clientId)
{
std::lock_guard(this->mutex);