1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-07 08:24:43 -04:00

VOR Loclizer feature: Make settings assignments atomic. Part of #1329

This commit is contained in:
f4exb
2022-11-30 22:00:26 +01:00
parent c61bc00260
commit 8ccdcb7e30
14 changed files with 359 additions and 74 deletions
@@ -112,7 +112,7 @@ bool VorLocalizerWorker::handleMessage(const Message& cmd)
MsgConfigureVORLocalizerWorker& cfg = (MsgConfigureVORLocalizerWorker&) cmd;
qDebug() << "VorLocalizerWorker::handleMessage: MsgConfigureVORLocalizerWorker";
applySettings(cfg.getSettings(), cfg.getForce());
applySettings(cfg.getSettings(), cfg.getSettingsKeys(), cfg.getForce());
return true;
}
@@ -129,12 +129,9 @@ bool VorLocalizerWorker::handleMessage(const Message& cmd)
}
}
void VorLocalizerWorker::applySettings(const VORLocalizerSettings& settings, bool force)
void VorLocalizerWorker::applySettings(const VORLocalizerSettings& settings, const QList<QString>& settingsKeys, bool force)
{
qDebug() << "VorLocalizerWorker::applySettings:"
<< " m_title: " << settings.m_title
<< " m_rgbColor: " << settings.m_rgbColor
<< " force: " << force;
qDebug() << "VorLocalizerWorker::applySettings:" << settings.getDebugString(settingsKeys, force) << " force: " << force;
// Remove sub-channels no longer needed
for (int i = 0; i < m_vorChannels.size(); i++)
@@ -190,11 +187,15 @@ void VorLocalizerWorker::applySettings(const VORLocalizerSettings& settings, boo
}
}
if ((settings.m_rrTime != m_settings.m_rrTime) || force) {
if (settingsKeys.contains("rrTime") || force) {
m_rrTimer.start(settings.m_rrTime * 1000);
}
m_settings = settings;
if (force) {
m_settings = settings;
} else {
m_settings.applySettings(settingsKeys, settings);
}
}
void VorLocalizerWorker::updateHardware()