mirror of
https://github.com/gqrx-sdr/gqrx.git
synced 2024-09-21 10:47:10 +00:00
Merge pull request #1043 from vladisslav2011/store_demod_settings
Store missing demod settings to the config file and restore at startup
This commit is contained in:
commit
622bbaa260
@ -1,6 +1,7 @@
|
||||
|
||||
2.16: In progress...
|
||||
|
||||
NEW: Restore AM & AM-Sync settings between sessions.
|
||||
FIXED: Loading of narrow FM tau setting.
|
||||
REMOVED: Support for GNU Radio 3.7.
|
||||
|
||||
|
@ -1103,6 +1103,7 @@ void MainWindow::selectDemod(int mode_idx)
|
||||
|
||||
case DockRxOpt::MODE_AM:
|
||||
rx->set_demod(receiver::RX_DEMOD_AM);
|
||||
rx->set_am_dcr(uiDockRxOpt->currentAmDcr());
|
||||
ui->plotter->setDemodRanges(-40000, -200, 200, 40000, true);
|
||||
uiDockAudio->setFftRange(0,6000);
|
||||
click_res = 100;
|
||||
@ -1110,6 +1111,8 @@ void MainWindow::selectDemod(int mode_idx)
|
||||
|
||||
case DockRxOpt::MODE_AM_SYNC:
|
||||
rx->set_demod(receiver::RX_DEMOD_AMSYNC);
|
||||
rx->set_amsync_dcr(uiDockRxOpt->currentAmsyncDcr());
|
||||
rx->set_amsync_pll_bw(uiDockRxOpt->currentAmsyncPll());
|
||||
ui->plotter->setDemodRanges(-40000, -200, 200, 40000, true);
|
||||
uiDockAudio->setFftRange(0,6000);
|
||||
click_res = 100;
|
||||
|
@ -192,6 +192,26 @@ double CDemodOptions::getEmph(void) const
|
||||
return tau_from_index(ui->emphSelector->currentIndex());
|
||||
}
|
||||
|
||||
void CDemodOptions::setDcr(bool enabled)
|
||||
{
|
||||
ui->dcrCheckBox->setChecked(enabled);
|
||||
}
|
||||
|
||||
bool CDemodOptions::getDcr(void) const
|
||||
{
|
||||
return ui->dcrCheckBox->isChecked();
|
||||
}
|
||||
|
||||
void CDemodOptions::setSyncDcr(bool enabled)
|
||||
{
|
||||
ui->syncdcrCheckBox->setChecked(enabled);
|
||||
}
|
||||
|
||||
bool CDemodOptions::getSyncDcr(void) const
|
||||
{
|
||||
return ui->syncdcrCheckBox->isChecked();
|
||||
}
|
||||
|
||||
void CDemodOptions::on_maxdevSelector_activated(int index)
|
||||
{
|
||||
emit fmMaxdevSelected(maxdev_from_index(index));
|
||||
@ -202,7 +222,7 @@ void CDemodOptions::on_emphSelector_activated(int index)
|
||||
emit fmEmphSelected(tau_from_index(index));
|
||||
}
|
||||
|
||||
void CDemodOptions::on_dcrCheckBox_toggled(bool checked)
|
||||
void CDemodOptions::on_dcrCheckBox_clicked(bool checked)
|
||||
{
|
||||
emit amDcrToggled(checked);
|
||||
}
|
||||
@ -212,7 +232,7 @@ void CDemodOptions::on_cwOffsetSpin_valueChanged(int value)
|
||||
emit cwOffsetChanged(value);
|
||||
}
|
||||
|
||||
void CDemodOptions::on_syncdcrCheckBox_toggled(bool checked)
|
||||
void CDemodOptions::on_syncdcrCheckBox_clicked(bool checked)
|
||||
{
|
||||
emit amSyncDcrToggled(checked);
|
||||
}
|
||||
|
@ -70,6 +70,12 @@ public:
|
||||
void setPllBw(float pll_bw);
|
||||
float getPllBw(void) const;
|
||||
|
||||
void setDcr(bool enabled);
|
||||
bool getDcr(void) const;
|
||||
|
||||
void setSyncDcr(bool enabled);
|
||||
bool getSyncDcr(void) const;
|
||||
|
||||
signals:
|
||||
/*! \brief Signal emitted when new FM deviation is selected. */
|
||||
void fmMaxdevSelected(float max_dev);
|
||||
@ -92,9 +98,9 @@ signals:
|
||||
private slots:
|
||||
void on_maxdevSelector_activated(int index);
|
||||
void on_emphSelector_activated(int index);
|
||||
void on_dcrCheckBox_toggled(bool checked);
|
||||
void on_dcrCheckBox_clicked(bool checked);
|
||||
void on_cwOffsetSpin_valueChanged(int value);
|
||||
void on_syncdcrCheckBox_toggled(bool checked);
|
||||
void on_syncdcrCheckBox_clicked(bool checked);
|
||||
void on_pllBwSelector_activated(int index);
|
||||
|
||||
private:
|
||||
|
@ -373,6 +373,20 @@ double DockRxOpt::currentSquelchLevel() const
|
||||
return ui->sqlSpinBox->value();
|
||||
}
|
||||
|
||||
bool DockRxOpt::currentAmDcr() const
|
||||
{
|
||||
return demodOpt->getDcr();
|
||||
}
|
||||
|
||||
bool DockRxOpt::currentAmsyncDcr() const
|
||||
{
|
||||
return demodOpt->getSyncDcr();
|
||||
}
|
||||
|
||||
float DockRxOpt::currentAmsyncPll() const
|
||||
{
|
||||
return demodOpt->getPllBw();
|
||||
}
|
||||
|
||||
/** Get filter lo/hi for a given mode and preset */
|
||||
void DockRxOpt::getFilterPreset(int mode, int preset, int * lo, int * hi) const
|
||||
@ -458,6 +472,14 @@ void DockRxOpt::readSettings(QSettings *settings)
|
||||
if (settings->value("receiver/agc_off", false).toBool())
|
||||
ui->agcPresetCombo->setCurrentIndex(4);
|
||||
|
||||
demodOpt->setDcr(settings->value("receiver/am_dcr", true).toBool());
|
||||
|
||||
demodOpt->setSyncDcr(settings->value("receiver/amsync_dcr", true).toBool());
|
||||
|
||||
int_val = settings->value("receiver/amsync_pllbw", 1000).toInt(&conv_ok);
|
||||
if (conv_ok)
|
||||
demodOpt->setPllBw(int_val / 1.0e6);
|
||||
|
||||
int_val = MODE_AM;
|
||||
if (settings->contains("receiver/demod")) {
|
||||
if (settings->value("configversion").toInt(&conv_ok) >= 3) {
|
||||
@ -548,6 +570,22 @@ void DockRxOpt::saveSettings(QSettings *settings)
|
||||
settings->setValue("receiver/agc_off", true);
|
||||
else
|
||||
settings->remove("receiver/agc_off");
|
||||
|
||||
if (!demodOpt->getDcr())
|
||||
settings->setValue("receiver/am_dcr", false);
|
||||
else
|
||||
settings->remove("receiver/am_dcr");
|
||||
|
||||
if (!demodOpt->getSyncDcr())
|
||||
settings->setValue("receiver/amsync_dcr", false);
|
||||
else
|
||||
settings->remove("receiver/amsync_dcr");
|
||||
|
||||
int_val = qRound(currentAmsyncPll() * 1.0e6);
|
||||
if (int_val != 1000)
|
||||
settings->setValue("receiver/amsync_pllbw", int_val);
|
||||
else
|
||||
settings->remove("receiver/amsync_pllbw");
|
||||
}
|
||||
|
||||
/** RX frequency changed through spin box */
|
||||
|
@ -107,6 +107,10 @@ public:
|
||||
double currentEmph() const;
|
||||
double currentSquelchLevel() const;
|
||||
|
||||
bool currentAmDcr() const;
|
||||
bool currentAmsyncDcr() const;
|
||||
float currentAmsyncPll() const;
|
||||
|
||||
void getFilterPreset(int mode, int preset, int * lo, int * hi) const;
|
||||
int getCwOffset() const;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user