mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-03 13:11:20 -05:00 
			
		
		
		
	WDSP receiver: Removed SNB
This commit is contained in:
		
							parent
							
								
									7be39b1b55
								
							
						
					
					
						commit
						8b10dd05ff
					
				@ -21,6 +21,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
#include <QNetworkRequest>
 | 
					#include <QNetworkRequest>
 | 
				
			||||||
 | 
					#include <QRecursiveMutex>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "dsp/mimochannel.h"
 | 
					#include "dsp/mimochannel.h"
 | 
				
			||||||
#include "dsp/spectrumvis.h"
 | 
					#include "dsp/spectrumvis.h"
 | 
				
			||||||
@ -185,7 +186,7 @@ private:
 | 
				
			|||||||
    ScopeVis m_scopeSink;
 | 
					    ScopeVis m_scopeSink;
 | 
				
			||||||
    QThread *m_thread;
 | 
					    QThread *m_thread;
 | 
				
			||||||
    InterferometerBaseband* m_basebandSink;
 | 
					    InterferometerBaseband* m_basebandSink;
 | 
				
			||||||
    QMutex m_mutex;
 | 
					    QRecursiveMutex m_mutex;
 | 
				
			||||||
    bool m_running;
 | 
					    bool m_running;
 | 
				
			||||||
    InterferometerSettings m_settings;
 | 
					    InterferometerSettings m_settings;
 | 
				
			||||||
    MessageQueue *m_guiMessageQueue;  //!< Input message queue to the GUI
 | 
					    MessageQueue *m_guiMessageQueue;  //!< Input message queue to the GUI
 | 
				
			||||||
 | 
				
			|||||||
@ -29,14 +29,6 @@ WDSPRxDNRDialog::~WDSPRxDNRDialog()
 | 
				
			|||||||
    delete ui;
 | 
					    delete ui;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void WDSPRxDNRDialog::setSNB(bool snb)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    ui->snb->blockSignals(true);
 | 
					 | 
				
			||||||
    ui->snb->setChecked(snb);
 | 
					 | 
				
			||||||
    ui->snb->blockSignals(false);
 | 
					 | 
				
			||||||
    m_snb = snb;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void WDSPRxDNRDialog::setANF(bool anf)
 | 
					void WDSPRxDNRDialog::setANF(bool anf)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ui->anf->blockSignals(true);
 | 
					    ui->anf->blockSignals(true);
 | 
				
			||||||
@ -85,12 +77,6 @@ void WDSPRxDNRDialog::setNR2ArtifactReduction(bool nr2ArtifactReducion)
 | 
				
			|||||||
    m_nr2ArtifactReduction = nr2ArtifactReducion;
 | 
					    m_nr2ArtifactReduction = nr2ArtifactReducion;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void WDSPRxDNRDialog::on_snb_clicked(bool checked)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    m_snb = checked;
 | 
					 | 
				
			||||||
    emit valueChanged(ChangedSNB);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void WDSPRxDNRDialog::on_anf_clicked(bool checked)
 | 
					void WDSPRxDNRDialog::on_anf_clicked(bool checked)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    m_anf = checked;
 | 
					    m_anf = checked;
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,6 @@ class SDRGUI_API WDSPRxDNRDialog : public QDialog {
 | 
				
			|||||||
    Q_OBJECT
 | 
					    Q_OBJECT
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
    enum ValueChanged {
 | 
					    enum ValueChanged {
 | 
				
			||||||
        ChangedSNB,
 | 
					 | 
				
			||||||
        ChangedANF,
 | 
					        ChangedANF,
 | 
				
			||||||
        ChangedNR,
 | 
					        ChangedNR,
 | 
				
			||||||
        ChangedNR2Gain,
 | 
					        ChangedNR2Gain,
 | 
				
			||||||
@ -42,7 +41,6 @@ public:
 | 
				
			|||||||
    explicit WDSPRxDNRDialog(QWidget* parent = nullptr);
 | 
					    explicit WDSPRxDNRDialog(QWidget* parent = nullptr);
 | 
				
			||||||
    ~WDSPRxDNRDialog();
 | 
					    ~WDSPRxDNRDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void setSNB(bool snb);
 | 
					 | 
				
			||||||
    void setANF(bool anf);
 | 
					    void setANF(bool anf);
 | 
				
			||||||
    void setNRScheme(WDSPRxProfile::WDSPRxNRScheme scheme);
 | 
					    void setNRScheme(WDSPRxProfile::WDSPRxNRScheme scheme);
 | 
				
			||||||
    void setNR2Gain(WDSPRxProfile::WDSPRxNR2Gain gain);
 | 
					    void setNR2Gain(WDSPRxProfile::WDSPRxNR2Gain gain);
 | 
				
			||||||
@ -50,7 +48,6 @@ public:
 | 
				
			|||||||
    void setNRPosition(WDSPRxProfile::WDSPRxNRPosition position);
 | 
					    void setNRPosition(WDSPRxProfile::WDSPRxNRPosition position);
 | 
				
			||||||
    void setNR2ArtifactReduction(bool nr2ArtifactReducion);
 | 
					    void setNR2ArtifactReduction(bool nr2ArtifactReducion);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool getSNB() const { return m_snb; }
 | 
					 | 
				
			||||||
    bool getANF() const { return m_anf; }
 | 
					    bool getANF() const { return m_anf; }
 | 
				
			||||||
    WDSPRxProfile::WDSPRxNRScheme getNRScheme() const { return m_nrScheme; }
 | 
					    WDSPRxProfile::WDSPRxNRScheme getNRScheme() const { return m_nrScheme; }
 | 
				
			||||||
    WDSPRxProfile::WDSPRxNR2Gain getNR2Gain() const { return m_nr2Gain; }
 | 
					    WDSPRxProfile::WDSPRxNR2Gain getNR2Gain() const { return m_nr2Gain; }
 | 
				
			||||||
@ -63,7 +60,6 @@ signals:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    Ui::WDSPRxDNRDialog *ui;
 | 
					    Ui::WDSPRxDNRDialog *ui;
 | 
				
			||||||
    bool m_snb;
 | 
					 | 
				
			||||||
    bool m_anf;
 | 
					    bool m_anf;
 | 
				
			||||||
    WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
 | 
					    WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
 | 
				
			||||||
    WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
 | 
					    WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
 | 
				
			||||||
@ -72,7 +68,6 @@ private:
 | 
				
			|||||||
    bool m_nr2ArtifactReduction;
 | 
					    bool m_nr2ArtifactReduction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private slots:
 | 
					private slots:
 | 
				
			||||||
    void on_snb_clicked(bool checked);
 | 
					 | 
				
			||||||
    void on_anf_clicked(bool checked);
 | 
					    void on_anf_clicked(bool checked);
 | 
				
			||||||
    void on_nr_currentIndexChanged(int index);
 | 
					    void on_nr_currentIndexChanged(int index);
 | 
				
			||||||
    void on_nr2Gain_currentIndexChanged(int index);
 | 
					    void on_nr2Gain_currentIndexChanged(int index);
 | 
				
			||||||
 | 
				
			|||||||
@ -40,16 +40,6 @@
 | 
				
			|||||||
       </item>
 | 
					       </item>
 | 
				
			||||||
      </widget>
 | 
					      </widget>
 | 
				
			||||||
     </item>
 | 
					     </item>
 | 
				
			||||||
     <item>
 | 
					 | 
				
			||||||
      <widget class="QCheckBox" name="snb">
 | 
					 | 
				
			||||||
       <property name="toolTip">
 | 
					 | 
				
			||||||
        <string>Spectral Noise Blanker</string>
 | 
					 | 
				
			||||||
       </property>
 | 
					 | 
				
			||||||
       <property name="text">
 | 
					 | 
				
			||||||
        <string>SNB</string>
 | 
					 | 
				
			||||||
       </property>
 | 
					 | 
				
			||||||
      </widget>
 | 
					 | 
				
			||||||
     </item>
 | 
					 | 
				
			||||||
     <item>
 | 
					     <item>
 | 
				
			||||||
      <widget class="QCheckBox" name="anf">
 | 
					      <widget class="QCheckBox" name="anf">
 | 
				
			||||||
       <property name="toolTip">
 | 
					       <property name="toolTip">
 | 
				
			||||||
 | 
				
			|||||||
@ -301,7 +301,6 @@ void WDSPRxGUI::on_profileIndex_valueChanged(int value)
 | 
				
			|||||||
    m_settings.m_nbAvgTime = m_settings.m_profiles[m_settings.m_profileIndex].m_nbAvgTime;
 | 
					    m_settings.m_nbAvgTime = m_settings.m_profiles[m_settings.m_profileIndex].m_nbAvgTime;
 | 
				
			||||||
    // Noise reduction
 | 
					    // Noise reduction
 | 
				
			||||||
    m_settings.m_dnr = m_settings.m_profiles[m_settings.m_profileIndex].m_dnr;
 | 
					    m_settings.m_dnr = m_settings.m_profiles[m_settings.m_profileIndex].m_dnr;
 | 
				
			||||||
    m_settings.m_snb = m_settings.m_profiles[m_settings.m_profileIndex].m_snb;
 | 
					 | 
				
			||||||
    m_settings.m_anf = m_settings.m_profiles[m_settings.m_profileIndex].m_anf;
 | 
					    m_settings.m_anf = m_settings.m_profiles[m_settings.m_profileIndex].m_anf;
 | 
				
			||||||
    m_settings.m_nrScheme = m_settings.m_profiles[m_settings.m_profileIndex].m_nrScheme;
 | 
					    m_settings.m_nrScheme = m_settings.m_profiles[m_settings.m_profileIndex].m_nrScheme;
 | 
				
			||||||
    m_settings.m_nr2Gain = m_settings.m_profiles[m_settings.m_profileIndex].m_nr2Gain;
 | 
					    m_settings.m_nr2Gain = m_settings.m_profiles[m_settings.m_profileIndex].m_nr2Gain;
 | 
				
			||||||
@ -908,7 +907,6 @@ void WDSPRxGUI::dnrSetupDialog(const QPoint& p)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    m_dnrDialog = new WDSPRxDNRDialog();
 | 
					    m_dnrDialog = new WDSPRxDNRDialog();
 | 
				
			||||||
    m_dnrDialog->move(p);
 | 
					    m_dnrDialog->move(p);
 | 
				
			||||||
    m_dnrDialog->setSNB(m_settings.m_snb);
 | 
					 | 
				
			||||||
    m_dnrDialog->setANF(m_settings.m_anf);
 | 
					    m_dnrDialog->setANF(m_settings.m_anf);
 | 
				
			||||||
    m_dnrDialog->setNRScheme(m_settings.m_nrScheme);
 | 
					    m_dnrDialog->setNRScheme(m_settings.m_nrScheme);
 | 
				
			||||||
    m_dnrDialog->setNR2Gain(m_settings.m_nr2Gain);
 | 
					    m_dnrDialog->setNR2Gain(m_settings.m_nr2Gain);
 | 
				
			||||||
@ -932,11 +930,6 @@ void WDSPRxGUI::dnrSetup(int32_t iValueChanged)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    switch (valueChanged)
 | 
					    switch (valueChanged)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    case WDSPRxDNRDialog::ValueChanged::ChangedSNB:
 | 
					 | 
				
			||||||
        m_settings.m_snb = m_dnrDialog->getSNB();
 | 
					 | 
				
			||||||
        m_settings.m_profiles[m_settings.m_profileIndex].m_snb = m_settings.m_snb;
 | 
					 | 
				
			||||||
        applySettings();
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    case WDSPRxDNRDialog::ValueChanged::ChangedANF:
 | 
					    case WDSPRxDNRDialog::ValueChanged::ChangedANF:
 | 
				
			||||||
        m_settings.m_anf = m_dnrDialog->getANF();
 | 
					        m_settings.m_anf = m_dnrDialog->getANF();
 | 
				
			||||||
        m_settings.m_profiles[m_settings.m_profileIndex].m_anf = m_settings.m_anf;
 | 
					        m_settings.m_profiles[m_settings.m_profileIndex].m_anf = m_settings.m_anf;
 | 
				
			||||||
 | 
				
			|||||||
@ -63,7 +63,6 @@ void WDSPRxSettings::resetToDefaults()
 | 
				
			|||||||
    m_nbAvgTime = 50.0;
 | 
					    m_nbAvgTime = 50.0;
 | 
				
			||||||
    // Noise reduction
 | 
					    // Noise reduction
 | 
				
			||||||
    m_dnr = false;
 | 
					    m_dnr = false;
 | 
				
			||||||
    m_snb = false;
 | 
					 | 
				
			||||||
    m_anf = false;
 | 
					    m_anf = false;
 | 
				
			||||||
    m_nrScheme = WDSPRxProfile::NRSchemeNR;
 | 
					    m_nrScheme = WDSPRxProfile::NRSchemeNR;
 | 
				
			||||||
    m_nr2Gain = WDSPRxProfile::NR2GainGamma;
 | 
					    m_nr2Gain = WDSPRxProfile::NR2GainGamma;
 | 
				
			||||||
@ -125,7 +124,6 @@ QByteArray WDSPRxSettings::serialize() const
 | 
				
			|||||||
    s.writeDouble(27, m_nbAvgTime);
 | 
					    s.writeDouble(27, m_nbAvgTime);
 | 
				
			||||||
    // Noise reduction
 | 
					    // Noise reduction
 | 
				
			||||||
    s.writeBool(  30, m_dnr);
 | 
					    s.writeBool(  30, m_dnr);
 | 
				
			||||||
    s.writeBool(  31, m_snb);
 | 
					 | 
				
			||||||
    s.writeBool(  32, m_anf);
 | 
					    s.writeBool(  32, m_anf);
 | 
				
			||||||
    s.writeS32(   33, (int) m_nrScheme);
 | 
					    s.writeS32(   33, (int) m_nrScheme);
 | 
				
			||||||
    s.writeS32(   34, (int) m_nr2Gain);
 | 
					    s.writeS32(   34, (int) m_nr2Gain);
 | 
				
			||||||
@ -182,7 +180,6 @@ QByteArray WDSPRxSettings::serialize() const
 | 
				
			|||||||
        s.writeDouble(127 + 50*i, m_profiles[i].m_nbAvgTime);
 | 
					        s.writeDouble(127 + 50*i, m_profiles[i].m_nbAvgTime);
 | 
				
			||||||
        // Noise reduction
 | 
					        // Noise reduction
 | 
				
			||||||
        s.writeBool  (130 + 50*i, m_profiles[i].m_dnr);
 | 
					        s.writeBool  (130 + 50*i, m_profiles[i].m_dnr);
 | 
				
			||||||
        s.writeBool  (131 + 50*i, m_profiles[i].m_snb);
 | 
					 | 
				
			||||||
        s.writeBool  (132 + 50*i, m_profiles[i].m_anf);
 | 
					        s.writeBool  (132 + 50*i, m_profiles[i].m_anf);
 | 
				
			||||||
        s.writeS32   (133 + 50*i, (int) m_profiles[i].m_nrScheme);
 | 
					        s.writeS32   (133 + 50*i, (int) m_profiles[i].m_nrScheme);
 | 
				
			||||||
        s.writeS32   (134 + 50*i, (int) m_profiles[i].m_nr2Gain);
 | 
					        s.writeS32   (134 + 50*i, (int) m_profiles[i].m_nr2Gain);
 | 
				
			||||||
@ -253,7 +250,6 @@ bool WDSPRxSettings::deserialize(const QByteArray& data)
 | 
				
			|||||||
        d.readDouble(27, &m_nbAvgTime, 50.0);
 | 
					        d.readDouble(27, &m_nbAvgTime, 50.0);
 | 
				
			||||||
        // Nosie reduction
 | 
					        // Nosie reduction
 | 
				
			||||||
        d.readBool(  30, &m_dnr, false);
 | 
					        d.readBool(  30, &m_dnr, false);
 | 
				
			||||||
        d.readBool(  31, &m_snb, false);
 | 
					 | 
				
			||||||
        d.readBool(  32, &m_anf, false);
 | 
					        d.readBool(  32, &m_anf, false);
 | 
				
			||||||
        d.readS32(   33, &tmp, 2);
 | 
					        d.readS32(   33, &tmp, 2);
 | 
				
			||||||
        m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
 | 
					        m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
 | 
				
			||||||
@ -330,7 +326,6 @@ bool WDSPRxSettings::deserialize(const QByteArray& data)
 | 
				
			|||||||
            d.readDouble(127 + 50*i, &m_profiles[i].m_nbAvgTime, 50.0);
 | 
					            d.readDouble(127 + 50*i, &m_profiles[i].m_nbAvgTime, 50.0);
 | 
				
			||||||
            // Noise reduction
 | 
					            // Noise reduction
 | 
				
			||||||
            d.readBool  (130 + 50*i, &m_profiles[i].m_dnr, false);
 | 
					            d.readBool  (130 + 50*i, &m_profiles[i].m_dnr, false);
 | 
				
			||||||
            d.readBool  (131 + 50*i, &m_profiles[i].m_snb, false);
 | 
					 | 
				
			||||||
            d.readBool  (132 + 50*i, &m_profiles[i].m_anf, false);
 | 
					            d.readBool  (132 + 50*i, &m_profiles[i].m_anf, false);
 | 
				
			||||||
            d.readS32   (133 + 50*i, &tmp);
 | 
					            d.readS32   (133 + 50*i, &tmp);
 | 
				
			||||||
            m_profiles[i].m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
 | 
					            m_profiles[i].m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) tmp;
 | 
				
			||||||
 | 
				
			|||||||
@ -100,7 +100,6 @@ struct WDSPRxProfile
 | 
				
			|||||||
    double m_nbAvgTime;   // a.k.a back tau
 | 
					    double m_nbAvgTime;   // a.k.a back tau
 | 
				
			||||||
    // Noise rediction
 | 
					    // Noise rediction
 | 
				
			||||||
    bool m_dnr;
 | 
					    bool m_dnr;
 | 
				
			||||||
    bool m_snb;
 | 
					 | 
				
			||||||
    bool m_anf;
 | 
					    bool m_anf;
 | 
				
			||||||
    WDSPRxNRScheme m_nrScheme;
 | 
					    WDSPRxNRScheme m_nrScheme;
 | 
				
			||||||
    WDSPRxNR2Gain m_nr2Gain;
 | 
					    WDSPRxNR2Gain m_nr2Gain;
 | 
				
			||||||
@ -134,7 +133,6 @@ struct WDSPRxProfile
 | 
				
			|||||||
        m_nbThreshold(30),
 | 
					        m_nbThreshold(30),
 | 
				
			||||||
        m_nbAvgTime(50.0),
 | 
					        m_nbAvgTime(50.0),
 | 
				
			||||||
        m_dnr(false),
 | 
					        m_dnr(false),
 | 
				
			||||||
        m_snb(false),
 | 
					 | 
				
			||||||
        m_anf(false),
 | 
					        m_anf(false),
 | 
				
			||||||
        m_nrScheme(NRSchemeNR),
 | 
					        m_nrScheme(NRSchemeNR),
 | 
				
			||||||
        m_nr2Gain(NR2GainGamma),
 | 
					        m_nr2Gain(NR2GainGamma),
 | 
				
			||||||
@ -178,7 +176,6 @@ struct WDSPRxSettings
 | 
				
			|||||||
    double m_nbAvgTime;
 | 
					    double m_nbAvgTime;
 | 
				
			||||||
    // Noise reduction
 | 
					    // Noise reduction
 | 
				
			||||||
    bool m_dnr;
 | 
					    bool m_dnr;
 | 
				
			||||||
    bool m_snb;
 | 
					 | 
				
			||||||
    bool m_anf;
 | 
					    bool m_anf;
 | 
				
			||||||
    WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
 | 
					    WDSPRxProfile::WDSPRxNRScheme m_nrScheme;
 | 
				
			||||||
    WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
 | 
					    WDSPRxProfile::WDSPRxNR2Gain m_nr2Gain;
 | 
				
			||||||
 | 
				
			|||||||
@ -127,6 +127,7 @@ WDSPRxSink::WDSPRxSink() :
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
    m_rxa->setSpectrumProbe(&m_spectrumProbe);
 | 
					    m_rxa->setSpectrumProbe(&m_spectrumProbe);
 | 
				
			||||||
    WDSP::RXA::SetPassband(*m_rxa, 0, m_Bandwidth);
 | 
					    WDSP::RXA::SetPassband(*m_rxa, 0, m_Bandwidth);
 | 
				
			||||||
 | 
					    WDSP::ANR::SetANRVals(*m_rxa, 64, 16, 16e-4, 10e-7);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
 | 
					    applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
 | 
				
			||||||
	applySettings(m_settings, true);
 | 
						applySettings(m_settings, true);
 | 
				
			||||||
@ -346,6 +347,7 @@ void WDSPRxSink::applySettings(const WDSPRxSettings& settings, bool force)
 | 
				
			|||||||
            << " m_agcSlope: " << settings.m_agcSlope
 | 
					            << " m_agcSlope: " << settings.m_agcSlope
 | 
				
			||||||
            << " m_agcHangThreshold: " << settings.m_agcHangThreshold
 | 
					            << " m_agcHangThreshold: " << settings.m_agcHangThreshold
 | 
				
			||||||
            << " m_audioDeviceName: " << settings.m_audioDeviceName
 | 
					            << " m_audioDeviceName: " << settings.m_audioDeviceName
 | 
				
			||||||
 | 
					            << " m_anf: "<< settings.m_anf
 | 
				
			||||||
            << " m_dnr: " << settings.m_dnr
 | 
					            << " m_dnr: " << settings.m_dnr
 | 
				
			||||||
            << " m_nrScheme: " << settings.m_nrScheme
 | 
					            << " m_nrScheme: " << settings.m_nrScheme
 | 
				
			||||||
            << " m_nrPosition: "<< settings.m_nrPosition
 | 
					            << " m_nrPosition: "<< settings.m_nrPosition
 | 
				
			||||||
@ -547,11 +549,6 @@ void WDSPRxSink::applySettings(const WDSPRxSettings& settings, bool force)
 | 
				
			|||||||
        WDSP::ANF::SetANFRun(*m_rxa, settings.m_anf ? 1 : 0);
 | 
					        WDSP::ANF::SetANFRun(*m_rxa, settings.m_anf ? 1 : 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Caution: Causes corruption
 | 
					 | 
				
			||||||
    if ((m_settings.m_snb != settings.m_snb) || force) {
 | 
					 | 
				
			||||||
        WDSP::SNBA::SetSNBARun(*m_rxa, settings.m_snb ? 1 : 0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // CW Peaking
 | 
					    // CW Peaking
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((m_settings.m_cwPeaking != settings.m_cwPeaking) || force) {
 | 
					    if ((m_settings.m_cwPeaking != settings.m_cwPeaking) || force) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user