From b01c4e24772a3d3fd837d958765eab65c27a8618 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 21 May 2019 00:27:08 +0200 Subject: [PATCH] Device API: added a number of source and sink streams and update it from the plugins --- plugins/samplemimo/testmi/testmi.cpp | 1 + .../bladerf1output/bladerf1output.cpp | 1 + .../bladerf2output/bladerf2output.cpp | 11 +++++---- .../samplesink/filesink/filesinkoutput.cpp | 1 + .../samplesink/hackrfoutput/hackrfoutput.cpp | 1 + .../limesdroutput/limesdroutput.cpp | 3 ++- .../samplesink/localoutput/localoutput.cpp | 2 +- .../plutosdroutput/plutosdroutput.cpp | 1 + .../samplesink/remoteoutput/remoteoutput.cpp | 1 + .../soapysdroutput/soapysdroutput.cpp | 11 +++++---- plugins/samplesink/xtrxoutput/xtrxoutput.cpp | 10 ++++---- plugins/samplesource/airspy/airspyinput.cpp | 1 + .../samplesource/airspyhf/airspyhfinput.cpp | 1 + .../bladerf1input/bladerf1input.cpp | 1 + .../bladerf2input/bladerf2input.cpp | 11 +++++---- plugins/samplesource/fcdpro/fcdproinput.cpp | 1 + .../fcdproplus/fcdproplusinput.cpp | 1 + .../filesource/filesourceinput.cpp | 1 + .../samplesource/hackrfinput/hackrfinput.cpp | 1 + .../limesdrinput/limesdrinput.cpp | 3 ++- .../samplesource/localinput/localinput.cpp | 1 + plugins/samplesource/perseus/perseusinput.cpp | 1 + .../plutosdrinput/plutosdrinput.cpp | 1 + .../samplesource/remoteinput/remoteinput.cpp | 1 + plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 1 + plugins/samplesource/sdrplay/sdrplayinput.cpp | 1 + .../soapysdrinput/soapysdrinput.cpp | 11 +++++---- .../testsource/testsourceinput.cpp | 1 + plugins/samplesource/xtrxinput/xtrxinput.cpp | 9 +++---- sdrbase/device/deviceapi.cpp | 18 +++++++------- sdrbase/device/deviceapi.h | 20 +++++++++++----- sdrgui/mainwindow.cpp | 24 +++++++++---------- sdrgui/webapi/webapiadaptergui.cpp | 8 +++---- sdrsrv/maincore.cpp | 16 ++++++------- sdrsrv/webapi/webapiadaptersrv.cpp | 8 +++---- 35 files changed, 111 insertions(+), 74 deletions(-) diff --git a/plugins/samplemimo/testmi/testmi.cpp b/plugins/samplemimo/testmi/testmi.cpp index c7c562f51..8e11b548c 100644 --- a/plugins/samplemimo/testmi/testmi.cpp +++ b/plugins/samplemimo/testmi/testmi.cpp @@ -50,6 +50,7 @@ TestMI::TestMI(DeviceAPI *deviceAPI) : m_masterTimer(deviceAPI->getMasterTimer()) { m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addSourceStream(); // Add a new source stream data set in the engine m_deviceAPI->addAncillarySink(m_fileSink); m_sampleSinkFifos.push_back(SampleSinkFifo(96000 * 4)); diff --git a/plugins/samplesink/bladerf1output/bladerf1output.cpp b/plugins/samplesink/bladerf1output/bladerf1output.cpp index 30187c905..e6989cf53 100644 --- a/plugins/samplesink/bladerf1output/bladerf1output.cpp +++ b/plugins/samplesink/bladerf1output/bladerf1output.cpp @@ -48,6 +48,7 @@ Bladerf1Output::Bladerf1Output(DeviceAPI *deviceAPI) : { m_sampleSourceFifo.resize(16*BLADERFOUTPUT_BLOCKSIZE); openDevice(); + m_deviceAPI->setNbSinkStreams(1); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); diff --git a/plugins/samplesink/bladerf2output/bladerf2output.cpp b/plugins/samplesink/bladerf2output/bladerf2output.cpp index c1d60b498..b87c45860 100644 --- a/plugins/samplesink/bladerf2output/bladerf2output.cpp +++ b/plugins/samplesink/bladerf2output/bladerf2output.cpp @@ -51,6 +51,7 @@ BladeRF2Output::BladeRF2Output(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); + m_deviceAPI->setNbSinkStreams(1); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -140,7 +141,7 @@ bool BladeRF2Output::openDevice() } } - m_deviceShared.m_channel = m_deviceAPI->getItemIndex(); // publicly allocate channel + m_deviceShared.m_channel = m_deviceAPI->getDeviceItemIndex(); // publicly allocate channel m_deviceShared.m_sink = this; m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API return true; @@ -264,7 +265,7 @@ bool BladeRF2Output::start() return false; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); BladeRF2OutputThread *bladeRF2OutputThread = findThread(); bool needsStart = false; @@ -376,7 +377,7 @@ void BladeRF2Output::stop() return; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); BladeRF2OutputThread *bladeRF2OutputThread = findThread(); if (bladeRF2OutputThread == 0) { // no thread allocated @@ -610,7 +611,7 @@ bool BladeRF2Output::handleMessage(const Message& message) if (dev) // The BladeRF device must have been open to do so { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); if (report.getRxElseTx()) // Rx buddy change: check for sample rate change only { @@ -703,7 +704,7 @@ bool BladeRF2Output::applySettings(const BladeRF2OutputSettings& settings, bool QList reverseAPIKeys; struct bladerf *dev = m_deviceShared.m_dev->getDev(); - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); int nbChannels = getNbChannels(); qint64 deviceCenterFrequency = settings.m_centerFrequency; deviceCenterFrequency -= settings.m_transverterMode ? settings.m_transverterDeltaFrequency : 0; diff --git a/plugins/samplesink/filesink/filesinkoutput.cpp b/plugins/samplesink/filesink/filesinkoutput.cpp index 567072f46..d0d4bda51 100644 --- a/plugins/samplesink/filesink/filesinkoutput.cpp +++ b/plugins/samplesink/filesink/filesinkoutput.cpp @@ -49,6 +49,7 @@ FileSinkOutput::FileSinkOutput(DeviceAPI *deviceAPI) : m_startingTimeStamp(0), m_masterTimer(deviceAPI->getMasterTimer()) { + m_deviceAPI->setNbSinkStreams(1); } FileSinkOutput::~FileSinkOutput() diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp index f014bc30b..6f80f555e 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp @@ -46,6 +46,7 @@ HackRFOutput::HackRFOutput(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); + m_deviceAPI->setNbSinkStreams(1); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); diff --git a/plugins/samplesink/limesdroutput/limesdroutput.cpp b/plugins/samplesink/limesdroutput/limesdroutput.cpp index a374bdfc1..700cfc70f 100644 --- a/plugins/samplesink/limesdroutput/limesdroutput.cpp +++ b/plugins/samplesink/limesdroutput/limesdroutput.cpp @@ -54,6 +54,7 @@ LimeSDROutput::LimeSDROutput(DeviceAPI *deviceAPI) : m_running(false), m_channelAcquired(false) { + m_deviceAPI->setNbSinkStreams(1); m_sampleSourceFifo.resize(16*LIMESDROUTPUT_BLOCKSIZE); m_streamId.handle = 0; suspendRxBuddies(); @@ -88,7 +89,7 @@ void LimeSDROutput::destroy() bool LimeSDROutput::openDevice() { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); // look for Tx buddies and get reference to common parameters // if there is a channel left take the first available diff --git a/plugins/samplesink/localoutput/localoutput.cpp b/plugins/samplesink/localoutput/localoutput.cpp index 33f3ae3bb..89d42e157 100644 --- a/plugins/samplesink/localoutput/localoutput.cpp +++ b/plugins/samplesink/localoutput/localoutput.cpp @@ -44,7 +44,7 @@ LocalOutput::LocalOutput(DeviceAPI *deviceAPI) : m_deviceDescription("LocalOutput") { m_sampleSourceFifo.resize(96000 * 4); - + m_deviceAPI->setNbSinkStreams(1); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } diff --git a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp index 970cc2da1..58da35428 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp @@ -46,6 +46,7 @@ PlutoSDROutput::PlutoSDROutput(DeviceAPI *deviceAPI) : m_plutoTxBuffer(0), m_plutoSDROutputThread(0) { + m_deviceAPI->setNbSinkStreams(1); m_deviceSampleRates.m_addaConnvRate = 0; m_deviceSampleRates.m_bbRateHz = 0; m_deviceSampleRates.m_firRate = 0; diff --git a/plugins/samplesink/remoteoutput/remoteoutput.cpp b/plugins/samplesink/remoteoutput/remoteoutput.cpp index 537063e0b..527cf0e39 100644 --- a/plugins/samplesink/remoteoutput/remoteoutput.cpp +++ b/plugins/samplesink/remoteoutput/remoteoutput.cpp @@ -64,6 +64,7 @@ RemoteOutput::RemoteOutput(DeviceAPI *deviceAPI) : m_nbSamplesSinceRateCorrection(0), m_chunkSizeCorrection(0) { + m_deviceAPI->setNbSinkStreams(1); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); connect(&m_masterTimer, SIGNAL(timeout()), this, SLOT(tick())); diff --git a/plugins/samplesink/soapysdroutput/soapysdroutput.cpp b/plugins/samplesink/soapysdroutput/soapysdroutput.cpp index 6d8a9daab..5ab3c692f 100644 --- a/plugins/samplesink/soapysdroutput/soapysdroutput.cpp +++ b/plugins/samplesink/soapysdroutput/soapysdroutput.cpp @@ -44,6 +44,7 @@ SoapySDROutput::SoapySDROutput(DeviceAPI *deviceAPI) : m_running(false), m_thread(0) { + m_deviceAPI->setNbSinkStreams(1); openDevice(); initGainSettings(m_settings); initTunableElementsSettings(m_settings); @@ -141,7 +142,7 @@ bool SoapySDROutput::openDevice() m_deviceShared.m_deviceParams = new DeviceSoapySDRParams(m_deviceShared.m_device); } - m_deviceShared.m_channel = m_deviceAPI->getItemIndex(); // publicly allocate channel + m_deviceShared.m_channel = m_deviceAPI->getDeviceItemIndex(); // publicly allocate channel m_deviceShared.m_sink = this; m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API return true; @@ -448,7 +449,7 @@ bool SoapySDROutput::start() return false; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); SoapySDROutputThread *soapySDROutputThread = findThread(); bool needsStart = false; @@ -545,7 +546,7 @@ void SoapySDROutput::stop() return; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); SoapySDROutputThread *soapySDROutputThread = findThread(); if (soapySDROutputThread == 0) { // no thread allocated @@ -790,7 +791,7 @@ bool SoapySDROutput::handleMessage(const Message& message) } else if (DeviceSoapySDRShared::MsgReportBuddyChange::match(message)) { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); //DeviceSoapySDRShared::MsgReportBuddyChange& report = (DeviceSoapySDRShared::MsgReportBuddyChange&) message; SoapySDROutputSettings settings = m_settings; //bool fromRxBuddy = report.getRxElseTx(); @@ -861,7 +862,7 @@ bool SoapySDROutput::applySettings(const SoapySDROutputSettings& settings, bool SoapySDR::Device *dev = m_deviceShared.m_device; SoapySDROutputThread *outputThread = findThread(); - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); qint64 xlatedDeviceCenterFrequency = settings.m_centerFrequency; xlatedDeviceCenterFrequency -= settings.m_transverterMode ? settings.m_transverterDeltaFrequency : 0; xlatedDeviceCenterFrequency = xlatedDeviceCenterFrequency < 0 ? 0 : xlatedDeviceCenterFrequency; diff --git a/plugins/samplesink/xtrxoutput/xtrxoutput.cpp b/plugins/samplesink/xtrxoutput/xtrxoutput.cpp index 0c47fe5bc..4ee6b9bf3 100644 --- a/plugins/samplesink/xtrxoutput/xtrxoutput.cpp +++ b/plugins/samplesink/xtrxoutput/xtrxoutput.cpp @@ -53,7 +53,7 @@ XTRXOutput::XTRXOutput(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); - + m_deviceAPI->setNbSinkStreams(1); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -143,7 +143,7 @@ bool XTRXOutput::openDevice() } } - m_deviceShared.m_channel = m_deviceAPI->getItemIndex(); // publicly allocate channel + m_deviceShared.m_channel = m_deviceAPI->getDeviceItemIndex(); // publicly allocate channel m_deviceShared.m_sink = this; m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API return true; @@ -262,7 +262,7 @@ bool XTRXOutput::start() return false; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); XTRXOutputThread *xtrxOutputThread = findThread(); bool needsStart = false; @@ -361,7 +361,7 @@ void XTRXOutput::stop() return; } - int removedChannel = m_deviceAPI->getItemIndex(); // channel to remove + int removedChannel = m_deviceAPI->getDeviceItemIndex(); // channel to remove int requestedChannel = removedChannel ^ 1; // channel to keep (opposite channel) XTRXOutputThread *xtrxOutputThread = findThread(); @@ -756,7 +756,7 @@ bool XTRXOutput::handleMessage(const Message& message) bool XTRXOutput::applySettings(const XTRXOutputSettings& settings, bool force, bool forceNCOFrequency) { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); XTRXOutputThread *outputThread = findThread(); QList reverseAPIKeys; diff --git a/plugins/samplesource/airspy/airspyinput.cpp b/plugins/samplesource/airspy/airspyinput.cpp index a0ac7b223..e7d1f7ee9 100644 --- a/plugins/samplesource/airspy/airspyinput.cpp +++ b/plugins/samplesource/airspy/airspyinput.cpp @@ -55,6 +55,7 @@ AirspyInput::AirspyInput(DeviceAPI *deviceAPI) : { openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/airspyhf/airspyhfinput.cpp b/plugins/samplesource/airspyhf/airspyhfinput.cpp index a36c8c351..dd8772ed9 100644 --- a/plugins/samplesource/airspyhf/airspyhfinput.cpp +++ b/plugins/samplesource/airspyhf/airspyhfinput.cpp @@ -57,6 +57,7 @@ AirspyHFInput::AirspyHFInput(DeviceAPI *deviceAPI) : { openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); diff --git a/plugins/samplesource/bladerf1input/bladerf1input.cpp b/plugins/samplesource/bladerf1input/bladerf1input.cpp index 8642aa04b..d66773084 100644 --- a/plugins/samplesource/bladerf1input/bladerf1input.cpp +++ b/plugins/samplesource/bladerf1input/bladerf1input.cpp @@ -50,6 +50,7 @@ Bladerf1Input::Bladerf1Input(DeviceAPI *deviceAPI) : { openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); diff --git a/plugins/samplesource/bladerf2input/bladerf2input.cpp b/plugins/samplesource/bladerf2input/bladerf2input.cpp index beb691c8b..7245de741 100644 --- a/plugins/samplesource/bladerf2input/bladerf2input.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2input.cpp @@ -66,6 +66,7 @@ BladeRF2Input::BladeRF2Input(DeviceAPI *deviceAPI) : } m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -166,7 +167,7 @@ bool BladeRF2Input::openDevice() } } - m_deviceShared.m_channel = m_deviceAPI->getItemIndex(); // publicly allocate channel + m_deviceShared.m_channel = m_deviceAPI->getDeviceItemIndex(); // publicly allocate channel m_deviceShared.m_source = this; m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API return true; @@ -291,7 +292,7 @@ bool BladeRF2Input::start() return false; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); BladeRF2InputThread *bladerf2InputThread = findThread(); bool needsStart = false; @@ -406,7 +407,7 @@ void BladeRF2Input::stop() return; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); BladeRF2InputThread *bladerf2InputThread = findThread(); if (bladerf2InputThread == 0) { // no thread allocated @@ -629,7 +630,7 @@ bool BladeRF2Input::handleMessage(const Message& message) if (dev) // The BladeRF device must have been open to do so { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); if (report.getRxElseTx()) // Rx buddy change: check for: frequency, LO correction, gain mode and value, bias tee, sample rate, bandwidth { @@ -771,7 +772,7 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo bool forwardChangeTxBuddies = false; struct bladerf *dev = m_deviceShared.m_dev->getDev(); - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); qint64 xlatedDeviceCenterFrequency = settings.m_centerFrequency; xlatedDeviceCenterFrequency -= settings.m_transverterMode ? settings.m_transverterDeltaFrequency : 0; xlatedDeviceCenterFrequency = xlatedDeviceCenterFrequency < 0 ? 0 : xlatedDeviceCenterFrequency; diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index b5c8309df..6698788f0 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -50,6 +50,7 @@ FCDProInput::FCDProInput(DeviceAPI *deviceAPI) : m_fcdFIFO.setSize(20*fcd_traits::convBufSize); openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index 39ed2b3ac..fc4bbdddc 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -50,6 +50,7 @@ FCDProPlusInput::FCDProPlusInput(DeviceAPI *deviceAPI) : m_fcdFIFO.setSize(20*fcd_traits::convBufSize); openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index e4f1c8a18..b5ddb5305 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -63,6 +63,7 @@ FileSourceInput::FileSourceInput(DeviceAPI *deviceAPI) : m_startingTimeStamp(0), m_masterTimer(deviceAPI->getMasterTimer()) { + m_deviceAPI->setNbSourceStreams(1); qDebug("FileSourceInput::FileSourceInput: device source engine: %p", m_deviceAPI->getDeviceSourceEngine()); qDebug("FileSourceInput::FileSourceInput: device source engine message queue: %p", m_deviceAPI->getDeviceEngineInputMessageQueue()); qDebug("FileSourceInput::FileSourceInput: device source: %p", m_deviceAPI->getDeviceSourceEngine()->getSource()); diff --git a/plugins/samplesource/hackrfinput/hackrfinput.cpp b/plugins/samplesource/hackrfinput/hackrfinput.cpp index c27eac1c3..6c808d028 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinput.cpp @@ -52,6 +52,7 @@ HackRFInput::HackRFInput(DeviceAPI *deviceAPI) : openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_deviceAPI->setBuddySharedPtr(&m_sharedParams); diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index 46b90c2aa..dcef3de24 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -64,6 +64,7 @@ LimeSDRInput::LimeSDRInput(DeviceAPI *deviceAPI) : resumeRxBuddies(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); @@ -105,7 +106,7 @@ bool LimeSDRInput::openDevice() qDebug("LimeSDRInput::openDevice: allocated SampleFifo"); } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); // look for Rx buddies and get reference to common parameters // if there is a channel left take the first available diff --git a/plugins/samplesource/localinput/localinput.cpp b/plugins/samplesource/localinput/localinput.cpp index 72e913aea..a5e0b7805 100644 --- a/plugins/samplesource/localinput/localinput.cpp +++ b/plugins/samplesource/localinput/localinput.cpp @@ -48,6 +48,7 @@ LocalInput::LocalInput(DeviceAPI *deviceAPI) : m_sampleFifo.setSize(96000 * 4); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/perseus/perseusinput.cpp b/plugins/samplesource/perseus/perseusinput.cpp index 9b43017ab..72fcacc60 100644 --- a/plugins/samplesource/perseus/perseusinput.cpp +++ b/plugins/samplesource/perseus/perseusinput.cpp @@ -47,6 +47,7 @@ PerseusInput::PerseusInput(DeviceAPI *deviceAPI) : { openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp index bd90df412..97bc9d714 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp @@ -60,6 +60,7 @@ PlutoSDRInput::PlutoSDRInput(DeviceAPI *deviceAPI) : resumeBuddies(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/remoteinput/remoteinput.cpp b/plugins/samplesource/remoteinput/remoteinput.cpp index 04d3ce361..5224cbf66 100644 --- a/plugins/samplesource/remoteinput/remoteinput.cpp +++ b/plugins/samplesource/remoteinput/remoteinput.cpp @@ -55,6 +55,7 @@ RemoteInput::RemoteInput(DeviceAPI *deviceAPI) : m_remoteInputUDPHandler = new RemoteInputUDPHandler(&m_sampleFifo, m_deviceAPI); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index f976a07e0..9a3229c24 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -60,6 +60,7 @@ RTLSDRInput::RTLSDRInput(DeviceAPI *deviceAPI) : openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index 787effa76..afd948273 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -54,6 +54,7 @@ SDRPlayInput::SDRPlayInput(DeviceAPI *deviceAPI) : { openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); diff --git a/plugins/samplesource/soapysdrinput/soapysdrinput.cpp b/plugins/samplesource/soapysdrinput/soapysdrinput.cpp index b7c144600..46a227d15 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinput.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinput.cpp @@ -55,6 +55,7 @@ SoapySDRInput::SoapySDRInput(DeviceAPI *deviceAPI) : initDeviceArgSettings(m_settings); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); @@ -159,7 +160,7 @@ bool SoapySDRInput::openDevice() m_deviceShared.m_deviceParams = new DeviceSoapySDRParams(m_deviceShared.m_device); } - m_deviceShared.m_channel = m_deviceAPI->getItemIndex(); // publicly allocate channel + m_deviceShared.m_channel = m_deviceAPI->getDeviceItemIndex(); // publicly allocate channel m_deviceShared.m_source = this; m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API return true; @@ -481,7 +482,7 @@ bool SoapySDRInput::start() return false; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); SoapySDRInputThread *soapySDRInputThread = findThread(); bool needsStart = false; @@ -587,7 +588,7 @@ void SoapySDRInput::stop() return; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); SoapySDRInputThread *soapySDRInputThread = findThread(); if (soapySDRInputThread == 0) { // no thread allocated @@ -841,7 +842,7 @@ bool SoapySDRInput::handleMessage(const Message& message) } else if (DeviceSoapySDRShared::MsgReportBuddyChange::match(message)) { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); DeviceSoapySDRShared::MsgReportBuddyChange& report = (DeviceSoapySDRShared::MsgReportBuddyChange&) message; SoapySDRInputSettings settings = m_settings; settings.m_fcPos = (SoapySDRInputSettings::fcPos_t) report.getFcPos(); @@ -918,7 +919,7 @@ bool SoapySDRInput::applySettings(const SoapySDRInputSettings& settings, bool fo SoapySDR::Device *dev = m_deviceShared.m_device; SoapySDRInputThread *inputThread = findThread(); - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); qint64 xlatedDeviceCenterFrequency = settings.m_centerFrequency; xlatedDeviceCenterFrequency -= settings.m_transverterMode ? settings.m_transverterDeltaFrequency : 0; xlatedDeviceCenterFrequency = xlatedDeviceCenterFrequency < 0 ? 0 : xlatedDeviceCenterFrequency; diff --git a/plugins/samplesource/testsource/testsourceinput.cpp b/plugins/samplesource/testsource/testsourceinput.cpp index db6841655..6e3901731 100644 --- a/plugins/samplesource/testsource/testsourceinput.cpp +++ b/plugins/samplesource/testsource/testsourceinput.cpp @@ -47,6 +47,7 @@ TestSourceInput::TestSourceInput(DeviceAPI *deviceAPI) : m_masterTimer(deviceAPI->getMasterTimer()) { m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); if (!m_sampleFifo.setSize(96000 * 4)) { diff --git a/plugins/samplesource/xtrxinput/xtrxinput.cpp b/plugins/samplesource/xtrxinput/xtrxinput.cpp index 9755bd242..c8a41c266 100644 --- a/plugins/samplesource/xtrxinput/xtrxinput.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinput.cpp @@ -57,6 +57,7 @@ XTRXInput::XTRXInput(DeviceAPI *deviceAPI) : openDevice(); m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); + m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); @@ -158,7 +159,7 @@ bool XTRXInput::openDevice() } } - m_deviceShared.m_channel = m_deviceAPI->getItemIndex(); // publicly allocate channel + m_deviceShared.m_channel = m_deviceAPI->getDeviceItemIndex(); // publicly allocate channel m_deviceShared.m_source = this; m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API return true; @@ -277,7 +278,7 @@ bool XTRXInput::start() return false; } - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); XTRXInputThread *xtrxInputThread = findThread(); bool needsStart = false; @@ -376,7 +377,7 @@ void XTRXInput::stop() return; } - int removedChannel = m_deviceAPI->getItemIndex(); // channel to remove + int removedChannel = m_deviceAPI->getDeviceItemIndex(); // channel to remove int requestedChannel = removedChannel ^ 1; // channel to keep (opposite channel) XTRXInputThread *xtrxInputThread = findThread(); @@ -846,7 +847,7 @@ void XTRXInput::apply_gain_pga(double gain) bool XTRXInput::applySettings(const XTRXInputSettings& settings, bool force, bool forceNCOFrequency) { - int requestedChannel = m_deviceAPI->getItemIndex(); + int requestedChannel = m_deviceAPI->getDeviceItemIndex(); XTRXInputThread *inputThread = findThread(); QList reverseAPIKeys; diff --git a/sdrbase/device/deviceapi.cpp b/sdrbase/device/deviceapi.cpp index edd029a03..3cf7fb95b 100644 --- a/sdrbase/device/deviceapi.cpp +++ b/sdrbase/device/deviceapi.cpp @@ -38,13 +38,15 @@ DeviceAPI::DeviceAPI( ) : m_streamType(streamType), m_deviceTabIndex(deviceTabIndex), - m_nbItems(1), - m_itemIndex(0), - m_pluginInterface(0), + m_deviceNbItems(1), + m_deviceItemIndex(0), + m_nbSourceStreams(0), + m_nbSinkStreams(0), + m_pluginInterface(nullptr), m_masterTimer(DSPEngine::instance()->getMasterTimer()), m_samplingDeviceSequence(0), m_samplingDevicePluginInstanceUI(0), - m_buddySharedPtr(0), + m_buddySharedPtr(nullptr), m_isBuddyLeader(false), m_deviceSourceEngine(deviceSourceEngine), m_deviceSinkEngine(deviceSinkEngine), @@ -358,14 +360,14 @@ void DeviceAPI::setHardwareId(const QString& id) m_hardwareId = id; } -void DeviceAPI::setNbItems(uint32_t nbItems) +void DeviceAPI::setDeviceNbItems(uint32_t nbItems) { - m_nbItems = nbItems; + m_deviceNbItems = nbItems; } -void DeviceAPI::setItemIndex(uint32_t index) +void DeviceAPI::setDeviceItemIndex(uint32_t index) { - m_itemIndex = index; + m_deviceItemIndex = index; } void DeviceAPI::setSamplingDevicePluginInterface(PluginInterface *iface) diff --git a/sdrbase/device/deviceapi.h b/sdrbase/device/deviceapi.h index fe4a75337..6d3547c1d 100644 --- a/sdrbase/device/deviceapi.h +++ b/sdrbase/device/deviceapi.h @@ -126,8 +126,6 @@ public: void setSamplingDeviceSequence(int sequence) { m_samplingDeviceSequence = sequence; } // void setSampleSourceSequence(int sequence); // void setSampleSinkSequence(int sequence); - void setNbItems(uint32_t nbItems); - void setItemIndex(uint32_t index); void setSamplingDevicePluginInterface(PluginInterface *iface); // void setSampleSourcePluginInterface(PluginInterface *iface); // void setSampleSinkPluginInterface(PluginInterface *iface); @@ -149,8 +147,11 @@ public: // uint32_t getSampleSourceSequence() const { return m_sampleSourceSequence; } // uint32_t getSampleSinkSequence() const { return m_sampleSinkSequence; } - uint32_t getNbItems() const { return m_nbItems; } - uint32_t getItemIndex() const { return m_itemIndex; } + void setDeviceNbItems(uint32_t nbItems); + void setDeviceItemIndex(uint32_t index); + uint32_t getDeviceNbItems() const { return m_deviceNbItems; } + uint32_t getDeviceItemIndex() const { return m_deviceItemIndex; } + int getDeviceSetIndex() const { return m_deviceTabIndex; } PluginInterface *getPluginInterface() { return m_pluginInterface; } @@ -188,6 +189,11 @@ public: const std::vector& getSourceBuddies() const { return m_sourceBuddies; } const std::vector& getSinkBuddies() const { return m_sinkBuddies; } + void setNbSourceStreams(uint32_t nbSourceStreams) { m_nbSourceStreams = nbSourceStreams; } + void setNbSinkStreams(uint32_t nbSinkStreams) { m_nbSinkStreams = nbSinkStreams; } + uint32_t getNbSourceStreams() const { return m_nbSourceStreams; } + uint32_t getNbSinkStreams() const { return m_nbSinkStreams; } + const QTimer& getMasterTimer() const { return m_masterTimer; } //!< This is the DSPEngine master timer protected: @@ -196,8 +202,10 @@ protected: StreamType m_streamType; int m_deviceTabIndex; //!< This is the tab index in the GUI and also the device set index QString m_hardwareId; //!< The internal id that identifies the type of hardware (i.e. HackRF, BladeRF, ...) - uint32_t m_nbItems; //!< Number of items or streams in the device. Can be >1 for NxM devices (i.e. 2 for LimeSDR) - uint32_t m_itemIndex; //!< The Rx stream index. Can be >0 for NxM devices (i.e. 0 or 1 for LimeSDR) + uint32_t m_deviceNbItems; //!< Number of items in the physical device either Rx or Tx. Can be >1 for NxM devices (i.e. 2 for LimeSDR) + uint32_t m_deviceItemIndex; //!< The item index inb the Rx or Tx side of the physical device. Can be >0 for NxM devices (i.e. 0 or 1 for LimeSDR) + uint32_t m_nbSourceStreams; //!< The number of source streams in the logical device. 1 for Single Rx (SI) can be 0 or more for MIMO + uint32_t m_nbSinkStreams; //!< The number of sink streams in the logical device. 1 for Single Tx (SO) can be 0 or more for MIMO PluginInterface* m_pluginInterface; const QTimer& m_masterTimer; //!< This is the DSPEngine master timer QString m_samplingDeviceId; //!< The internal plugin ID corresponding to the device (i.e. for HackRF input, for HackRF output ...) diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index a53f2a2c0..5ea432d3e 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -303,8 +303,8 @@ void MainWindow::addSourceDevice(int deviceIndex) const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getRxSamplingDevice(deviceIndex); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - m_deviceUIs.back()->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - m_deviceUIs.back()->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + m_deviceUIs.back()->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + m_deviceUIs.back()->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); m_deviceUIs.back()->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -375,8 +375,8 @@ void MainWindow::addSinkDevice() int fileSinkDeviceIndex = DeviceEnumerator::instance()->getFileSinkDeviceIndex(); const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getTxSamplingDevice(fileSinkDeviceIndex); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - m_deviceUIs.back()->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - m_deviceUIs.back()->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + m_deviceUIs.back()->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + m_deviceUIs.back()->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); m_deviceUIs.back()->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -456,8 +456,8 @@ void MainWindow::addMIMODevice() int testMIMODeviceIndex = DeviceEnumerator::instance()->getTestMIMODeviceIndex(); const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getMIMOSamplingDevice(testMIMODeviceIndex); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - m_deviceUIs.back()->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - m_deviceUIs.back()->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + m_deviceUIs.back()->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + m_deviceUIs.back()->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); m_deviceUIs.back()->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -1656,8 +1656,8 @@ void MainWindow::sampleSourceChanged() const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getRxSamplingDevice( deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()); deviceUI->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - deviceUI->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - deviceUI->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + deviceUI->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + deviceUI->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); deviceUI->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); deviceUI->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); deviceUI->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -1745,8 +1745,8 @@ void MainWindow::sampleSinkChanged() const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getTxSamplingDevice(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()); deviceUI->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - deviceUI->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - deviceUI->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + deviceUI->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + deviceUI->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); deviceUI->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); deviceUI->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); deviceUI->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -1828,8 +1828,8 @@ void MainWindow::sampleMIMOChanged() const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getMIMOSamplingDevice( deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()); deviceUI->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - deviceUI->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - deviceUI->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + deviceUI->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + deviceUI->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); deviceUI->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); deviceUI->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); deviceUI->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); diff --git a/sdrgui/webapi/webapiadaptergui.cpp b/sdrgui/webapi/webapiadaptergui.cpp index 554b0c353..dfc58e4c4 100644 --- a/sdrgui/webapi/webapiadaptergui.cpp +++ b/sdrgui/webapi/webapiadaptergui.cpp @@ -1749,8 +1749,8 @@ void WebAPIAdapterGUI::getDeviceSet(SWGSDRangel::SWGDeviceSet *deviceSet, const *samplingDevice->getHwType() = deviceUISet->m_deviceAPI->getHardwareId(); *samplingDevice->getSerial() = deviceUISet->m_deviceAPI->getSamplingDeviceSerial(); samplingDevice->setSequence(deviceUISet->m_deviceAPI->getSamplingDeviceSequence()); - samplingDevice->setDeviceNbStreams(deviceUISet->m_deviceAPI->getNbItems()); - samplingDevice->setDeviceStreamIndex(deviceUISet->m_deviceAPI->getItemIndex()); + samplingDevice->setDeviceNbStreams(deviceUISet->m_deviceAPI->getDeviceNbItems()); + samplingDevice->setDeviceStreamIndex(deviceUISet->m_deviceAPI->getDeviceItemIndex()); deviceUISet->m_deviceAPI->getDeviceEngineStateStr(*samplingDevice->getState()); DeviceSampleSink *sampleSink = deviceUISet->m_deviceSinkEngine->getSink(); @@ -1781,8 +1781,8 @@ void WebAPIAdapterGUI::getDeviceSet(SWGSDRangel::SWGDeviceSet *deviceSet, const *samplingDevice->getHwType() = deviceUISet->m_deviceAPI->getHardwareId(); *samplingDevice->getSerial() = deviceUISet->m_deviceAPI->getSamplingDeviceSerial(); samplingDevice->setSequence(deviceUISet->m_deviceAPI->getSamplingDeviceSequence()); - samplingDevice->setDeviceNbStreams(deviceUISet->m_deviceAPI->getNbItems()); - samplingDevice->setDeviceStreamIndex(deviceUISet->m_deviceAPI->getItemIndex()); + samplingDevice->setDeviceNbStreams(deviceUISet->m_deviceAPI->getDeviceNbItems()); + samplingDevice->setDeviceStreamIndex(deviceUISet->m_deviceAPI->getDeviceItemIndex()); deviceUISet->m_deviceAPI->getDeviceEngineStateStr(*samplingDevice->getState()); DeviceSampleSource *sampleSource = deviceUISet->m_deviceSourceEngine->getSource(); diff --git a/sdrsrv/maincore.cpp b/sdrsrv/maincore.cpp index 1023c9342..aac9115ed 100644 --- a/sdrsrv/maincore.cpp +++ b/sdrsrv/maincore.cpp @@ -288,8 +288,8 @@ void MainCore::addSinkDevice() int fileSinkDeviceIndex = DeviceEnumerator::instance()->getFileSinkDeviceIndex(); const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getTxSamplingDevice(fileSinkDeviceIndex); m_deviceSets.back()->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - m_deviceSets.back()->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - m_deviceSets.back()->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + m_deviceSets.back()->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + m_deviceSets.back()->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); m_deviceSets.back()->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); m_deviceSets.back()->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); m_deviceSets.back()->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -330,8 +330,8 @@ void MainCore::addSourceDevice() int fileSourceDeviceIndex = DeviceEnumerator::instance()->getFileSourceDeviceIndex(); const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getRxSamplingDevice(fileSourceDeviceIndex); m_deviceSets.back()->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - m_deviceSets.back()->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - m_deviceSets.back()->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + m_deviceSets.back()->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + m_deviceSets.back()->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); m_deviceSets.back()->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); m_deviceSets.back()->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); m_deviceSets.back()->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -406,8 +406,8 @@ void MainCore::changeSampleSource(int deviceSetIndex, int selectedDeviceIndex) const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getRxSamplingDevice(selectedDeviceIndex); deviceSet->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - deviceSet->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - deviceSet->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + deviceSet->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + deviceSet->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); deviceSet->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); deviceSet->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); deviceSet->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); @@ -474,8 +474,8 @@ void MainCore::changeSampleSink(int deviceSetIndex, int selectedDeviceIndex) const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getTxSamplingDevice(selectedDeviceIndex); deviceSet->m_deviceAPI->setSamplingDeviceSequence(samplingDevice->sequence); - deviceSet->m_deviceAPI->setNbItems(samplingDevice->deviceNbItems); - deviceSet->m_deviceAPI->setItemIndex(samplingDevice->deviceItemIndex); + deviceSet->m_deviceAPI->setDeviceNbItems(samplingDevice->deviceNbItems); + deviceSet->m_deviceAPI->setDeviceItemIndex(samplingDevice->deviceItemIndex); deviceSet->m_deviceAPI->setHardwareId(samplingDevice->hardwareId); deviceSet->m_deviceAPI->setSamplingDeviceId(samplingDevice->id); deviceSet->m_deviceAPI->setSamplingDeviceSerial(samplingDevice->serial); diff --git a/sdrsrv/webapi/webapiadaptersrv.cpp b/sdrsrv/webapi/webapiadaptersrv.cpp index 32cdf67b9..955cea53e 100644 --- a/sdrsrv/webapi/webapiadaptersrv.cpp +++ b/sdrsrv/webapi/webapiadaptersrv.cpp @@ -1830,8 +1830,8 @@ void WebAPIAdapterSrv::getDeviceSet(SWGSDRangel::SWGDeviceSet *swgDeviceSet, con *samplingDevice->getHwType() = deviceSet->m_deviceAPI->getHardwareId(); *samplingDevice->getSerial() = deviceSet->m_deviceAPI->getSamplingDeviceSerial(); samplingDevice->setSequence(deviceSet->m_deviceAPI->getSamplingDeviceSequence()); - samplingDevice->setDeviceNbStreams(deviceSet->m_deviceAPI->getNbItems()); - samplingDevice->setDeviceStreamIndex(deviceSet->m_deviceAPI->getItemIndex()); + samplingDevice->setDeviceNbStreams(deviceSet->m_deviceAPI->getDeviceNbItems()); + samplingDevice->setDeviceStreamIndex(deviceSet->m_deviceAPI->getDeviceItemIndex()); deviceSet->m_deviceAPI->getDeviceEngineStateStr(*samplingDevice->getState()); DeviceSampleSink *sampleSink = deviceSet->m_deviceSinkEngine->getSink(); @@ -1862,8 +1862,8 @@ void WebAPIAdapterSrv::getDeviceSet(SWGSDRangel::SWGDeviceSet *swgDeviceSet, con *samplingDevice->getHwType() = deviceSet->m_deviceAPI->getHardwareId(); *samplingDevice->getSerial() = deviceSet->m_deviceAPI->getSamplingDeviceSerial(); samplingDevice->setSequence(deviceSet->m_deviceAPI->getSamplingDeviceSequence()); - samplingDevice->setDeviceNbStreams(deviceSet->m_deviceAPI->getNbItems()); - samplingDevice->setDeviceStreamIndex(deviceSet->m_deviceAPI->getItemIndex()); + samplingDevice->setDeviceNbStreams(deviceSet->m_deviceAPI->getDeviceNbItems()); + samplingDevice->setDeviceStreamIndex(deviceSet->m_deviceAPI->getDeviceItemIndex()); deviceSet->m_deviceAPI->getDeviceEngineStateStr(*samplingDevice->getState()); DeviceSampleSource *sampleSource = deviceSet->m_deviceSourceEngine->getSource();