1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-15 20:28:52 -04:00

AMBE feature: creation and changes to DSD demod

This commit is contained in:
f4exb
2022-05-24 15:18:55 +02:00
parent ee65186057
commit 1d72798d42
28 changed files with 2553 additions and 7 deletions
@@ -113,6 +113,13 @@ bool DSDDemodGUI::handleMessage(const Message& message)
updateAbsoluteCenterFrequency();
return true;
}
else if (DSDDemod::MsgReportAvailableAMBEFeatures::match(message))
{
DSDDemod::MsgReportAvailableAMBEFeatures& report = (DSDDemod::MsgReportAvailableAMBEFeatures&) message;
m_availableAMBEFeatures = report.getFeatures();
updateAMBEFeaturesList();
return true;
}
else
{
return false;
@@ -263,6 +270,19 @@ void DSDDemodGUI::on_symbolPLLLock_toggled(bool checked)
applySettings();
}
void DSDDemodGUI::on_ambeSupport_clicked(bool checked)
{
m_settings.m_connectAMBE = checked;
m_settings.m_ambeFeatureIndex = m_availableAMBEFeatures[ui->ambeFeatures->currentIndex()].m_featureIndex;
applySettings();
}
void DSDDemodGUI::on_ambeFeatures_currentIndexChanged(int index)
{
m_settings.m_ambeFeatureIndex = m_availableAMBEFeatures[index].m_featureIndex;
applySettings();
}
void DSDDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
@@ -490,6 +510,17 @@ void DSDDemodGUI::displaySettings()
ui->traceDecayText->setText(QString("%1").arg(m_settings.m_traceDecay));
m_scopeVisXY->setDecay(m_settings.m_traceDecay);
ui->ambeSupport->setChecked(m_settings.m_connectAMBE);
for (int i = 0; i < ui->ambeFeatures->count(); i++)
{
if (ui->ambeFeatures->itemData(i).toInt() == m_settings.m_ambeFeatureIndex)
{
ui->ambeFeatures->setCurrentIndex(i);
break;
}
}
updateIndexLabel();
getRollupContents()->restoreState(m_rollupState);
@@ -497,6 +528,32 @@ void DSDDemodGUI::displaySettings()
blockApplySettings(false);
}
void DSDDemodGUI::updateAMBEFeaturesList()
{
ui->ambeFeatures->blockSignals(true);
ui->ambeSupport->blockSignals(true);
ui->ambeFeatures->clear();
bool unsetAMBE = true;
for (int i = 0; i < m_availableAMBEFeatures.count(); i++)
{
ui->ambeFeatures->addItem(tr("F:%1").arg(m_availableAMBEFeatures[i].m_featureIndex), m_availableAMBEFeatures[i].m_featureIndex);
if (m_settings.m_ambeFeatureIndex == m_availableAMBEFeatures[i].m_featureIndex)
{
unsetAMBE = false;
ui->ambeFeatures->setCurrentIndex(i);
}
}
if (unsetAMBE) {
ui->ambeSupport->setChecked(false);
}
ui->ambeSupport->blockSignals(false);
ui->ambeFeatures->blockSignals(false);
}
void DSDDemodGUI::applySettings(bool force)
{
if (m_doApplySettings)
@@ -658,6 +715,8 @@ void DSDDemodGUI::makeUIConnections()
QObject::connect(ui->audioMute, &QToolButton::toggled, this, &DSDDemodGUI::on_audioMute_toggled);
QObject::connect(ui->symbolPLLLock, &QToolButton::toggled, this, &DSDDemodGUI::on_symbolPLLLock_toggled);
QObject::connect(ui->viewStatusLog, &QPushButton::clicked, this, &DSDDemodGUI::on_viewStatusLog_clicked);
QObject::connect(ui->ambeSupport, &QCheckBox::clicked, this, &DSDDemodGUI::on_ambeSupport_clicked);
QObject::connect(ui->ambeFeatures, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DSDDemodGUI::on_ambeFeatures_currentIndexChanged);
}
void DSDDemodGUI::updateAbsoluteCenterFrequency()