From 8e07820e8e07678150b5710518c4a59291d89d64 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 24 Dec 2017 11:05:16 +0100 Subject: [PATCH] all source and sink plugins except FileSource and SDRdaemonSource: apply settings with force on construction --- plugins/samplesink/bladerfoutput/bladerfoutput.cpp | 2 ++ plugins/samplesink/filesink/filesinkoutput.cpp | 1 + plugins/samplesink/hackrfoutput/hackrfoutput.cpp | 2 ++ plugins/samplesink/plutosdroutput/plutosdroutput.cpp | 4 +++- plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp | 1 + plugins/samplesource/airspy/airspyinput.cpp | 2 ++ plugins/samplesource/bladerfinput/bladerfinput.cpp | 2 ++ plugins/samplesource/fcdpro/fcdproinput.cpp | 9 ++++++--- plugins/samplesource/fcdproplus/fcdproplusinput.cpp | 9 ++++++--- plugins/samplesource/hackrfinput/hackrfinput.cpp | 2 ++ plugins/samplesource/plutosdrinput/plutosdrinput.cpp | 4 +++- plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 2 ++ plugins/samplesource/sdrplay/sdrplayinput.cpp | 2 ++ 13 files changed, 34 insertions(+), 8 deletions(-) diff --git a/plugins/samplesink/bladerfoutput/bladerfoutput.cpp b/plugins/samplesink/bladerfoutput/bladerfoutput.cpp index 6e89f8eaa..0a3725619 100644 --- a/plugins/samplesink/bladerfoutput/bladerfoutput.cpp +++ b/plugins/samplesink/bladerfoutput/bladerfoutput.cpp @@ -47,6 +47,8 @@ BladerfOutput::BladerfOutput(DeviceSinkAPI *deviceAPI) : m_sampleSourceFifo.resize(16*BLADERFOUTPUT_BLOCKSIZE); openDevice(); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); + + applySettings(m_settings, true); } BladerfOutput::~BladerfOutput() diff --git a/plugins/samplesink/filesink/filesinkoutput.cpp b/plugins/samplesink/filesink/filesinkoutput.cpp index b94535a34..61345f4b5 100644 --- a/plugins/samplesink/filesink/filesinkoutput.cpp +++ b/plugins/samplesink/filesink/filesinkoutput.cpp @@ -49,6 +49,7 @@ FileSinkOutput::FileSinkOutput(DeviceSinkAPI *deviceAPI) : m_startingTimeStamp(0), m_masterTimer(deviceAPI->getMasterTimer()) { + applySettings(m_settings, true); } FileSinkOutput::~FileSinkOutput() diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp index e613bc793..f2d38dea0 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp @@ -47,6 +47,8 @@ HackRFOutput::HackRFOutput(DeviceSinkAPI *deviceAPI) : { openDevice(); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); + + applySettings(m_settings, true); } HackRFOutput::~HackRFOutput() diff --git a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp index 4029c295f..ca771c856 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp @@ -45,6 +45,8 @@ PlutoSDROutput::PlutoSDROutput(DeviceSinkAPI *deviceAPI) : suspendBuddies(); openDevice(); resumeBuddies(); + + applySettings(m_settings, true); } PlutoSDROutput::~PlutoSDROutput() @@ -346,7 +348,7 @@ bool PlutoSDROutput::applySettings(const PlutoSDROutputSettings& settings, bool << " <-FIR- " << m_deviceSampleRates.m_firRate; forwardChangeOtherDSP = true; - forwardChangeOwnDSP = (m_settings.m_devSampleRate != settings.m_devSampleRate); + forwardChangeOwnDSP = (m_settings.m_devSampleRate != settings.m_devSampleRate) || force; } if ((m_settings.m_log2Interp != settings.m_log2Interp) || force) diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp index db4e775c2..e2371b42a 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp @@ -47,6 +47,7 @@ SDRdaemonSinkOutput::SDRdaemonSinkOutput(DeviceSinkAPI *deviceAPI) : m_startingTimeStamp(0), m_masterTimer(deviceAPI->getMasterTimer()) { + applySettings(m_settings, true); } SDRdaemonSinkOutput::~SDRdaemonSinkOutput() diff --git a/plugins/samplesource/airspy/airspyinput.cpp b/plugins/samplesource/airspy/airspyinput.cpp index 1e7c82610..704637763 100644 --- a/plugins/samplesource/airspy/airspyinput.cpp +++ b/plugins/samplesource/airspy/airspyinput.cpp @@ -52,6 +52,8 @@ AirspyInput::AirspyInput(DeviceSourceAPI *deviceAPI) : sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID()); m_fileSink = new FileRecord(std::string(recFileNameCStr)); m_deviceAPI->addSink(m_fileSink); + + applySettings(m_settings, true); } AirspyInput::~AirspyInput() diff --git a/plugins/samplesource/bladerfinput/bladerfinput.cpp b/plugins/samplesource/bladerfinput/bladerfinput.cpp index 1169e2663..8d623f6aa 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinput.cpp @@ -53,6 +53,8 @@ BladerfInput::BladerfInput(DeviceSourceAPI *deviceAPI) : m_deviceAPI->addSink(m_fileSink); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); + + applySettings(m_settings, false); } BladerfInput::~BladerfInput() diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index e13f0d2ec..9613f4d52 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -54,6 +54,8 @@ FCDProInput::FCDProInput(DeviceSourceAPI *deviceAPI) : sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID()); m_fileSink = new FileRecord(std::string(recFileNameCStr)); m_deviceAPI->addSink(m_fileSink); + + applySettings(m_settings, true); } FCDProInput::~FCDProInput() @@ -224,7 +226,7 @@ bool FCDProInput::handleMessage(const Message& message) void FCDProInput::applySettings(const FCDProSettings& settings, bool force) { - bool signalChange = false; + bool forwardChange = false; if (force || (m_settings.m_centerFrequency != settings.m_centerFrequency) || (m_settings.m_transverterMode != settings.m_transverterMode) @@ -242,8 +244,9 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force) qDebug() << "FCDProInput::applySettings: center freq: " << settings.m_centerFrequency << " Hz" << " device center freq: " << deviceCenterFrequency << " Hz"; + forwardChange = (m_settings.m_centerFrequency != settings.m_centerFrequency) || force; + m_settings.m_centerFrequency = settings.m_centerFrequency; - signalChange = true; } if ((m_settings.m_lnaGainIndex != settings.m_lnaGainIndex) || force) @@ -428,7 +431,7 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force) m_deviceAPI->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqCorrection); } - if (signalChange) + if (forwardChange) { DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits::sampleRate, m_settings.m_centerFrequency); m_fileSink->handleMessage(*notif); // forward to file sink diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index b17c5ec64..50b4e02f8 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -53,6 +53,8 @@ FCDProPlusInput::FCDProPlusInput(DeviceSourceAPI *deviceAPI) : sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID()); m_fileSink = new FileRecord(std::string(recFileNameCStr)); m_deviceAPI->addSink(m_fileSink); + + applySettings(m_settings, true); } FCDProPlusInput::~FCDProPlusInput() @@ -218,7 +220,7 @@ bool FCDProPlusInput::handleMessage(const Message& message) void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool force) { - bool signalChange = false; + bool forwardChange = false; if (force || (m_settings.m_centerFrequency != settings.m_centerFrequency) || (m_settings.m_transverterMode != settings.m_transverterMode) @@ -236,8 +238,9 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for qDebug() << "FCDProPlusInput::applySettings: center freq: " << settings.m_centerFrequency << " Hz" << " device center freq: " << deviceCenterFrequency << " Hz"; + forwardChange = (m_settings.m_centerFrequency != settings.m_centerFrequency) || force; + m_settings.m_centerFrequency = settings.m_centerFrequency; - signalChange = true; } if ((m_settings.m_lnaGain != settings.m_lnaGain) || force) @@ -322,7 +325,7 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for m_deviceAPI->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance); } - if (signalChange) + if (forwardChange) { DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits::sampleRate, m_settings.m_centerFrequency); m_fileSink->handleMessage(*notif); // forward to file sink diff --git a/plugins/samplesource/hackrfinput/hackrfinput.cpp b/plugins/samplesource/hackrfinput/hackrfinput.cpp index 304f99a22..36706427e 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinput.cpp @@ -56,6 +56,8 @@ HackRFInput::HackRFInput(DeviceSourceAPI *deviceAPI) : m_deviceAPI->addSink(m_fileSink); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); + + applySettings(m_settings, true); } HackRFInput::~HackRFInput() diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp index 44a903b27..f075136be 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp @@ -52,6 +52,8 @@ PlutoSDRInput::PlutoSDRInput(DeviceSourceAPI *deviceAPI) : sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID()); m_fileSink = new FileRecord(std::string(recFileNameCStr)); m_deviceAPI->addSink(m_fileSink); + + applySettings(m_settings, true); } PlutoSDRInput::~PlutoSDRInput() @@ -381,7 +383,7 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo << " -FIR-> " << m_deviceSampleRates.m_firRate; forwardChangeOtherDSP = true; - forwardChangeOwnDSP = (m_settings.m_devSampleRate != settings.m_devSampleRate); + forwardChangeOwnDSP = (m_settings.m_devSampleRate != settings.m_devSampleRate) || force; } if ((m_settings.m_log2Decim != settings.m_log2Decim) || force) diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index 57e43ce9c..c3fb4510b 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -59,6 +59,8 @@ RTLSDRInput::RTLSDRInput(DeviceSourceAPI *deviceAPI) : sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID()); m_fileSink = new FileRecord(std::string(recFileNameCStr)); m_deviceAPI->addSink(m_fileSink); + + applySettings(m_settings, true); } RTLSDRInput::~RTLSDRInput() diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index 0f01613c4..c7bf8cd27 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -53,6 +53,8 @@ SDRPlayInput::SDRPlayInput(DeviceSourceAPI *deviceAPI) : sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID()); m_fileSink = new FileRecord(std::string(recFileNameCStr)); m_deviceAPI->addSink(m_fileSink); + + applySettings(m_settings, true, true); } SDRPlayInput::~SDRPlayInput()