From 7ea814c18024e6c87c4d7b5d2e7b2adf636c3b7c Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 7 May 2019 18:58:20 +0200 Subject: [PATCH] Plugin interface: use enum for single Rx or single Tx type and added the any type --- .../bladerf1output/bladerf1outputplugin.cpp | 2 +- .../bladerf2output/bladerf2outputplugin.cpp | 2 +- plugins/samplesink/filesink/filesinkplugin.cpp | 2 +- .../samplesink/hackrfoutput/hackrfoutputplugin.cpp | 2 +- .../limesdroutput/limesdroutputplugin.cpp | 2 +- .../plutosdroutput/plutosdroutputplugin.cpp | 2 +- .../samplesink/remoteoutput/remoteoutputplugin.cpp | 2 +- .../soapysdroutput/soapysdroutputplugin.cpp | 2 +- plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp | 2 +- plugins/samplesource/airspy/airspyplugin.cpp | 2 +- plugins/samplesource/airspyhf/airspyhfplugin.cpp | 2 +- .../bladerf1input/bladerf1inputplugin.cpp | 2 +- .../bladerf2input/bladerf2inputplugin.cpp | 2 +- plugins/samplesource/fcdpro/fcdproplugin.cpp | 2 +- .../samplesource/fcdproplus/fcdproplusplugin.cpp | 2 +- .../samplesource/filesource/filesourceplugin.cpp | 2 +- .../samplesource/hackrfinput/hackrfinputplugin.cpp | 2 +- .../limesdrinput/limesdrinputplugin.cpp | 2 +- .../samplesource/localinput/localinputplugin.cpp | 2 +- plugins/samplesource/perseus/perseusplugin.cpp | 2 +- .../plutosdrinput/plutosdrinputplugin.cpp | 2 +- .../samplesource/remoteinput/remoteinputplugin.cpp | 2 +- plugins/samplesource/rtlsdr/rtlsdrplugin.cpp | 2 +- plugins/samplesource/sdrplay/sdrplayplugin.cpp | 2 +- .../soapysdrinput/soapysdrinputplugin.cpp | 2 +- .../samplesource/testsource/testsourceplugin.cpp | 2 +- plugins/samplesource/xtrxinput/xtrxinputplugin.cpp | 2 +- sdrbase/plugin/plugininterface.h | 13 ++++++++++--- sdrgui/webapi/webapiadaptergui.cpp | 2 +- sdrsrv/webapi/webapiadaptersrv.cpp | 2 +- 30 files changed, 39 insertions(+), 32 deletions(-) diff --git a/plugins/samplesink/bladerf1output/bladerf1outputplugin.cpp b/plugins/samplesink/bladerf1output/bladerf1outputplugin.cpp index 5d4b822a5..6050b9c04 100644 --- a/plugins/samplesink/bladerf1output/bladerf1outputplugin.cpp +++ b/plugins/samplesink/bladerf1output/bladerf1outputplugin.cpp @@ -94,7 +94,7 @@ PluginInterface::SamplingDevices Bladerf1OutputPlugin::enumSampleSinks() QString(devinfo[i].serial), i, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, 1, 0)); diff --git a/plugins/samplesink/bladerf2output/bladerf2outputplugin.cpp b/plugins/samplesink/bladerf2output/bladerf2outputplugin.cpp index ac7704aa9..c933e912e 100644 --- a/plugins/samplesink/bladerf2output/bladerf2outputplugin.cpp +++ b/plugins/samplesink/bladerf2output/bladerf2outputplugin.cpp @@ -98,7 +98,7 @@ PluginInterface::SamplingDevices BladeRF2OutputPlugin::enumSampleSinks() QString(devinfo[i].serial), i, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, nbTxChannels, j)); } diff --git a/plugins/samplesink/filesink/filesinkplugin.cpp b/plugins/samplesink/filesink/filesinkplugin.cpp index fa961e0af..83c3eb2e7 100644 --- a/plugins/samplesink/filesink/filesinkplugin.cpp +++ b/plugins/samplesink/filesink/filesinkplugin.cpp @@ -66,7 +66,7 @@ PluginInterface::SamplingDevices FileSinkPlugin::enumSampleSinks() QString::null, 0, PluginInterface::SamplingDevice::BuiltInDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, 1, 0)); diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp index e74e3f46b..dd2f17c16 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp @@ -101,7 +101,7 @@ PluginInterface::SamplingDevices HackRFOutputPlugin::enumSampleSinks() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, 1, 0)); diff --git a/plugins/samplesink/limesdroutput/limesdroutputplugin.cpp b/plugins/samplesink/limesdroutput/limesdroutputplugin.cpp index b0804d5ec..d98c1e174 100644 --- a/plugins/samplesink/limesdroutput/limesdroutputplugin.cpp +++ b/plugins/samplesink/limesdroutput/limesdroutputplugin.cpp @@ -101,7 +101,7 @@ PluginInterface::SamplingDevices LimeSDROutputPlugin::enumSampleSinks() QString(deviceList[i]), i, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, limeSDRParams.m_nbTxChannels, j)); } diff --git a/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp b/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp index 0d9c6896b..79f60b55e 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp @@ -78,7 +78,7 @@ PluginInterface::SamplingDevices PlutoSDROutputPlugin::enumSampleSinks() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, 1, 0)); diff --git a/plugins/samplesink/remoteoutput/remoteoutputplugin.cpp b/plugins/samplesink/remoteoutput/remoteoutputplugin.cpp index 9f17b4525..f687c5a1f 100644 --- a/plugins/samplesink/remoteoutput/remoteoutputplugin.cpp +++ b/plugins/samplesink/remoteoutput/remoteoutputplugin.cpp @@ -66,7 +66,7 @@ PluginInterface::SamplingDevices RemoteOutputPlugin::enumSampleSinks() QString::null, 0, PluginInterface::SamplingDevice::BuiltInDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, 1, 0)); diff --git a/plugins/samplesink/soapysdroutput/soapysdroutputplugin.cpp b/plugins/samplesink/soapysdroutput/soapysdroutputplugin.cpp index 37c8a0174..a776aa734 100644 --- a/plugins/samplesink/soapysdroutput/soapysdroutputplugin.cpp +++ b/plugins/samplesink/soapysdroutput/soapysdroutputplugin.cpp @@ -81,7 +81,7 @@ PluginInterface::SamplingDevices SoapySDROutputPlugin::enumSampleSinks() serial, idev, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, nbTxChannels, ichan)); } diff --git a/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp b/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp index 5522161dc..0c4004d6c 100644 --- a/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp +++ b/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp @@ -78,7 +78,7 @@ PluginInterface::SamplingDevices XTRXOutputPlugin::enumSampleSinks() QString(devs[i].uniqname), i, PluginInterface::SamplingDevice::PhysicalDevice, - false, + PluginInterface::SamplingDevice::StreamSingleTx, XTRXParams.m_nbTxChannels, j)); } diff --git a/plugins/samplesource/airspy/airspyplugin.cpp b/plugins/samplesource/airspy/airspyplugin.cpp index 6f5af5ead..3050e559c 100644 --- a/plugins/samplesource/airspy/airspyplugin.cpp +++ b/plugins/samplesource/airspy/airspyplugin.cpp @@ -107,7 +107,7 @@ PluginInterface::SamplingDevices AirspyPlugin::enumSampleSources() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/airspyhf/airspyhfplugin.cpp b/plugins/samplesource/airspyhf/airspyhfplugin.cpp index 58400d5e0..563324dee 100644 --- a/plugins/samplesource/airspyhf/airspyhfplugin.cpp +++ b/plugins/samplesource/airspyhf/airspyhfplugin.cpp @@ -83,7 +83,7 @@ PluginInterface::SamplingDevices AirspyHFPlugin::enumSampleSources() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp b/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp index ad79186b9..fe72c1109 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp +++ b/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp @@ -94,7 +94,7 @@ PluginInterface::SamplingDevices Blderf1InputPlugin::enumSampleSources() QString(devinfo[i].serial), i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); } diff --git a/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp b/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp index f94fc8366..38e091d0e 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp @@ -98,7 +98,7 @@ PluginInterface::SamplingDevices Blderf2InputPlugin::enumSampleSources() QString(devinfo[i].serial), i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, nbRxChannels, j)); } diff --git a/plugins/samplesource/fcdpro/fcdproplugin.cpp b/plugins/samplesource/fcdpro/fcdproplugin.cpp index 33a22fc53..f6dcc0e9f 100644 --- a/plugins/samplesource/fcdpro/fcdproplugin.cpp +++ b/plugins/samplesource/fcdpro/fcdproplugin.cpp @@ -71,7 +71,7 @@ PluginInterface::SamplingDevices FCDProPlugin::enumSampleSources() serialNumber, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp b/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp index 61a0b6384..aa762c7a4 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusplugin.cpp @@ -73,7 +73,7 @@ PluginInterface::SamplingDevices FCDProPlusPlugin::enumSampleSources() serialNumber, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/filesource/filesourceplugin.cpp b/plugins/samplesource/filesource/filesourceplugin.cpp index 784fd7378..445d8ed67 100644 --- a/plugins/samplesource/filesource/filesourceplugin.cpp +++ b/plugins/samplesource/filesource/filesourceplugin.cpp @@ -66,7 +66,7 @@ PluginInterface::SamplingDevices FileSourcePlugin::enumSampleSources() QString::null, 0, PluginInterface::SamplingDevice::BuiltInDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp index c4b10ec69..e3f6ee88e 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp @@ -104,7 +104,7 @@ PluginInterface::SamplingDevices HackRFInputPlugin::enumSampleSources() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp b/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp index 9b99899e6..5423eceeb 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp @@ -100,7 +100,7 @@ PluginInterface::SamplingDevices LimeSDRInputPlugin::enumSampleSources() QString(deviceList[i]), i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, limeSDRParams.m_nbRxChannels, j)); } diff --git a/plugins/samplesource/localinput/localinputplugin.cpp b/plugins/samplesource/localinput/localinputplugin.cpp index d06d1a355..d6ce37608 100644 --- a/plugins/samplesource/localinput/localinputplugin.cpp +++ b/plugins/samplesource/localinput/localinputplugin.cpp @@ -66,7 +66,7 @@ PluginInterface::SamplingDevices LocalInputPlugin::enumSampleSources() QString::null, 0, PluginInterface::SamplingDevice::BuiltInDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/perseus/perseusplugin.cpp b/plugins/samplesource/perseus/perseusplugin.cpp index 24b2ffd2f..8538a4eae 100644 --- a/plugins/samplesource/perseus/perseusplugin.cpp +++ b/plugins/samplesource/perseus/perseusplugin.cpp @@ -78,7 +78,7 @@ PluginInterface::SamplingDevices PerseusPlugin::enumSampleSources() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp index 5b99856c7..af8cdcd5a 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp @@ -78,7 +78,7 @@ PluginInterface::SamplingDevices PlutoSDRInputPlugin::enumSampleSources() serial_str, i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/remoteinput/remoteinputplugin.cpp b/plugins/samplesource/remoteinput/remoteinputplugin.cpp index b99f5b1e0..7fe0be4dd 100644 --- a/plugins/samplesource/remoteinput/remoteinputplugin.cpp +++ b/plugins/samplesource/remoteinput/remoteinputplugin.cpp @@ -66,7 +66,7 @@ PluginInterface::SamplingDevices RemoteInputPlugin::enumSampleSources() QString::null, 0, PluginInterface::SamplingDevice::BuiltInDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp index cb2c5f5ae..77a1520b2 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp @@ -62,7 +62,7 @@ PluginInterface::SamplingDevices RTLSDRPlugin::enumSampleSources() QString(serial), i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); } diff --git a/plugins/samplesource/sdrplay/sdrplayplugin.cpp b/plugins/samplesource/sdrplay/sdrplayplugin.cpp index 110745306..5faa0d5ba 100644 --- a/plugins/samplesource/sdrplay/sdrplayplugin.cpp +++ b/plugins/samplesource/sdrplay/sdrplayplugin.cpp @@ -83,7 +83,7 @@ PluginInterface::SamplingDevices SDRPlayPlugin::enumSampleSources() QString(serial), i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); } diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp b/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp index 89d1d5f4d..e08ed5c80 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp @@ -80,7 +80,7 @@ PluginInterface::SamplingDevices SoapySDRInputPlugin::enumSampleSources() serial, idev, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, nbRxChannels, ichan)); } diff --git a/plugins/samplesource/testsource/testsourceplugin.cpp b/plugins/samplesource/testsource/testsourceplugin.cpp index cb69aa56e..e17c10c4f 100644 --- a/plugins/samplesource/testsource/testsourceplugin.cpp +++ b/plugins/samplesource/testsource/testsourceplugin.cpp @@ -66,7 +66,7 @@ PluginInterface::SamplingDevices TestSourcePlugin::enumSampleSources() QString::null, 0, PluginInterface::SamplingDevice::BuiltInDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, 1, 0)); diff --git a/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp b/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp index 04221d218..97c3bd6a9 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp @@ -79,7 +79,7 @@ PluginInterface::SamplingDevices XTRXInputPlugin::enumSampleSources() QString(devs[i].uniqname), i, PluginInterface::SamplingDevice::PhysicalDevice, - true, + PluginInterface::SamplingDevice::StreamSingleRx, XTRXParams.m_nbRxChannels, j)); } diff --git a/sdrbase/plugin/plugininterface.h b/sdrbase/plugin/plugininterface.h index fca56083b..966e0c0e5 100644 --- a/sdrbase/plugin/plugininterface.h +++ b/sdrbase/plugin/plugininterface.h @@ -39,13 +39,20 @@ public: BuiltInDevice }; + enum StreamType + { + StreamSingleRx, //!< Exposes a single input stream that can be one of the streams of a physical device + StreamSingleTx, //!< Exposes a single output stream that can be one of the streams of a physical device + StreamAny //!< May expose any number of input and/or output streams + }; + QString displayedName; //!< The human readable name QString hardwareId; //!< The internal id that identifies the type of hardware (i.e. HackRF, BladeRF, ...) QString id; //!< The internal plugin ID corresponding to the device (i.e. for HackRF input, for HackRF output ...) QString serial; //!< The device serial number defined by the vendor or a fake one (SDRplay) int sequence; //!< The device sequence. >0 when more than one device of the same type is connected SamplingDeviceType type; //!< The sampling device type for behavior information - bool rxElseTx; //!< This is the Rx part else the Tx part of the device + StreamType streamType; //!< This is the type of stream supported int deviceNbItems; //!< Number of items (or streams) in the device. >1 for composite devices. int deviceItemIndex; //!< For composite devices this is the Rx or Tx stream index. -1 if not initialized int claimed; //!< This is the device set index if claimed else -1 @@ -56,7 +63,7 @@ public: const QString& _serial, int _sequence, SamplingDeviceType _type, - bool _rxElseTx, + StreamType _streamType, int _deviceNbItems, int _deviceItemIndex) : displayedName(_displayedName), @@ -65,7 +72,7 @@ public: serial(_serial), sequence(_sequence), type(_type), - rxElseTx(_rxElseTx), + streamType(_streamType), deviceNbItems(_deviceNbItems), deviceItemIndex(_deviceItemIndex), claimed(-1) diff --git a/sdrgui/webapi/webapiadaptergui.cpp b/sdrgui/webapi/webapiadaptergui.cpp index ede39045d..d17a61fda 100644 --- a/sdrgui/webapi/webapiadaptergui.cpp +++ b/sdrgui/webapi/webapiadaptergui.cpp @@ -133,7 +133,7 @@ int WebAPIAdapterGUI::instanceDevices( *devices->back()->getHwType() = samplingDevice.hardwareId; *devices->back()->getSerial() = samplingDevice.serial; devices->back()->setSequence(samplingDevice.sequence); - devices->back()->setDirection(samplingDevice.rxElseTx ? 0 : 1); + devices->back()->setDirection((int) samplingDevice.streamType); devices->back()->setDeviceNbStreams(samplingDevice.deviceNbItems); devices->back()->setDeviceSetIndex(samplingDevice.claimed); devices->back()->setIndex(i); diff --git a/sdrsrv/webapi/webapiadaptersrv.cpp b/sdrsrv/webapi/webapiadaptersrv.cpp index 51c5cef74..970b23179 100644 --- a/sdrsrv/webapi/webapiadaptersrv.cpp +++ b/sdrsrv/webapi/webapiadaptersrv.cpp @@ -133,7 +133,7 @@ int WebAPIAdapterSrv::instanceDevices( *devices->back()->getHwType() = samplingDevice.hardwareId; *devices->back()->getSerial() = samplingDevice.serial; devices->back()->setSequence(samplingDevice.sequence); - devices->back()->setDirection(samplingDevice.rxElseTx ? 0 : 1); + devices->back()->setDirection((int) samplingDevice.streamType); devices->back()->setDeviceNbStreams(samplingDevice.deviceNbItems); devices->back()->setDeviceSetIndex(samplingDevice.claimed); devices->back()->setIndex(i);