LimeSDR support (5)

pull/27/head
f4exb 2017-04-12 17:25:26 +02:00
rodzic 3e3fd44ac0
commit 371bf9a5ec
1 zmienionych plików z 25 dodań i 13 usunięć

Wyświetl plik

@ -55,27 +55,39 @@ void LimeSDRInputPlugin::initPlugin(PluginAPI* pluginAPI)
PluginInterface::SamplingDevices LimeSDRInputPlugin::enumSampleSources() PluginInterface::SamplingDevices LimeSDRInputPlugin::enumSampleSources()
{ {
lms_info_str_t* deviceList;
int nbDevices;
SamplingDevices result; SamplingDevices result;
struct bladerf_devinfo *devinfo = 0;
int count = bladerf_get_device_list(&devinfo); if ((nbDevices = LMS_GetDeviceList(0)) <= 0)
for(int i = 0; i < count; i++)
{ {
QString displayedName(QString("BladeRF[%1] %2").arg(devinfo[i].instance).arg(devinfo[i].serial)); qDebug("LimeSDRInputPlugin::enumSampleSources: Could not find any LimeSDR device");
return result; // empty result
result.append(SamplingDevice(displayedName,
m_hardwareID,
m_deviceTypeID,
QString(devinfo[i].serial),
i));
} }
if (devinfo) deviceList = new lms_info_str_t[nbDevices];
if (LMS_GetDeviceList(deviceList) < 0)
{ {
bladerf_free_device_list(devinfo); // Valgrind memcheck qDebug("LimeSDRInputPlugin::enumSampleSources: Could not obtain LimeSDR devices information");
delete[] deviceList;
return result; // empty result
}
else
{
for (int i = 0; i < nbDevices; i++)
{
qDebug("LimeSDRInputPlugin::enumSampleSources: device #%d: %s", i, (char *) deviceList[i]);
QString displayedName(QString("LimeSDR[%1] %2").arg(i).arg(deviceList[i]));
result.append(SamplingDevice(displayedName,
m_hardwareID,
m_deviceTypeID,
QString(deviceList[i]),
i));
}
} }
delete[] deviceList;
return result; return result;
} }