diff --git a/plugins/channelrx/demoddsd/dsddemod.cpp b/plugins/channelrx/demoddsd/dsddemod.cpp index ec85c0fca..997eb4138 100644 --- a/plugins/channelrx/demoddsd/dsddemod.cpp +++ b/plugins/channelrx/demoddsd/dsddemod.cpp @@ -55,9 +55,9 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) : m_config.m_inputSampleRate = 96000; m_config.m_inputFrequencyOffset = 0; - m_config.m_rfBandwidth = 100; + m_config.m_rfBandwidth = 10000.0; + m_config.m_fmDeviation = 5000.0; m_config.m_demodGain = 100; - m_config.m_fmDeviation = 100; m_config.m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack m_config.m_squelch = -30.0; m_config.m_volume = 1.0; @@ -105,8 +105,8 @@ DSDDemod::~DSDDemod() } void DSDDemod::configure(MessageQueue* messageQueue, - int rfBandwidth, - int fmDeviation, + Real rfBandwidth, + Real fmDeviation, int demodGain, int volume, int baudRate, @@ -125,8 +125,8 @@ void DSDDemod::configure(MessageQueue* messageQueue, bool force) { Message* cmd = MsgConfigureDSDDemod::create(rfBandwidth, + fmDeviation, demodGain, - fmDeviation, volume, baudRate, squelchGate, @@ -412,9 +412,9 @@ bool DSDDemod::handleMessage(const Message& cmd) apply(); - qDebug() << "DSDDemod::handleMessage: MsgConfigureDSDDemod: m_rfBandwidth: " << m_config.m_rfBandwidth * 100 + qDebug() << "DSDDemod::handleMessage: MsgConfigureDSDDemod: m_rfBandwidth: " << m_config.m_rfBandwidth + << " m_fmDeviation: " << m_config.m_fmDeviation << " m_demodGain: " << m_config.m_demodGain / 100.0 - << " m_fmDeviation: " << m_config.m_fmDeviation * 100 << " m_volume: " << m_config.m_volume / 10.0 << " m_baudRate: " << m_config.m_baudRate << " m_squelchGate" << m_config.m_squelchGate @@ -456,7 +456,7 @@ void DSDDemod::apply(bool force) (m_config.m_rfBandwidth != m_running.m_rfBandwidth) || force) { m_settingsMutex.lock(); - m_interpolator.create(16, m_config.m_inputSampleRate, (m_config.m_rfBandwidth * 100) / 2.2); + m_interpolator.create(16, m_config.m_inputSampleRate, (m_config.m_rfBandwidth) / 2.2); m_interpolatorDistanceRemain = 0; m_interpolatorDistance = (Real) m_config.m_inputSampleRate / (Real) m_config.m_audioSampleRate; m_phaseDiscri.setFMScaling((float) m_config.m_rfBandwidth / (float) m_config.m_fmDeviation); diff --git a/plugins/channelrx/demoddsd/dsddemod.h b/plugins/channelrx/demoddsd/dsddemod.h index 9bbdb086c..48a16b210 100644 --- a/plugins/channelrx/demoddsd/dsddemod.h +++ b/plugins/channelrx/demoddsd/dsddemod.h @@ -69,8 +69,8 @@ public: void setScopeSink(BasebandSampleSink* sampleSink) { m_scope = sampleSink; } void configure(MessageQueue* messageQueue, - int rfBandwidth, - int fmDeviation, + Real rfBandwidth, + Real fmDeviation, int demodGain, int volume, int baudRate, @@ -139,9 +139,9 @@ private: MESSAGE_CLASS_DECLARATION public: - int getRFBandwidth() const { return m_rfBandwidth; } + Real getRFBandwidth() const { return m_rfBandwidth; } + Real getFMDeviation() const { return m_fmDeviation; } int getDemodGain() const { return m_demodGain; } - int getFMDeviation() const { return m_fmDeviation; } int getVolume() const { return m_volume; } int getBaudRate() const { return m_baudRate; } int getSquelchGate() const { return m_squelchGate; } @@ -157,9 +157,9 @@ private: const QString& getUDPAddress() const { return m_udpAddress; } quint16 getUDPPort() const { return m_udpPort; } - static MsgConfigureDSDDemod* create(int rfBandwidth, + static MsgConfigureDSDDemod* create(Real rfBandwidth, + Real fmDeviation, int demodGain, - int fmDeviation, int volume, int baudRate, int squelchGate, @@ -177,8 +177,8 @@ private: bool force) { return new MsgConfigureDSDDemod(rfBandwidth, + fmDeviation, demodGain, - fmDeviation, volume, baudRate, squelchGate, @@ -198,8 +198,8 @@ private: private: Real m_rfBandwidth; + Real m_fmDeviation; Real m_demodGain; - int m_fmDeviation; int m_volume; int m_baudRate; int m_squelchGate; @@ -217,8 +217,8 @@ private: bool m_force; MsgConfigureDSDDemod(int rfBandwidth, + int fmDeviation, int demodGain, - int fmDeviation, int volume, int baudRate, int squelchGate, @@ -236,8 +236,8 @@ private: bool force) : Message(), m_rfBandwidth(rfBandwidth), + m_fmDeviation(fmDeviation), m_demodGain(demodGain), - m_fmDeviation(fmDeviation), m_volume(volume), m_baudRate(baudRate), m_squelchGate(squelchGate), @@ -264,11 +264,11 @@ private: struct Config { int m_inputSampleRate; qint64 m_inputFrequencyOffset; - int m_rfBandwidth; + Real m_rfBandwidth; + Real m_fmDeviation; int m_demodGain; int m_volume; int m_baudRate; - int m_fmDeviation; int m_squelchGate; Real m_squelch; bool m_audioMute; @@ -286,11 +286,11 @@ private: Config() : m_inputSampleRate(-1), m_inputFrequencyOffset(0), - m_rfBandwidth(-1), + m_rfBandwidth(10000.0), + m_fmDeviation(5000.0), m_demodGain(-1), m_volume(-1), m_baudRate(4800), - m_fmDeviation(1), m_squelchGate(1), m_squelch(0), m_audioMute(false), diff --git a/plugins/channelrx/demoddsd/dsddemodgui.cpp b/plugins/channelrx/demoddsd/dsddemodgui.cpp index 63b8ef874..5924161ea 100644 --- a/plugins/channelrx/demoddsd/dsddemodgui.cpp +++ b/plugins/channelrx/demoddsd/dsddemodgui.cpp @@ -407,8 +407,8 @@ void DSDDemodGUI::applySettings(bool force) ui->tdmaStereoSplit->setChecked(m_tdmaStereo); m_dsdDemod->configure(m_dsdDemod->getInputMessageQueue(), - ui->rfBW->value(), - ui->fmDeviation->value(), + ui->rfBW->value() * 100.0, + ui->fmDeviation->value() * 100.0, ui->demodGain->value(), ui->volume->value(), DSDDemodBaudRates::getRate(ui->baudRate->currentIndex()),