From 1a22772744e8d0294898c644490a5f921216945f Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 18 Apr 2017 02:10:37 +0200 Subject: [PATCH] LimeSDR input: fixed DSP message not sent to self when sending to buddies --- plugins/samplesource/limesdrinput/limesdrinput.cpp | 13 ++++++++++++- .../limesdrinput/limesdrinputsettings.cpp | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index 49c18e094..ba7f328cd 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -454,6 +454,11 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc std::vector::const_iterator itSource = sourceBuddies.begin(); int sampleRate = m_settings.m_devSampleRate/(1<<(m_settings.m_log2HardDecim + m_settings.m_log2SoftDecim)); + // send to self first + DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency); + m_deviceAPI->getDeviceInputMessageQueue()->push(notif); + + // send to source buddies for (; itSource != sourceBuddies.end(); ++itSource) { DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency); @@ -465,6 +470,7 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc (*itSource)->getDeviceInputMessageQueue()->push(report); } + // send to sink buddies const std::vector& sinkBuddies = m_deviceAPI->getSinkBuddies(); std::vector::const_iterator itSink = sinkBuddies.begin(); @@ -485,6 +491,11 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc std::vector::const_iterator it = sourceBuddies.begin(); int sampleRate = m_settings.m_devSampleRate/(1<<(m_settings.m_log2HardDecim + m_settings.m_log2SoftDecim)); + // send to self first + DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency); + m_deviceAPI->getDeviceInputMessageQueue()->push(notif); + + // send to source buddies for (; it != sourceBuddies.end(); ++it) { DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency); @@ -505,7 +516,7 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc qDebug() << "LimeSDRInput::applySettings: center freq: " << m_settings.m_centerFrequency << " Hz" << " device sample rate: " << m_settings.m_devSampleRate << "S/s" - << " sample rate after soft decimation: " << m_settings.m_devSampleRate/(1<