mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-02 16:39:39 -04:00
SDRPlay plugin: interface replaced by libmirisdr: refactor devices enumeration
This commit is contained in:
parent
4dd5f70dcd
commit
a9f7c67f7b
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include <QtPlugin>
|
#include <QtPlugin>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <libusb-1.0/libusb.h>
|
#include <mirisdr.h>
|
||||||
#include "plugin/pluginapi.h"
|
#include "plugin/pluginapi.h"
|
||||||
#include "util/simpleserializer.h"
|
#include "util/simpleserializer.h"
|
||||||
#include "sdrplaygui.h"
|
#include "sdrplaygui.h"
|
||||||
@ -51,51 +51,31 @@ void SDRPlayPlugin::initPlugin(PluginAPI* pluginAPI)
|
|||||||
|
|
||||||
PluginInterface::SamplingDevices SDRPlayPlugin::enumSampleSources()
|
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;
|
SamplingDevices result;
|
||||||
libusb_device **devs;
|
int count = mirisdr_get_device_count();
|
||||||
libusb_device *dev;
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
if (libusb_init(&usb_context)) {
|
char vendor[256];
|
||||||
return result;
|
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);
|
qDebug("SDRPlayPlugin::enumSampleSources: found %s:%s (%s)", vendor, product, serial);
|
||||||
|
QString displayedName(QString("SDRPlay[%1] %2").arg(i).arg(serial));
|
||||||
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"));
|
|
||||||
|
|
||||||
result.append(SamplingDevice(displayedName,
|
result.append(SamplingDevice(displayedName,
|
||||||
m_deviceTypeID,
|
m_deviceTypeID,
|
||||||
QString("0"),
|
QString(serial),
|
||||||
0));
|
i));
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
libusb_free_device_list(devs, 1);
|
|
||||||
|
|
||||||
if (usb_context)
|
|
||||||
{
|
|
||||||
libusb_exit(usb_context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user