diff --git a/devices/bladerf2/devicebladerf2shared.h b/devices/bladerf2/devicebladerf2shared.h index 65b326069..946d0ea40 100644 --- a/devices/bladerf2/devicebladerf2shared.h +++ b/devices/bladerf2/devicebladerf2shared.h @@ -35,31 +35,37 @@ public: public: uint64_t getCenterFrequency() const { return m_centerFrequency; } + int getFcPos() const { return m_fcPos; } int getDevSampleRate() const { return m_devSampleRate; } bool getRxElseTx() const { return m_rxElseTx; } static MsgReportBuddyChange* create( uint64_t centerFrequency, + int fcPos, int devSampleRate, bool rxElseTx) { return new MsgReportBuddyChange( centerFrequency, + fcPos, devSampleRate, rxElseTx); } private: uint64_t m_centerFrequency; //!< Center frequency + int m_fcPos; //!< Center frequency position int m_devSampleRate; //!< device/host sample rate bool m_rxElseTx; //!< tells which side initiated the message MsgReportBuddyChange( uint64_t centerFrequency, + int fcPos, int devSampleRate, bool rxElseTx) : Message(), m_centerFrequency(centerFrequency), + m_fcPos(fcPos), m_devSampleRate(devSampleRate), m_rxElseTx(rxElseTx) { } diff --git a/plugins/samplesource/bladerf2input/bladerf2input.cpp b/plugins/samplesource/bladerf2input/bladerf2input.cpp index b4821887b..4faccd6a6 100644 --- a/plugins/samplesource/bladerf2input/bladerf2input.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2input.cpp @@ -602,6 +602,13 @@ bool BladeRF2Input::handleMessage(const Message& message) { settings.m_devSampleRate = report.getDevSampleRate(); settings.m_centerFrequency = report.getCenterFrequency(); + settings.m_fcPos = (BladeRF2InputSettings::fcPos_t) report.getFcPos(); + + BladeRF2InputThread *inputThread = findThread(); + + if (inputThread) { + inputThread->setFcPos(requestedChannel, (int) settings.m_fcPos); + } status = bladerf_get_bandwidth(dev, BLADERF_CHANNEL_RX(requestedChannel), &tmp_uint); @@ -878,6 +885,7 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo { DeviceBladeRF2Shared::MsgReportBuddyChange *report = DeviceBladeRF2Shared::MsgReportBuddyChange::create( settings.m_centerFrequency, + (int) settings.m_fcPos, settings.m_devSampleRate, true); (*itSource)->getSampleSourceInputMessageQueue()->push(report); @@ -894,6 +902,7 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo { DeviceBladeRF2Shared::MsgReportBuddyChange *report = DeviceBladeRF2Shared::MsgReportBuddyChange::create( settings.m_centerFrequency, + (int) settings.m_fcPos, settings.m_devSampleRate, true); (*itSink)->getSampleSinkInputMessageQueue()->push(report);