PluginManager::selectSampleSourceBySerialOrSequence: store plugin interface in device API

This commit is contained in:
f4exb 2017-09-15 01:30:25 +02:00
parent 6b6b99f30e
commit 29f975942c
4 changed files with 12 additions and 2 deletions

View File

@ -173,6 +173,11 @@ void DeviceSourceAPI::setSampleSourceSequence(int sequence)
m_deviceSourceEngine->setSourceSequence(sequence);
}
void DeviceSourceAPI::setSampleSourcePluginInterface(PluginInterface *interface)
{
m_pluginInterface = interface;
}
void DeviceSourceAPI::setSampleSourcePluginInstanceUI(PluginInstanceUI *gui)
{
if (m_sampleSourcePluginInstanceUI != 0)

View File

@ -36,6 +36,7 @@ class ChannelMarker;
class QWidget;
class PluginInstanceUI;
class PluginAPI;
class PluginInterface;
class Preset;
class DeviceSinkAPI;
@ -72,12 +73,14 @@ public:
void setSampleSourceSerial(const QString& serial);
void setSampleSourceDisplayName(const QString& serial);
void setSampleSourceSequence(int sequence);
void setSampleSourcePluginInterface(PluginInterface *interface);
void setSampleSourcePluginInstanceUI(PluginInstanceUI *gui);
const QString& getHardwareId() const { return m_hardwareId; }
const QString& getSampleSourceId() const { return m_sampleSourceId; }
const QString& getSampleSourceSerial() const { return m_sampleSourceSerial; }
const QString& getSampleSourceDisplayName() const { return m_sampleSourceDisplayName; }
PluginInterface *getPluginInterface() { return m_pluginInterface; }
uint32_t getSampleSourceSequence() const { return m_sampleSourceSequence; }
void registerChannelInstance(const QString& channelName, PluginInstanceUI* pluginGUI);
@ -148,6 +151,7 @@ protected:
QString m_sampleSourceSerial;
QString m_sampleSourceDisplayName;
uint32_t m_sampleSourceSequence;
PluginInterface* m_pluginInterface;
PluginInstanceUI* m_sampleSourcePluginInstanceUI;
ChannelInstanceRegistrations m_channelInstanceRegistrations;

View File

@ -212,10 +212,10 @@ void MainWindow::addSourceDevice()
ui->tabInputsSelect->addTab(m_deviceUIs.back()->m_samplingDeviceControl, tabNameCStr);
ui->tabInputsSelect->setTabToolTip(deviceTabIndex, QString(uidCStr));
int deviceIndex = m_pluginManager->selectSampleSourceBySerialOrSequence("sdrangel.samplesource.filesource", "0", 0, m_deviceUIs.back()->m_deviceSourceAPI);
m_pluginManager->selectSampleSourceBySerialOrSequence("sdrangel.samplesource.filesource", "0", 0, m_deviceUIs.back()->m_deviceSourceAPI);
QWidget *gui;
PluginInstanceUI *pluginGUI = m_pluginManager->getPluginInterfaceAt(deviceIndex)->createSampleSourcePluginInstanceGUI(
PluginInstanceUI *pluginGUI = m_deviceUIs.back()->m_deviceSourceAPI->getPluginInterface()->createSampleSourcePluginInstanceGUI(
m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceId(), &gui, m_deviceUIs.back()->m_deviceSourceAPI);
m_deviceUIs.back()->m_deviceSourceAPI->setSampleSourcePluginInstanceUI(pluginGUI);
m_deviceUIs.back()->m_deviceSourceAPI->setInputGUI(gui, m_deviceUIs.back()->m_deviceSourceAPI->getSampleSourceDisplayName());

View File

@ -509,6 +509,7 @@ int PluginManager::selectSampleSourceBySerialOrSequence(const QString& sourceId,
deviceAPI->setSampleSourceId(m_sampleSourceDevices[index].m_deviceId);
deviceAPI->setSampleSourceSerial(m_sampleSourceDevices[index].m_deviceSerial);
deviceAPI->setSampleSourceDisplayName(m_sampleSourceDevices[index].m_displayName);
deviceAPI->setSampleSourcePluginInterface(m_sampleSourceDevices[index].m_plugin);
return index;
}