1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-04-30 23:48:53 -04:00

SDRPlay plugin: interface replaced by libmirisdr: refactor devices enumeration

This commit is contained in:
f4exb 2016-11-15 15:57:13 +01:00
parent 4dd5f70dcd
commit a9f7c67f7b

View File

@ -16,7 +16,7 @@
#include <QtPlugin>
#include <QAction>
#include <libusb-1.0/libusb.h>
#include <mirisdr.h>
#include "plugin/pluginapi.h"
#include "util/simpleserializer.h"
#include "sdrplaygui.h"
@ -51,51 +51,31 @@ void SDRPlayPlugin::initPlugin(PluginAPI* pluginAPI)
PluginInterface::SamplingDevices SDRPlayPlugin::enumSampleSources()
{
// USB device:
// New USB device found, idVendor=1df7, idProduct=2500
// New USB device strings: Mfr=0, Product=0, SerialNumber=0
libusb_context *usb_context = 0;
ssize_t num_devs;
SamplingDevices result;
libusb_device **devs;
libusb_device *dev;
int i = 0;
int count = mirisdr_get_device_count();
if (libusb_init(&usb_context)) {
return result;
char vendor[256];
char product[256];
char serial[256];
for(int i = 0; i < count; i++)
{
vendor[0] = '\0';
product[0] = '\0';
serial[0] = '\0';
if (mirisdr_get_device_usb_strings((uint32_t)i, vendor, product, serial) != 0)
{
continue;
}
num_devs = libusb_get_device_list(usb_context, &devs);
if (num_devs > 0)
{
while ((dev = devs[i++]) != 0)
{
struct libusb_device_descriptor desc;
struct libusb_config_descriptor *conf_desc = 0;
int res = libusb_get_device_descriptor(dev, &desc);
unsigned short dev_vid = desc.idVendor;
unsigned short dev_pid = desc.idProduct;
if ((dev_vid == 0x1df7) && (dev_pid == 0x2500))
{
QString displayedName(QString("SDRPlay[0] 0"));
qDebug("SDRPlayPlugin::enumSampleSources: found %s:%s (%s)", vendor, product, serial);
QString displayedName(QString("SDRPlay[%1] %2").arg(i).arg(serial));
result.append(SamplingDevice(displayedName,
m_deviceTypeID,
QString("0"),
0));
break;
}
}
}
libusb_free_device_list(devs, 1);
if (usb_context)
{
libusb_exit(usb_context);
QString(serial),
i));
}
return result;