From 67e664ef066de9d88a211090fde95412149bc6fe Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 14 Feb 2018 20:11:36 +0100 Subject: [PATCH] Fixed memory leak with handling of DSPSignalNotification message in modulators and demodulators. Removed reference to unused PIDController class --- plugins/channelrx/demodam/amdemod.cpp | 6 +- plugins/channelrx/demodam/amdemodplugin.cpp | 2 +- plugins/channelrx/demodatv/atvdemod.cpp | 1 - plugins/channelrx/demodatv/atvdemodplugin.cpp | 2 +- plugins/channelrx/demodbfm/bfmdemod.cpp | 8 +- plugins/channelrx/demodbfm/bfmplugin.cpp | 2 +- plugins/channelrx/demoddsd/dsddemod.cpp | 11 ++- plugins/channelrx/demoddsd/dsddemodplugin.cpp | 2 +- plugins/channelrx/demodlora/lorademod.cpp | 9 ++- plugins/channelrx/demodlora/loraplugin.cpp | 2 +- plugins/channelrx/demodnfm/nfmdemod.cpp | 6 +- plugins/channelrx/demodnfm/nfmplugin.cpp | 2 +- plugins/channelrx/demodssb/ssbdemod.cpp | 7 +- plugins/channelrx/demodwfm/wfmdemod.cpp | 23 ++---- plugins/channelrx/demodwfm/wfmdemod.h | 2 - plugins/channelrx/demodwfm/wfmplugin.cpp | 2 +- plugins/channelrx/tcpsrc/tcpsrc.cpp | 9 ++- plugins/channelrx/tcpsrc/tcpsrcplugin.cpp | 2 +- plugins/channelrx/udpsrc/udpsrc.cpp | 5 ++ plugins/channelrx/udpsrc/udpsrcplugin.cpp | 2 +- plugins/channeltx/modam/ammod.cpp | 10 ++- plugins/channeltx/modam/ammodplugin.cpp | 2 +- plugins/channeltx/modatv/atvmod.cpp | 5 ++ plugins/channeltx/modatv/atvmodplugin.cpp | 2 +- plugins/channeltx/modnfm/nfmmod.cpp | 74 +++++++++++++------ plugins/channeltx/modnfm/nfmmod.h | 1 + plugins/channeltx/modnfm/nfmmodplugin.cpp | 2 +- plugins/channeltx/modssb/ssbmod.cpp | 10 ++- plugins/channeltx/modssb/ssbmodplugin.cpp | 2 +- plugins/channeltx/modwfm/wfmmod.cpp | 8 +- plugins/channeltx/modwfm/wfmmodplugin.cpp | 2 +- plugins/channeltx/udpsink/udpsink.cpp | 5 ++ plugins/channeltx/udpsink/udpsinkplugin.cpp | 2 +- sdrbase/CMakeLists.txt | 2 - sdrbase/sdrbase.pro | 2 - 35 files changed, 154 insertions(+), 80 deletions(-) diff --git a/plugins/channelrx/demodam/amdemod.cpp b/plugins/channelrx/demodam/amdemod.cpp index 818fb28d1..3743be9db 100644 --- a/plugins/channelrx/demodam/amdemod.cpp +++ b/plugins/channelrx/demodam/amdemod.cpp @@ -25,8 +25,8 @@ #include "dsp/downchannelizer.h" #include "audio/audiooutput.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" #include "dsp/threadedbasebandsamplesink.h" +#include "dsp/dspcommands.h" #include "device/devicesourceapi.h" MESSAGE_CLASS_DEFINITION(AMDemod::MsgConfigureAMDemod, Message) @@ -173,6 +173,10 @@ bool AMDemod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channelrx/demodam/amdemodplugin.cpp b/plugins/channelrx/demodam/amdemodplugin.cpp index d8b44e840..09ae64f70 100644 --- a/plugins/channelrx/demodam/amdemodplugin.cpp +++ b/plugins/channelrx/demodam/amdemodplugin.cpp @@ -8,7 +8,7 @@ const PluginDescriptor AMDemodPlugin::m_pluginDescriptor = { QString("AM Demodulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/demodatv/atvdemod.cpp b/plugins/channelrx/demodatv/atvdemod.cpp index 3b3ff4f3b..5af3592cc 100644 --- a/plugins/channelrx/demodatv/atvdemod.cpp +++ b/plugins/channelrx/demodatv/atvdemod.cpp @@ -22,7 +22,6 @@ #include "audio/audiooutput.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" #include "dsp/downchannelizer.h" #include "dsp/threadedbasebandsamplesink.h" #include "device/devicesourceapi.h" diff --git a/plugins/channelrx/demodatv/atvdemodplugin.cpp b/plugins/channelrx/demodatv/atvdemodplugin.cpp index 2dd2c74e1..aba8cc1f6 100644 --- a/plugins/channelrx/demodatv/atvdemodplugin.cpp +++ b/plugins/channelrx/demodatv/atvdemodplugin.cpp @@ -27,7 +27,7 @@ const PluginDescriptor ATVDemodPlugin::m_ptrPluginDescriptor = { QString("ATV Demodulator"), - QString("3.9.0"), + QString("3.12.0"), QString("(c) F4HKW for F4EXB / SDRAngel"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/demodbfm/bfmdemod.cpp b/plugins/channelrx/demodbfm/bfmdemod.cpp index 8e432c33a..e5a22fe3f 100644 --- a/plugins/channelrx/demodbfm/bfmdemod.cpp +++ b/plugins/channelrx/demodbfm/bfmdemod.cpp @@ -22,9 +22,9 @@ #include "audio/audiooutput.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" -#include +#include "dsp/downchannelizer.h" #include "dsp/threadedbasebandsamplesink.h" +#include "dsp/dspcommands.h" #include "device/devicesourceapi.h" #include "rdsparser.h" @@ -350,6 +350,10 @@ bool BFMDemod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { qDebug() << "BFMDemod::handleMessage: passed: " << cmd.getIdentifier(); diff --git a/plugins/channelrx/demodbfm/bfmplugin.cpp b/plugins/channelrx/demodbfm/bfmplugin.cpp index 1e0217d53..b32e815e9 100644 --- a/plugins/channelrx/demodbfm/bfmplugin.cpp +++ b/plugins/channelrx/demodbfm/bfmplugin.cpp @@ -25,7 +25,7 @@ const PluginDescriptor BFMPlugin::m_pluginDescriptor = { QString("Broadcast FM Demodulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/demoddsd/dsddemod.cpp b/plugins/channelrx/demoddsd/dsddemod.cpp index 1cb1a6d0b..7f904fd36 100644 --- a/plugins/channelrx/demoddsd/dsddemod.cpp +++ b/plugins/channelrx/demoddsd/dsddemod.cpp @@ -21,13 +21,12 @@ #include #include -#include #include "audio/audiooutput.h" -#include "dsp/pidcontroller.h" #include "dsp/dspengine.h" #include "dsp/threadedbasebandsamplesink.h" -#include -#include +#include "dsp/downchannelizer.h" +#include "dsp/dspcommands.h" +#include "device/devicesourceapi.h" #include "dsddemod.h" @@ -365,6 +364,10 @@ bool DSDDemod::handleMessage(const Message& cmd) m_dsdDecoder.setMyPoint(cfg.getMyLatitude(), cfg.getMyLongitude()); return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channelrx/demoddsd/dsddemodplugin.cpp b/plugins/channelrx/demoddsd/dsddemodplugin.cpp index fac69c490..a4c96b3fe 100644 --- a/plugins/channelrx/demoddsd/dsddemodplugin.cpp +++ b/plugins/channelrx/demoddsd/dsddemodplugin.cpp @@ -25,7 +25,7 @@ const PluginDescriptor DSDDemodPlugin::m_pluginDescriptor = { QString("DSD Demodulator"), - QString("3.11.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/demodlora/lorademod.cpp b/plugins/channelrx/demodlora/lorademod.cpp index b0b397279..b25fe12e3 100644 --- a/plugins/channelrx/demodlora/lorademod.cpp +++ b/plugins/channelrx/demodlora/lorademod.cpp @@ -21,9 +21,10 @@ #include #include -#include +#include "dsp/downchannelizer.h" #include "dsp/threadedbasebandsamplesink.h" -#include +#include "dsp/dspcommands.h" +#include "device/devicesourceapi.h" #include "lorademod.h" #include "lorabits.h" @@ -347,6 +348,10 @@ bool LoRaDemod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { if(m_sampleSink != 0) diff --git a/plugins/channelrx/demodlora/loraplugin.cpp b/plugins/channelrx/demodlora/loraplugin.cpp index faa3e4933..e889c995b 100644 --- a/plugins/channelrx/demodlora/loraplugin.cpp +++ b/plugins/channelrx/demodlora/loraplugin.cpp @@ -7,7 +7,7 @@ const PluginDescriptor LoRaPlugin::m_pluginDescriptor = { QString("LoRa Demodulator"), - QString("3.9.0"), + QString("3.12.0"), QString("(c) 2015 John Greb"), QString("http://www.maintech.de"), true, diff --git a/plugins/channelrx/demodnfm/nfmdemod.cpp b/plugins/channelrx/demodnfm/nfmdemod.cpp index 96f5a392b..1a266b212 100644 --- a/plugins/channelrx/demodnfm/nfmdemod.cpp +++ b/plugins/channelrx/demodnfm/nfmdemod.cpp @@ -26,9 +26,9 @@ #include "dsp/downchannelizer.h" #include "util/stepfunctions.h" #include "audio/audiooutput.h" -#include "dsp/pidcontroller.h" #include "dsp/dspengine.h" #include "dsp/threadedbasebandsamplesink.h" +#include "dsp/dspcommands.h" #include "device/devicesourceapi.h" #include "audio/audionetsink.h" @@ -369,6 +369,10 @@ bool NFMDemod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channelrx/demodnfm/nfmplugin.cpp b/plugins/channelrx/demodnfm/nfmplugin.cpp index 4f8817f06..d7dfc0b1b 100644 --- a/plugins/channelrx/demodnfm/nfmplugin.cpp +++ b/plugins/channelrx/demodnfm/nfmplugin.cpp @@ -7,7 +7,7 @@ const PluginDescriptor NFMPlugin::m_pluginDescriptor = { QString("NFM Demodulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/demodssb/ssbdemod.cpp b/plugins/channelrx/demodssb/ssbdemod.cpp index f8ffe7255..84d92bd8a 100644 --- a/plugins/channelrx/demodssb/ssbdemod.cpp +++ b/plugins/channelrx/demodssb/ssbdemod.cpp @@ -23,8 +23,9 @@ #include "audio/audiooutput.h" #include "dsp/dspengine.h" -#include +#include "dsp/downchannelizer.h" #include "dsp/threadedbasebandsamplesink.h" +#include "dsp/dspcommands.h" #include "device/devicesourceapi.h" #include "util/db.h" @@ -324,6 +325,10 @@ bool SSBDemod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { if(m_sampleSink != 0) diff --git a/plugins/channelrx/demodwfm/wfmdemod.cpp b/plugins/channelrx/demodwfm/wfmdemod.cpp index f03865caf..66d2dd2f5 100644 --- a/plugins/channelrx/demodwfm/wfmdemod.cpp +++ b/plugins/channelrx/demodwfm/wfmdemod.cpp @@ -23,10 +23,10 @@ #include #include "dsp/threadedbasebandsamplesink.h" -#include +#include "device/devicesourceapi.h" #include "audio/audiooutput.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" +#include "dsp/dspcommands.h" #include "wfmdemod.h" @@ -47,7 +47,6 @@ WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) : m_magsqSum(0.0f), m_magsqPeak(0.0f), m_magsqCount(0), - m_sampleSink(0), m_audioFifo(250000), m_settingsMutex(QMutex::Recursive) { @@ -182,11 +181,6 @@ void WFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto m_audioBufferFill = 0; } - if(m_sampleSink != 0) - { - m_sampleSink->feed(m_sampleBuffer.begin(), m_sampleBuffer.end(), false); - } - m_sampleBuffer.clear(); m_settingsMutex.unlock(); @@ -238,16 +232,13 @@ bool WFMDemod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { - if (m_sampleSink != 0) - { - return m_sampleSink->handleMessage(cmd); - } - else - { - return false; - } + return false; } } diff --git a/plugins/channelrx/demodwfm/wfmdemod.h b/plugins/channelrx/demodwfm/wfmdemod.h index 176c268cd..7cb60b43b 100644 --- a/plugins/channelrx/demodwfm/wfmdemod.h +++ b/plugins/channelrx/demodwfm/wfmdemod.h @@ -91,7 +91,6 @@ public: WFMDemod(DeviceSourceAPI *deviceAPI); virtual ~WFMDemod(); virtual void destroy() { delete this; } - void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; } virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool po); virtual void start(); @@ -158,7 +157,6 @@ private: uint m_audioBufferFill; UDPSink *m_udpBufferAudio; - BasebandSampleSink* m_sampleSink; AudioFifo m_audioFifo; SampleVector m_sampleBuffer; QMutex m_settingsMutex; diff --git a/plugins/channelrx/demodwfm/wfmplugin.cpp b/plugins/channelrx/demodwfm/wfmplugin.cpp index 0bf17c9cc..062f2490d 100644 --- a/plugins/channelrx/demodwfm/wfmplugin.cpp +++ b/plugins/channelrx/demodwfm/wfmplugin.cpp @@ -8,7 +8,7 @@ const PluginDescriptor WFMPlugin::m_pluginDescriptor = { QString("WFM Demodulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/tcpsrc/tcpsrc.cpp b/plugins/channelrx/tcpsrc/tcpsrc.cpp index 9ab708d2e..6b3d7a49a 100644 --- a/plugins/channelrx/tcpsrc/tcpsrc.cpp +++ b/plugins/channelrx/tcpsrc/tcpsrc.cpp @@ -19,9 +19,10 @@ #include #include -#include +#include "dsp/downchannelizer.h" #include "dsp/threadedbasebandsamplesink.h" -#include +#include "dsp/dspcommands.h" +#include "device/devicesourceapi.h" #include "tcpsrcgui.h" @@ -305,6 +306,10 @@ bool TCPSrc::handleMessage(const Message& cmd) processDeconnection(); } } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { if(m_spectrum != 0) diff --git a/plugins/channelrx/tcpsrc/tcpsrcplugin.cpp b/plugins/channelrx/tcpsrc/tcpsrcplugin.cpp index 16589efc0..d7a0193c7 100644 --- a/plugins/channelrx/tcpsrc/tcpsrcplugin.cpp +++ b/plugins/channelrx/tcpsrc/tcpsrcplugin.cpp @@ -8,7 +8,7 @@ const PluginDescriptor TCPSrcPlugin::m_pluginDescriptor = { QString("TCP Channel Source"), - QString("3.9.0"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/udpsrc/udpsrc.cpp b/plugins/channelrx/udpsrc/udpsrc.cpp index f89f60da3..9a0fd98ff 100644 --- a/plugins/channelrx/udpsrc/udpsrc.cpp +++ b/plugins/channelrx/udpsrc/udpsrc.cpp @@ -22,6 +22,7 @@ #include "util/db.h" #include "dsp/downchannelizer.h" #include "dsp/threadedbasebandsamplesink.h" +#include "dsp/dspcommands.h" #include "device/devicesourceapi.h" #include "udpsrcgui.h" @@ -371,6 +372,10 @@ bool UDPSrc::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { if(m_spectrum != 0) diff --git a/plugins/channelrx/udpsrc/udpsrcplugin.cpp b/plugins/channelrx/udpsrc/udpsrcplugin.cpp index b6d65e2fc..032b7868b 100644 --- a/plugins/channelrx/udpsrc/udpsrcplugin.cpp +++ b/plugins/channelrx/udpsrc/udpsrcplugin.cpp @@ -25,7 +25,7 @@ const PluginDescriptor UDPSrcPlugin::m_pluginDescriptor = { QString("UDP Channel Source"), - QString("3.11.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channeltx/modam/ammod.cpp b/plugins/channeltx/modam/ammod.cpp index 9f26df94d..ac96b2a95 100644 --- a/plugins/channeltx/modam/ammod.cpp +++ b/plugins/channeltx/modam/ammod.cpp @@ -19,12 +19,14 @@ #include #include #include + #include #include -#include + +#include "dsp/upchannelizer.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" #include "dsp/threadedbasebandsamplesource.h" +#include "dsp/dspcommands.h" #include "device/devicesinkapi.h" MESSAGE_CLASS_DEFINITION(AMMod::MsgConfigureAMMod, Message) @@ -333,6 +335,10 @@ bool AMMod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channeltx/modam/ammodplugin.cpp b/plugins/channeltx/modam/ammodplugin.cpp index 368d59d9b..e2f5d903f 100644 --- a/plugins/channeltx/modam/ammodplugin.cpp +++ b/plugins/channeltx/modam/ammodplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor AMModPlugin::m_pluginDescriptor = { QString("AM Modulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channeltx/modatv/atvmod.cpp b/plugins/channeltx/modatv/atvmod.cpp index bab9b2b21..264ac7b24 100644 --- a/plugins/channeltx/modatv/atvmod.cpp +++ b/plugins/channeltx/modatv/atvmod.cpp @@ -21,6 +21,7 @@ #include "dsp/upchannelizer.h" #include "dsp/threadedbasebandsamplesource.h" +#include "dsp/dspcommands.h" #include "device/devicesinkapi.h" #include "atvmod.h" @@ -636,6 +637,10 @@ bool ATVMod::handleMessage(const Message& cmd) m_showOverlayText = showOverlayText; return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channeltx/modatv/atvmodplugin.cpp b/plugins/channeltx/modatv/atvmodplugin.cpp index 00517f725..b663bf2e9 100644 --- a/plugins/channeltx/modatv/atvmodplugin.cpp +++ b/plugins/channeltx/modatv/atvmodplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor ATVModPlugin::m_pluginDescriptor = { QString("ATV Modulator"), - QString("3.9.0"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channeltx/modnfm/nfmmod.cpp b/plugins/channeltx/modnfm/nfmmod.cpp index b6122e13d..80a473ffc 100644 --- a/plugins/channeltx/modnfm/nfmmod.cpp +++ b/plugins/channeltx/modnfm/nfmmod.cpp @@ -25,9 +25,9 @@ #include #include -#include +#include "dsp/upchannelizer.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" +#include "dsp/dspcommands.h" #include "device/devicesinkapi.h" #include "dsp/threadedbasebandsamplesource.h" @@ -342,6 +342,10 @@ bool NFMMod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; @@ -503,27 +507,7 @@ int NFMMod::webapiSettingsGet( QString& errorMessage __attribute__((unused))) { response.setNfmModSettings(new SWGSDRangel::SWGNFMModSettings()); - response.getNfmModSettings()->setAfBandwidth(m_settings.m_afBandwidth); - response.getNfmModSettings()->setAudioSampleRate(m_settings.m_audioSampleRate); - response.getNfmModSettings()->setChannelMute(m_settings.m_channelMute ? 1 : 0); - response.getNfmModSettings()->setCtcssIndex(m_settings.m_ctcssIndex); - response.getNfmModSettings()->setCtcssOn(m_settings.m_ctcssOn ? 1 : 0); - response.getNfmModSettings()->setFmDeviation(m_settings.m_fmDeviation); - response.getNfmModSettings()->setInputFrequencyOffset(m_settings.m_inputFrequencyOffset); - response.getNfmModSettings()->setModAfInput((int) m_settings.m_modAFInput); - response.getNfmModSettings()->setPlayLoop(m_settings.m_playLoop ? 1 : 0); - response.getNfmModSettings()->setRfBandwidth(m_settings.m_rfBandwidth); - response.getNfmModSettings()->setRgbColor(m_settings.m_rgbColor); - *response.getNfmModSettings()->getTitle() = m_settings.m_title; - response.getNfmModSettings()->setToneFrequency(m_settings.m_toneFrequency); - response.getNfmModSettings()->setVolumeFactor(m_settings.m_volumeFactor); - SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = response.getNfmModSettings()->getCwKeyer(); - const CWKeyerSettings& cwKeyerSettings = m_cwKeyer.getSettings(); - apiCwKeyerSettings->setLoop(cwKeyerSettings.m_loop ? 1 : 0); - apiCwKeyerSettings->setMode((int) cwKeyerSettings.m_mode); - apiCwKeyerSettings->setSampleRate(cwKeyerSettings.m_sampleRate); - apiCwKeyerSettings->setText(new QString(cwKeyerSettings.m_text)); - apiCwKeyerSettings->setWpm(cwKeyerSettings.m_wpm); + webapiFormatChannelSettings(response, m_settings); return 200; } @@ -635,5 +619,49 @@ int NFMMod::webapiSettingsPutPatch( m_guiMessageQueue->push(msgToGUI); } + webapiFormatChannelSettings(response, settings); + return 200; } + +void NFMMod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const NFMModSettings& settings) +{ + response.getNfmModSettings()->setAfBandwidth(m_settings.m_afBandwidth); + response.getNfmModSettings()->setAudioSampleRate(m_settings.m_audioSampleRate); + response.getNfmModSettings()->setChannelMute(m_settings.m_channelMute ? 1 : 0); + response.getNfmModSettings()->setCtcssIndex(m_settings.m_ctcssIndex); + response.getNfmModSettings()->setCtcssOn(m_settings.m_ctcssOn ? 1 : 0); + response.getNfmModSettings()->setFmDeviation(m_settings.m_fmDeviation); + response.getNfmModSettings()->setInputFrequencyOffset(m_settings.m_inputFrequencyOffset); + response.getNfmModSettings()->setModAfInput((int) m_settings.m_modAFInput); + response.getNfmModSettings()->setPlayLoop(m_settings.m_playLoop ? 1 : 0); + response.getNfmModSettings()->setRfBandwidth(m_settings.m_rfBandwidth); + response.getNfmModSettings()->setRgbColor(m_settings.m_rgbColor); + + if (response.getNfmModSettings()->getTitle()) { + *response.getNfmModSettings()->getTitle() = m_settings.m_title; + } else { + response.getNfmModSettings()->setTitle(new QString(settings.m_title)); + } + + response.getNfmModSettings()->setToneFrequency(m_settings.m_toneFrequency); + response.getNfmModSettings()->setVolumeFactor(m_settings.m_volumeFactor); + + if (!response.getNfmModSettings()->getCwKeyer()) { + response.getNfmModSettings()->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings); + } + + SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = response.getNfmModSettings()->getCwKeyer(); + const CWKeyerSettings& cwKeyerSettings = m_cwKeyer.getSettings(); + apiCwKeyerSettings->setLoop(cwKeyerSettings.m_loop ? 1 : 0); + apiCwKeyerSettings->setMode((int) cwKeyerSettings.m_mode); + apiCwKeyerSettings->setSampleRate(cwKeyerSettings.m_sampleRate); + + if (apiCwKeyerSettings->getText()) { + *apiCwKeyerSettings->getText() = cwKeyerSettings.m_text; + } else { + apiCwKeyerSettings->setText(new QString(cwKeyerSettings.m_text)); + } + + apiCwKeyerSettings->setWpm(cwKeyerSettings.m_wpm); +} diff --git a/plugins/channeltx/modnfm/nfmmod.h b/plugins/channeltx/modnfm/nfmmod.h index 76815e08d..1a7c84039 100644 --- a/plugins/channeltx/modnfm/nfmmod.h +++ b/plugins/channeltx/modnfm/nfmmod.h @@ -310,6 +310,7 @@ private: void modulateSample(); void openFileStream(); void seekFileStream(int seekPercentage); + void webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const NFMModSettings& settings); }; diff --git a/plugins/channeltx/modnfm/nfmmodplugin.cpp b/plugins/channeltx/modnfm/nfmmodplugin.cpp index 805b6a307..d020c3594 100644 --- a/plugins/channeltx/modnfm/nfmmodplugin.cpp +++ b/plugins/channeltx/modnfm/nfmmodplugin.cpp @@ -23,7 +23,7 @@ const PluginDescriptor NFMModPlugin::m_pluginDescriptor = { QString("NFM Modulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channeltx/modssb/ssbmod.cpp b/plugins/channeltx/modssb/ssbmod.cpp index 02615dee8..ae997cd0f 100644 --- a/plugins/channeltx/modssb/ssbmod.cpp +++ b/plugins/channeltx/modssb/ssbmod.cpp @@ -19,12 +19,14 @@ #include #include #include + #include #include -#include + +#include "dsp/upchannelizer.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" #include "dsp/threadedbasebandsamplesource.h" +#include "dsp/dspcommands.h" #include "device/devicesinkapi.h" #include "util/db.h" @@ -584,6 +586,10 @@ bool SSBMod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channeltx/modssb/ssbmodplugin.cpp b/plugins/channeltx/modssb/ssbmodplugin.cpp index dec7a52ea..8f68befb3 100644 --- a/plugins/channeltx/modssb/ssbmodplugin.cpp +++ b/plugins/channeltx/modssb/ssbmodplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor SSBModPlugin::m_pluginDescriptor = { QString("SSB Modulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channeltx/modwfm/wfmmod.cpp b/plugins/channeltx/modwfm/wfmmod.cpp index b9aa3ee09..ed30f65c6 100644 --- a/plugins/channeltx/modwfm/wfmmod.cpp +++ b/plugins/channeltx/modwfm/wfmmod.cpp @@ -22,10 +22,10 @@ #include #include -#include +#include "dsp/upchannelizer.h" #include "dsp/dspengine.h" -#include "dsp/pidcontroller.h" #include "dsp/threadedbasebandsamplesource.h" +#include "dsp/dspcommands.h" #include "device/devicesinkapi.h" #include "wfmmod.h" @@ -359,6 +359,10 @@ bool WFMMod::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { return false; diff --git a/plugins/channeltx/modwfm/wfmmodplugin.cpp b/plugins/channeltx/modwfm/wfmmodplugin.cpp index 646f8dc23..ae13046d8 100644 --- a/plugins/channeltx/modwfm/wfmmodplugin.cpp +++ b/plugins/channeltx/modwfm/wfmmodplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor WFMModPlugin::m_pluginDescriptor = { QString("WFM Modulator"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channeltx/udpsink/udpsink.cpp b/plugins/channeltx/udpsink/udpsink.cpp index 3915fabf4..24060a85f 100644 --- a/plugins/channeltx/udpsink/udpsink.cpp +++ b/plugins/channeltx/udpsink/udpsink.cpp @@ -19,6 +19,7 @@ #include "device/devicesinkapi.h" #include "dsp/upchannelizer.h" #include "dsp/threadedbasebandsamplesource.h" +#include "dsp/dspcommands.h" #include "util/db.h" #include "udpsinkmsg.h" @@ -416,6 +417,10 @@ bool UDPSink::handleMessage(const Message& cmd) return true; } + else if (DSPSignalNotification::match(cmd)) + { + return true; + } else { if(m_spectrum != 0) diff --git a/plugins/channeltx/udpsink/udpsinkplugin.cpp b/plugins/channeltx/udpsink/udpsinkplugin.cpp index 40e52a73e..60449a9b4 100644 --- a/plugins/channeltx/udpsink/udpsinkplugin.cpp +++ b/plugins/channeltx/udpsink/udpsinkplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor UDPSinkPlugin::m_pluginDescriptor = { QString("UDP Channel Sink"), - QString("3.10.1"), + QString("3.12.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/sdrbase/CMakeLists.txt b/sdrbase/CMakeLists.txt index 4f8d3eebe..cdf237282 100644 --- a/sdrbase/CMakeLists.txt +++ b/sdrbase/CMakeLists.txt @@ -37,7 +37,6 @@ set(sdrbase_SOURCES dsp/lowpass.cpp dsp/nco.cpp dsp/ncof.cpp - dsp/pidcontroller.cpp dsp/phaselock.cpp dsp/samplesinkfifo.cpp dsp/samplesourcefifo.cpp @@ -138,7 +137,6 @@ set(sdrbase_HEADERS dsp/ncof.h dsp/phasediscri.h dsp/phaselock.h - dsp/pidcontroller.h dsp/recursivefilters.h dsp/samplesinkfifo.h dsp/samplesourcefifo.h diff --git a/sdrbase/sdrbase.pro b/sdrbase/sdrbase.pro index 7f55fb758..120955c06 100644 --- a/sdrbase/sdrbase.pro +++ b/sdrbase/sdrbase.pro @@ -83,7 +83,6 @@ SOURCES += audio/audiodeviceinfo.cpp\ dsp/lowpass.cpp\ dsp/nco.cpp\ dsp/ncof.cpp\ - dsp/pidcontroller.cpp\ dsp/phaselock.cpp\ dsp/recursivefilters.cpp\ dsp/samplesinkfifo.cpp\ @@ -169,7 +168,6 @@ HEADERS += audio/audiodeviceinfo.h\ dsp/ncof.h\ dsp/phasediscri.h\ dsp/phaselock.h\ - dsp/pidcontroller.h\ dsp/recursivefilters.h\ dsp/samplesinkfifo.h\ dsp/samplesourcefifo.h\