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

Demod Analyzer feature: Make settings assignments atomic. Part of #1329

This commit is contained in:
f4exb
2022-11-23 23:08:41 +01:00
parent 5f3052ef70
commit c4b33d87be
8 changed files with 159 additions and 65 deletions
@@ -76,7 +76,13 @@ bool DemodAnalyzerGUI::handleMessage(const Message& message)
{
qDebug("DemodAnalyzerGUI::handleMessage: DemodAnalyzer::MsgConfigureDemodAnalyzer");
const DemodAnalyzer::MsgConfigureDemodAnalyzer& cfg = (DemodAnalyzer::MsgConfigureDemodAnalyzer&) message;
m_settings = cfg.getSettings();
if (cfg.getForce()) {
m_settings = cfg.getSettings();
} else {
m_settings.applySettings(cfg.getSettingsKeys(), cfg.getSettings());
}
blockApplySettings(true);
ui->spectrumGUI->updateSettings();
ui->scopeGUI->updateSettings();
@@ -282,6 +288,14 @@ void DemodAnalyzerGUI::onMenuDialogCalled(const QPoint &p)
setTitle(m_settings.m_title);
setTitleColor(m_settings.m_rgbColor);
m_settingsKeys.append("title");
m_settingsKeys.append("rgbColor");
m_settingsKeys.append("useReverseAPI");
m_settingsKeys.append("reverseAPIAddress");
m_settingsKeys.append("reverseAPIPort");
m_settingsKeys.append("reverseAPIFeatureSetIndex");
m_settingsKeys.append("reverseAPIFeatureIndex");
applySettings();
}
@@ -330,6 +344,7 @@ void DemodAnalyzerGUI::on_log2Decim_currentIndexChanged(int index)
ui->glSpectrum->setSampleRate(m_sampleRate/(1<<m_settings.m_log2Decim));
m_scopeVis->setLiveRate(m_sampleRate/(1<<m_settings.m_log2Decim));
displaySampleRate(m_sampleRate/(1<<m_settings.m_log2Decim));
m_settingsKeys.append("log2Decim");
applySettings();
}
@@ -337,6 +352,7 @@ void DemodAnalyzerGUI::on_record_toggled(bool checked)
{
ui->showFileDialog->setEnabled(!checked);
m_settings.m_recordToFile = checked;
m_settingsKeys.append("recordToFile");
applySettings();
}
@@ -362,6 +378,7 @@ void DemodAnalyzerGUI::on_showFileDialog_clicked(bool checked)
{
m_settings.m_fileRecordName = fileNames.at(0);
ui->fileNameText->setText(m_settings.m_fileRecordName);
m_settingsKeys.append("fileRecordName");
applySettings();
}
}
@@ -371,6 +388,7 @@ void DemodAnalyzerGUI::on_recordSilenceTime_valueChanged(int value)
{
m_settings.m_recordSilenceTime = value;
ui->recordSilenceText->setText(tr("%1").arg(value / 10.0, 0, 'f', 1));
m_settingsKeys.append("recordSilenceTime");
applySettings();
}
@@ -414,9 +432,11 @@ void DemodAnalyzerGUI::applySettings(bool force)
{
if (m_doApplySettings)
{
DemodAnalyzer::MsgConfigureDemodAnalyzer* message = DemodAnalyzer::MsgConfigureDemodAnalyzer::create( m_settings, force);
DemodAnalyzer::MsgConfigureDemodAnalyzer* message = DemodAnalyzer::MsgConfigureDemodAnalyzer::create( m_settings, m_settingsKeys, force);
m_demodAnalyzer->getInputMessageQueue()->push(message);
}
m_settingsKeys.clear();
}
void DemodAnalyzerGUI::makeUIConnections()