From da963179fbc140048dfc62aefde51063f903ceaf Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 12 Sep 2018 15:46:42 +0200 Subject: [PATCH] UDP source and sink: align message names --- debian/changelog | 54 ++++++++++---------- plugins/channelrx/udpsink/udpsink.cpp | 26 +++++----- plugins/channelrx/udpsink/udpsink.h | 16 +++--- plugins/channelrx/udpsink/udpsinkgui.cpp | 8 +-- plugins/channeltx/udpsource/udpsource.cpp | 26 +++++----- plugins/channeltx/udpsource/udpsource.h | 16 +++--- plugins/channeltx/udpsource/udpsourcegui.cpp | 6 +-- 7 files changed, 77 insertions(+), 75 deletions(-) diff --git a/debian/changelog b/debian/changelog index d7342e7c5..415cc7da9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,17 +1,19 @@ sdrangel (4.1.0-1) unstable; urgency=medium - * Integrated SDRdaemon + * Integrated SDRdaemon with a pair of new channel plugins + * Exchanged UDP sink and source names for better consistency + * Fixed AudioFifo to prevent deadlocks. Fixes issue #210 + + -- Edouard Griffiths, F4EXB Sun, 16 Sep 2018 21:14:18 +0200 - -- Edouard Griffiths, F4EXB Sun, 02 Sep 2018 21:14:18 +0200 - sdrangel (4.0.7-1) unstable; urgency=medium * Scope: removed old scope objects - * Web API: reduced HTTP server debug messages + * Web API: reduced HTTP server debug messages * Sink plugins: corrected name getters and setters -- Edouard Griffiths, F4EXB Sun, 19 Aug 2018 21:14:18 +0200 - + sdrangel (4.0.6-1) unstable; urgency=medium * Web API: RTL-SDR: fixed RF bandwidth setting @@ -21,7 +23,7 @@ sdrangel (4.0.6-1) unstable; urgency=medium * SSB modulator: fixed sample not reset when no modulation is present -- Edouard Griffiths, F4EXB Tue, 07 Aug 2018 19:14:18 +0200 - + sdrangel (4.0.5-1) unstable; urgency=medium * Web API: handle pre-flight requests @@ -35,20 +37,20 @@ sdrangel (4.0.4-1) unstable; urgency=medium * Fix preset group delete not removing presets from the preset window -- Edouard Griffiths, F4EXB Wed, 18 Jul 2018 19:14:18 +0200 - + sdrangel (4.0.3-1) unstable; urgency=medium * Spectrum: linear mode for spectrum * Scope: fixed power display overlay -- Edouard Griffiths, F4EXB Sun, 08 Jul 2018 15:14:18 +0200 - + sdrangel (4.0.2-1) unstable; urgency=medium * Spectrum: added averaging -- Edouard Griffiths, F4EXB Sun, 01 Jul 2018 21:14:18 +0200 - + sdrangel (4.0.1-1) unstable; urgency=medium * DSD demod: added NXDN support @@ -57,7 +59,7 @@ sdrangel (4.0.1-1) unstable; urgency=medium * Scope: new magnitude squared projection mainly for radioastronomy -- Edouard Griffiths, F4EXB Sat, 23 Jun 2018 09:14:18 +0200 - + sdrangel (4.0.0-1) unstable; urgency=medium * Finalization of REST API and server instance @@ -110,7 +112,7 @@ sdrangel (3.14.3-1) unstable; urgency=medium * LimeSDR: implemented transverter dialog (issue #157) * UDP source and sink: make sure audio samples are always on 16 bits * UDP source and sink: dialog elements for address and port - * Reviewed FFT destruction in many channel sources and sinks (issue #159) + * Reviewed FFT destruction in many channel sources and sinks (issue #159) -- Edouard Griffiths, F4EXB Fri, 20 Apr 2018 20:14:18 +0200 @@ -145,7 +147,7 @@ sdrangel (3.14.0-1) unstable; urgency=medium sdrangel (3.13.1-1) unstable; urgency=medium * Web API: settings and report enry points for AM demod and AirspyHF - * Web API: client Python script scanner example + * Web API: client Python script scanner example * LimeSDR: fixed channelA/B frequency setting with latest LimeSuite -- Edouard Griffiths, F4EXB Sun, 25 Mar 2018 06:14:18 +0100 @@ -165,7 +167,7 @@ sdrangel (3.12.0-1) unstable; urgency=medium * 24 bit Rx DSP Debian builds * DC and IQ correction fixes * AirspyHF: fall back to official library support - * Test source: implemented phase imbalance + * Test source: implemented phase imbalance -- Edouard Griffiths, F4EXB Sun, 11 Feb 2018 12:14:18 +0100 @@ -178,7 +180,7 @@ sdrangel (3.11.1-1) unstable; urgency=medium sdrangel (3.11.0-1) unstable; urgency=medium * AirspyHF: support - * Refactored 8 bit samples shifting during decimation (RTL-SDR and HackRF Rx) + * Refactored 8 bit samples shifting during decimation (RTL-SDR and HackRF Rx) * RTL-SDR: implemented RF filter control (tuner bandwidth) * Airspy, BladeRF, HackRF, PlutoSDR, RTLSDR, SDRPlay: fix for no decimation * Test source input plugin for test of software internals @@ -202,7 +204,7 @@ sdrangel (3.10.0-1) unstable; urgency=medium * AM, SSB demodulators and SSB modulator: fix sample rate handling * Enhancements to presets processing and GUI * Improved build and system info logging - * Web API: added function to set device set focus (GUI only) + * Web API: added function to set device set focus (GUI only) -- Edouard Griffiths, F4EXB Sun, 07 Jan 2018 09:14:18 +0100 @@ -219,7 +221,7 @@ sdrangel (3.9.0-1) unstable; urgency=medium * Server: proof of concept * DSD demodulator: added optional high pass filter on audio (uese dsdcc v1.7.3) - * Down/Up channelizers: enqeue MsgChannelizerNotification to sample sink/source + * Down/Up channelizers: enqeue MsgChannelizerNotification to sample sink/source * Separate channel sample rate and offset frequency this data from settings * Use specific method to apply channelizer sample rate and frequency offset changes @@ -342,14 +344,14 @@ sdrangel (3.7.1-1) unstable; urgency=medium sdrangel (3.7.0-1) unstable; urgency=medium - * PlutoSDR: Rx support + * PlutoSDR: Rx support * GUI segregation: preliminary works -- Edouard Griffiths, F4EXB Thu, 17 Sep 2017 23:14:18 +0200 sdrangel (3.6.1-1) unstable; urgency=medium - * Basic channel settings dialog with title+color update and UDP parameters + * Basic channel settings dialog with title+color update and UDP parameters * Applied to UDPSink, UDPSource, DSDDemod, AMDemod, BFMDemod, NFMDemod * DSD, AM, NFM, BFM demods: added possibility to send AF via UDP @@ -388,7 +390,7 @@ sdrangel (3.5.3-1) unstable; urgency=medium sdrangel (3.5.2-1) unstable; urgency=medium * HackRF: stop Rx before start Tx automatically and vice versa - * HackRF: added option on Rx to drive Tx frequency change + * HackRF: added option on Rx to drive Tx frequency change * SSB mod and demod: make UI displays consistent with DSB, USB and LSB modes -- Edouard Griffiths, F4EXB Sat, 22 Jul 2017 09:14:18 +0200 @@ -411,13 +413,13 @@ sdrangel (3.5.0-1) unstable; urgency=medium * Changed frequency thumbweels color scheme * Activated compiler warnings and fixed warnings * Lots of little GUI fixes - + -- Edouard Griffiths, F4EXB Mon, 11 Jun 2017 19:14:18 +0200 sdrangel (3.4.5-1) unstable; urgency=medium - * Removed default constuctors in Moving average and AGC classes - + * Removed default constuctors in Moving average and AGC classes + -- Edouard Griffiths, F4EXB Mon, 11 May 2017 21:14:18 +0100 sdrangel (3.4.4-1) unstable; urgency=medium @@ -427,14 +429,14 @@ sdrangel (3.4.4-1) unstable; urgency=medium * LimeSDR: Windows 64 build * LimeSDR: integrated Debian build * cmake modules: search lib64 libraries - + -- Edouard Griffiths, F4EXB Mon, 08 May 2017 21:14:18 +0100 sdrangel (3.4.3-1) unstable; urgency=medium * DSD demod: use version 1.7.1 of dsdcc with PLL for symbol synchronization as an option * LimeSDR: fixed antenna selection in both input and output plugins - + -- Edouard Griffiths, F4EXB Mon, 08 May 2017 23:14:18 +0100 sdrangel (3.4.2-1) unstable; urgency=medium @@ -442,7 +444,7 @@ sdrangel (3.4.2-1) unstable; urgency=medium * DSD demod: use version 1.7.0 of dsdcc with PLL for symbol synchronization * DSD demod: kernel >= 4.4.52 workaround for SerialDV * Code cleanup: cppchack and Eclipse warnings - + -- Edouard Griffiths, F4EXB Wed, 26 Apr 2017 23:14:18 +0100 sdrangel (3.4.1-1) unstable; urgency=medium @@ -451,7 +453,7 @@ sdrangel (3.4.1-1) unstable; urgency=medium * HackRF support: fixed start/stop sequence * WFM Demod enhancement * CW Keyer: specifiy char signedness to fix error with some compilers - + -- Edouard Griffiths, F4EXB Wed, 26 Apr 2017 23:14:18 +0100 sdrangel (3.4.0-1) unstable; urgency=medium diff --git a/plugins/channelrx/udpsink/udpsink.cpp b/plugins/channelrx/udpsink/udpsink.cpp index 945c35a88..040c054df 100644 --- a/plugins/channelrx/udpsink/udpsink.cpp +++ b/plugins/channelrx/udpsink/udpsink.cpp @@ -34,9 +34,9 @@ const Real UDPSink::m_agcTarget = 16384.0f; -MESSAGE_CLASS_DEFINITION(UDPSink::MsgConfigureUDPSrc, Message) +MESSAGE_CLASS_DEFINITION(UDPSink::MsgConfigureUDPSource, Message) MESSAGE_CLASS_DEFINITION(UDPSink::MsgConfigureChannelizer, Message) -MESSAGE_CLASS_DEFINITION(UDPSink::MsgUDPSrcSpectrum, Message) +MESSAGE_CLASS_DEFINITION(UDPSink::MsgUDPSinkSpectrum, Message) const QString UDPSink::m_channelIdURI = "sdrangel.channel.udpsink"; const QString UDPSink::m_channelId = "UDPSink"; @@ -129,7 +129,7 @@ UDPSink::~UDPSink() void UDPSink::setSpectrum(MessageQueue* messageQueue, bool enabled) { - Message* cmd = MsgUDPSrcSpectrum::create(enabled); + Message* cmd = MsgUDPSinkSpectrum::create(enabled); messageQueue->push(cmd); } @@ -356,22 +356,22 @@ bool UDPSink::handleMessage(const Message& cmd) return true; } - else if (MsgConfigureUDPSrc::match(cmd)) + else if (MsgConfigureUDPSource::match(cmd)) { - MsgConfigureUDPSrc& cfg = (MsgConfigureUDPSrc&) cmd; - qDebug("UDPSink::handleMessage: MsgConfigureUDPSrc"); + MsgConfigureUDPSource& cfg = (MsgConfigureUDPSource&) cmd; + qDebug("UDPSink::handleMessage: MsgConfigureUDPSource"); applySettings(cfg.getSettings(), cfg.getForce()); return true; } - else if (MsgUDPSrcSpectrum::match(cmd)) + else if (MsgUDPSinkSpectrum::match(cmd)) { - MsgUDPSrcSpectrum& spc = (MsgUDPSrcSpectrum&) cmd; + MsgUDPSinkSpectrum& spc = (MsgUDPSinkSpectrum&) cmd; m_spectrumEnabled = spc.getEnabled(); - qDebug() << "UDPSink::handleMessage: MsgUDPSrcSpectrum: m_spectrumEnabled: " << m_spectrumEnabled; + qDebug() << "UDPSink::handleMessage: MsgUDPSinkSpectrum: m_spectrumEnabled: " << m_spectrumEnabled; return true; } @@ -629,14 +629,14 @@ bool UDPSink::deserialize(const QByteArray& data) { if (m_settings.deserialize(data)) { - MsgConfigureUDPSrc *msg = MsgConfigureUDPSrc::create(m_settings, true); + MsgConfigureUDPSource *msg = MsgConfigureUDPSource::create(m_settings, true); m_inputMessageQueue.push(msg); return true; } else { m_settings.resetToDefaults(); - MsgConfigureUDPSrc *msg = MsgConfigureUDPSrc::create(m_settings, true); + MsgConfigureUDPSource *msg = MsgConfigureUDPSource::create(m_settings, true); m_inputMessageQueue.push(msg); return false; } @@ -729,13 +729,13 @@ int UDPSink::webapiSettingsPutPatch( m_inputMessageQueue.push(msgChan); } - MsgConfigureUDPSrc *msg = MsgConfigureUDPSrc::create(settings, force); + MsgConfigureUDPSource *msg = MsgConfigureUDPSource::create(settings, force); m_inputMessageQueue.push(msg); qDebug("getUdpSinkSettings::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); if (m_guiMessageQueue) // forward to GUI if any { - MsgConfigureUDPSrc *msgToGUI = MsgConfigureUDPSrc::create(settings, force); + MsgConfigureUDPSource *msgToGUI = MsgConfigureUDPSource::create(settings, force); m_guiMessageQueue->push(msgToGUI); } diff --git a/plugins/channelrx/udpsink/udpsink.h b/plugins/channelrx/udpsink/udpsink.h index a1e6a07b3..5923226b0 100644 --- a/plugins/channelrx/udpsink/udpsink.h +++ b/plugins/channelrx/udpsink/udpsink.h @@ -45,23 +45,23 @@ class UDPSink : public BasebandSampleSink, public ChannelSinkAPI { Q_OBJECT public: - class MsgConfigureUDPSrc : public Message { + class MsgConfigureUDPSource : public Message { MESSAGE_CLASS_DECLARATION public: const UDPSinkSettings& getSettings() const { return m_settings; } bool getForce() const { return m_force; } - static MsgConfigureUDPSrc* create(const UDPSinkSettings& settings, bool force) + static MsgConfigureUDPSource* create(const UDPSinkSettings& settings, bool force) { - return new MsgConfigureUDPSrc(settings, force); + return new MsgConfigureUDPSource(settings, force); } private: UDPSinkSettings m_settings; bool m_force; - MsgConfigureUDPSrc(const UDPSinkSettings& settings, bool force) : + MsgConfigureUDPSource(const UDPSinkSettings& settings, bool force) : Message(), m_settings(settings), m_force(force) @@ -136,21 +136,21 @@ public slots: void audioReadyRead(); protected: - class MsgUDPSrcSpectrum : public Message { + class MsgUDPSinkSpectrum : public Message { MESSAGE_CLASS_DECLARATION public: bool getEnabled() const { return m_enabled; } - static MsgUDPSrcSpectrum* create(bool enabled) + static MsgUDPSinkSpectrum* create(bool enabled) { - return new MsgUDPSrcSpectrum(enabled); + return new MsgUDPSinkSpectrum(enabled); } private: bool m_enabled; - MsgUDPSrcSpectrum(bool enabled) : + MsgUDPSinkSpectrum(bool enabled) : Message(), m_enabled(enabled) { } diff --git a/plugins/channelrx/udpsink/udpsinkgui.cpp b/plugins/channelrx/udpsink/udpsinkgui.cpp index dc457b89b..eed9fcb54 100644 --- a/plugins/channelrx/udpsink/udpsinkgui.cpp +++ b/plugins/channelrx/udpsink/udpsinkgui.cpp @@ -90,9 +90,9 @@ bool UDPSinkGUI::deserialize(const QByteArray& data) bool UDPSinkGUI::handleMessage(const Message& message ) { - if (UDPSink::MsgConfigureUDPSrc::match(message)) + if (UDPSink::MsgConfigureUDPSource::match(message)) { - const UDPSink::MsgConfigureUDPSrc& cfg = (UDPSink::MsgConfigureUDPSrc&) message; + const UDPSink::MsgConfigureUDPSource& cfg = (UDPSink::MsgConfigureUDPSource&) message; m_settings = cfg.getSettings(); blockApplySettings(true); displaySettings(); @@ -391,7 +391,7 @@ void UDPSinkGUI::applySettingsImmediate(bool force) { if (m_doApplySettings) { - UDPSink::MsgConfigureUDPSrc* message = UDPSink::MsgConfigureUDPSrc::create( m_settings, force); + UDPSink::MsgConfigureUDPSource* message = UDPSink::MsgConfigureUDPSource::create( m_settings, force); m_udpSink->getInputMessageQueue()->push(message); } } @@ -404,7 +404,7 @@ void UDPSinkGUI::applySettings(bool force) m_settings.m_outputSampleRate, m_channelMarker.getCenterFrequency()); m_udpSink->getInputMessageQueue()->push(channelConfigMsg); - UDPSink::MsgConfigureUDPSrc* message = UDPSink::MsgConfigureUDPSrc::create( m_settings, force); + UDPSink::MsgConfigureUDPSource* message = UDPSink::MsgConfigureUDPSource::create( m_settings, force); m_udpSink->getInputMessageQueue()->push(message); ui->applyBtn->setEnabled(false); diff --git a/plugins/channeltx/udpsource/udpsource.cpp b/plugins/channeltx/udpsource/udpsource.cpp index 9e887963b..38b25e946 100644 --- a/plugins/channeltx/udpsource/udpsource.cpp +++ b/plugins/channeltx/udpsource/udpsource.cpp @@ -29,9 +29,9 @@ #include "udpsource.h" #include "udpsourcemsg.h" -MESSAGE_CLASS_DEFINITION(UDPSource::MsgConfigureUDPSink, Message) +MESSAGE_CLASS_DEFINITION(UDPSource::MsgConfigureUDPSource, Message) MESSAGE_CLASS_DEFINITION(UDPSource::MsgConfigureChannelizer, Message) -MESSAGE_CLASS_DEFINITION(UDPSource::MsgUDPSinkSpectrum, Message) +MESSAGE_CLASS_DEFINITION(UDPSource::MsgUDPSourceSpectrum, Message) MESSAGE_CLASS_DEFINITION(UDPSource::MsgResetReadIndex, Message) const QString UDPSource::m_channelIdURI = "sdrangel.channeltx.udpsource"; @@ -342,10 +342,10 @@ bool UDPSource::handleMessage(const Message& cmd) return true; } - else if (MsgConfigureUDPSink::match(cmd)) + else if (MsgConfigureUDPSource::match(cmd)) { - MsgConfigureUDPSink& cfg = (MsgConfigureUDPSink&) cmd; - qDebug() << "UDPSource::handleMessage: MsgConfigureUDPSink"; + MsgConfigureUDPSource& cfg = (MsgConfigureUDPSource&) cmd; + qDebug() << "UDPSource::handleMessage: MsgConfigureUDPSource"; applySettings(cfg.getSettings(), cfg.getForce()); @@ -403,11 +403,11 @@ bool UDPSource::handleMessage(const Message& cmd) return true; } - else if (MsgUDPSinkSpectrum::match(cmd)) + else if (MsgUDPSourceSpectrum::match(cmd)) { - MsgUDPSinkSpectrum& spc = (MsgUDPSinkSpectrum&) cmd; + MsgUDPSourceSpectrum& spc = (MsgUDPSourceSpectrum&) cmd; m_spectrumEnabled = spc.getEnabled(); - qDebug() << "UDPSource::handleMessage: MsgUDPSinkSpectrum: m_spectrumEnabled: " << m_spectrumEnabled; + qDebug() << "UDPSource::handleMessage: MsgUDPSourceSpectrum: m_spectrumEnabled: " << m_spectrumEnabled; return true; } @@ -440,7 +440,7 @@ bool UDPSource::handleMessage(const Message& cmd) void UDPSource::setSpectrum(bool enabled) { - Message* cmd = MsgUDPSinkSpectrum::create(enabled); + Message* cmd = MsgUDPSourceSpectrum::create(enabled); getInputMessageQueue()->push(cmd); } @@ -584,14 +584,14 @@ bool UDPSource::deserialize(const QByteArray& data) { if (m_settings.deserialize(data)) { - MsgConfigureUDPSink *msg = MsgConfigureUDPSink::create(m_settings, true); + MsgConfigureUDPSource *msg = MsgConfigureUDPSource::create(m_settings, true); m_inputMessageQueue.push(msg); return true; } else { m_settings.resetToDefaults(); - MsgConfigureUDPSink *msg = MsgConfigureUDPSink::create(m_settings, true); + MsgConfigureUDPSource *msg = MsgConfigureUDPSource::create(m_settings, true); m_inputMessageQueue.push(msg); return false; } @@ -684,12 +684,12 @@ int UDPSource::webapiSettingsPutPatch( m_inputMessageQueue.push(msgChan); } - MsgConfigureUDPSink *msg = MsgConfigureUDPSink::create(settings, force); + MsgConfigureUDPSource *msg = MsgConfigureUDPSource::create(settings, force); m_inputMessageQueue.push(msg); if (m_guiMessageQueue) // forward to GUI if any { - MsgConfigureUDPSink *msgToGUI = MsgConfigureUDPSink::create(settings, force); + MsgConfigureUDPSource *msgToGUI = MsgConfigureUDPSource::create(settings, force); m_guiMessageQueue->push(msgToGUI); } diff --git a/plugins/channeltx/udpsource/udpsource.h b/plugins/channeltx/udpsource/udpsource.h index 47c7d1f27..809834f82 100644 --- a/plugins/channeltx/udpsource/udpsource.h +++ b/plugins/channeltx/udpsource/udpsource.h @@ -39,23 +39,23 @@ class UDPSource : public BasebandSampleSource, public ChannelSourceAPI { Q_OBJECT public: - class MsgConfigureUDPSink : public Message { + class MsgConfigureUDPSource : public Message { MESSAGE_CLASS_DECLARATION public: const UDPSourceSettings& getSettings() const { return m_settings; } bool getForce() const { return m_force; } - static MsgConfigureUDPSink* create(const UDPSourceSettings& settings, bool force) + static MsgConfigureUDPSource* create(const UDPSourceSettings& settings, bool force) { - return new MsgConfigureUDPSink(settings, force); + return new MsgConfigureUDPSource(settings, force); } private: UDPSourceSettings m_settings; bool m_force; - MsgConfigureUDPSink(const UDPSourceSettings& settings, bool force) : + MsgConfigureUDPSource(const UDPSourceSettings& settings, bool force) : Message(), m_settings(settings), m_force(force) @@ -139,21 +139,21 @@ signals: void levelChanged(qreal rmsLevel, qreal peakLevel, int numSamples); private: - class MsgUDPSinkSpectrum : public Message { + class MsgUDPSourceSpectrum : public Message { MESSAGE_CLASS_DECLARATION public: bool getEnabled() const { return m_enabled; } - static MsgUDPSinkSpectrum* create(bool enabled) + static MsgUDPSourceSpectrum* create(bool enabled) { - return new MsgUDPSinkSpectrum(enabled); + return new MsgUDPSourceSpectrum(enabled); } private: bool m_enabled; - MsgUDPSinkSpectrum(bool enabled) : + MsgUDPSourceSpectrum(bool enabled) : Message(), m_enabled(enabled) { } diff --git a/plugins/channeltx/udpsource/udpsourcegui.cpp b/plugins/channeltx/udpsource/udpsourcegui.cpp index 3e8edbea3..fefa33893 100644 --- a/plugins/channeltx/udpsource/udpsourcegui.cpp +++ b/plugins/channeltx/udpsource/udpsourcegui.cpp @@ -86,9 +86,9 @@ bool UDPSourceGUI::deserialize(const QByteArray& data) bool UDPSourceGUI::handleMessage(const Message& message) { - if (UDPSource::MsgConfigureUDPSink::match(message)) + if (UDPSource::MsgConfigureUDPSource::match(message)) { - const UDPSource::MsgConfigureUDPSink& cfg = (UDPSource::MsgConfigureUDPSink&) message; + const UDPSource::MsgConfigureUDPSource& cfg = (UDPSource::MsgConfigureUDPSource&) message; m_settings = cfg.getSettings(); blockApplySettings(true); displaySettings(); @@ -199,7 +199,7 @@ void UDPSourceGUI::applySettings(bool force) m_settings.m_inputFrequencyOffset); m_udpSource->getInputMessageQueue()->push(msgChan); - UDPSource::MsgConfigureUDPSink* message = UDPSource::MsgConfigureUDPSink::create( m_settings, force); + UDPSource::MsgConfigureUDPSource* message = UDPSource::MsgConfigureUDPSource::create( m_settings, force); m_udpSource->getInputMessageQueue()->push(message); ui->applyBtn->setEnabled(false);