mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-02 22:12:26 -04:00
Fixed source plugins virtual methods
This commit is contained in:
parent
a1efdcc8dc
commit
3ced80e198
@ -182,6 +182,7 @@ Assuming Debian Jessie is used:
|
|||||||
- Many other little things...
|
- Many other little things...
|
||||||
|
|
||||||
<h1>To Do</h1>
|
<h1>To Do</h1>
|
||||||
|
- Specialize plugins into channel and sample source plugins since both have almost complete different requirements and only little in common
|
||||||
- Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON).
|
- Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON).
|
||||||
- Allow arbitrary sample rate for channelizers and demodulators (not multiple of 48 kHz). Prerequisite for polyphase channelizer
|
- Allow arbitrary sample rate for channelizers and demodulators (not multiple of 48 kHz). Prerequisite for polyphase channelizer
|
||||||
- Implement polyphase channelizer
|
- Implement polyphase channelizer
|
||||||
|
@ -23,12 +23,12 @@ public:
|
|||||||
{
|
{
|
||||||
QString filename;
|
QString filename;
|
||||||
QPluginLoader* loader;
|
QPluginLoader* loader;
|
||||||
PluginInterface* plugin;
|
PluginInterface* pluginInterface;
|
||||||
|
|
||||||
Plugin(const QString& _filename, QPluginLoader* pluginLoader, PluginInterface* _plugin) :
|
Plugin(const QString& _filename, QPluginLoader* pluginLoader, PluginInterface* _plugin) :
|
||||||
filename(_filename),
|
filename(_filename),
|
||||||
loader(pluginLoader),
|
loader(pluginLoader),
|
||||||
plugin(_plugin)
|
pluginInterface(_plugin)
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ private:
|
|||||||
|
|
||||||
static inline bool operator<(const PluginManager::Plugin& a, const PluginManager::Plugin& b)
|
static inline bool operator<(const PluginManager::Plugin& a, const PluginManager::Plugin& b)
|
||||||
{
|
{
|
||||||
return a.plugin->getPluginDescriptor().displayedName < b.plugin->getPluginDescriptor().displayedName;
|
return a.pluginInterface->getPluginDescriptor().displayedName < b.pluginInterface->getPluginDescriptor().displayedName;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // INCLUDE_PLUGINMANAGER_H
|
#endif // INCLUDE_PLUGINMANAGER_H
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
virtual PluginGUI* createChannel(const QString& channelName) { return 0; }
|
virtual PluginGUI* createChannel(const QString& channelName) { return 0; }
|
||||||
|
|
||||||
virtual SampleSourceDevices enumSampleSources() { return SampleSourceDevices(); }
|
virtual SampleSourceDevices enumSampleSources() { return SampleSourceDevices(); }
|
||||||
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId, const QString& sourceSerial, int sourceSequence) { return 0; }
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId) { return 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_INTERFACE(PluginInterface, "de.maintech.SDRangelove.PluginInterface/0.1");
|
Q_DECLARE_INTERFACE(PluginInterface, "de.maintech.SDRangelove.PluginInterface/0.1");
|
||||||
|
@ -74,9 +74,9 @@ PluginInterface::SampleSourceDevices FCDProPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* FCDProPlugin::createSampleSourcePluginGUI(const QString& sourceName, const QByteArray& address)
|
PluginGUI* FCDProPlugin::createSampleSourcePluginGUI(const QString& sourceId)
|
||||||
{
|
{
|
||||||
if(sourceName == fcd_traits<Pro>::interfaceIID)
|
if(sourceId == fcd_traits<Pro>::interfaceIID)
|
||||||
{
|
{
|
||||||
FCDProGui* gui = new FCDProGui(m_pluginAPI);
|
FCDProGui* gui = new FCDProGui(m_pluginAPI);
|
||||||
m_pluginAPI->setInputGUI(gui);
|
m_pluginAPI->setInputGUI(gui);
|
||||||
|
@ -17,8 +17,8 @@ public:
|
|||||||
const PluginDescriptor& getPluginDescriptor() const;
|
const PluginDescriptor& getPluginDescriptor() const;
|
||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
PluginGUI* createSampleSourcePluginGUI(const QString& sourceName, const QByteArray& address);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -69,9 +69,9 @@ PluginInterface::SampleSourceDevices FileSourcePlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* FileSourcePlugin::createSampleSourcePluginGUI(const QString& sourceName, const QByteArray& address)
|
PluginGUI* FileSourcePlugin::createSampleSourcePluginGUI(const QString& sourceId)
|
||||||
{
|
{
|
||||||
if(sourceName == "org.osmocom.sdr.samplesource.filesource") {
|
if(sourceId == "org.osmocom.sdr.samplesource.filesource") {
|
||||||
FileSourceGui* gui = new FileSourceGui(m_pluginAPI);
|
FileSourceGui* gui = new FileSourceGui(m_pluginAPI);
|
||||||
m_pluginAPI->setInputGUI(gui);
|
m_pluginAPI->setInputGUI(gui);
|
||||||
return gui;
|
return gui;
|
||||||
|
@ -31,8 +31,8 @@ public:
|
|||||||
const PluginDescriptor& getPluginDescriptor() const;
|
const PluginDescriptor& getPluginDescriptor() const;
|
||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
PluginGUI* createSampleSourcePluginGUI(const QString& sourceName, const QByteArray& address);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const PluginDescriptor m_pluginDescriptor;
|
static const PluginDescriptor m_pluginDescriptor;
|
||||||
|
@ -119,14 +119,14 @@ PluginInterface::SampleSourceDevices HackRFPlugin::enumSampleSources()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginGUI* HackRFPlugin::createSampleSourcePluginGUI(const QString& sourceName, const QByteArray& address)
|
PluginGUI* HackRFPlugin::createSampleSourcePluginGUI(const QString& sourceId)
|
||||||
{
|
{
|
||||||
if (!m_pluginAPI)
|
if (!m_pluginAPI)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sourceName == m_deviceTypeID)
|
if(sourceId == m_deviceTypeID)
|
||||||
{
|
{
|
||||||
HackRFGui* gui = new HackRFGui(m_pluginAPI);
|
HackRFGui* gui = new HackRFGui(m_pluginAPI);
|
||||||
m_pluginAPI->setInputGUI(gui);
|
m_pluginAPI->setInputGUI(gui);
|
||||||
|
@ -33,8 +33,8 @@ public:
|
|||||||
const PluginDescriptor& getPluginDescriptor() const;
|
const PluginDescriptor& getPluginDescriptor() const;
|
||||||
void initPlugin(PluginAPI* pluginAPI);
|
void initPlugin(PluginAPI* pluginAPI);
|
||||||
|
|
||||||
SampleSourceDevices enumSampleSources();
|
virtual SampleSourceDevices enumSampleSources();
|
||||||
PluginGUI* createSampleSourcePluginGUI(const QString& sourceName, const QByteArray& address);
|
virtual PluginGUI* createSampleSourcePluginGUI(const QString& sourceId);
|
||||||
|
|
||||||
static const QString m_deviceTypeID;
|
static const QString m_deviceTypeID;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ PluginsDialog::PluginsDialog(PluginManager* pluginManager, QWidget* parent) :
|
|||||||
const PluginManager::Plugins& plugins = pluginManager->getPlugins();
|
const PluginManager::Plugins& plugins = pluginManager->getPlugins();
|
||||||
for(PluginManager::Plugins::const_iterator it = plugins.constBegin(); it != plugins.constEnd(); ++it) {
|
for(PluginManager::Plugins::const_iterator it = plugins.constBegin(); it != plugins.constEnd(); ++it) {
|
||||||
QStringList sl;
|
QStringList sl;
|
||||||
const PluginDescriptor& desc = it->plugin->getPluginDescriptor();
|
const PluginDescriptor& desc = it->pluginInterface->getPluginDescriptor();
|
||||||
sl.append(desc.displayedName);
|
sl.append(desc.displayedName);
|
||||||
sl.append(desc.version);
|
sl.append(desc.version);
|
||||||
if(desc.licenseIsGPL)
|
if(desc.licenseIsGPL)
|
||||||
|
@ -17,6 +17,8 @@ PluginManager::PluginManager(MainWindow* mainWindow, DSPEngine* dspEngine, QObje
|
|||||||
m_mainWindow(mainWindow),
|
m_mainWindow(mainWindow),
|
||||||
m_dspEngine(dspEngine),
|
m_dspEngine(dspEngine),
|
||||||
m_sampleSourceId(),
|
m_sampleSourceId(),
|
||||||
|
m_sampleSourceSerial(),
|
||||||
|
m_sampleSourceSequence(0),
|
||||||
m_sampleSourcePluginGUI(NULL)
|
m_sampleSourcePluginGUI(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -38,7 +40,7 @@ void PluginManager::loadPlugins()
|
|||||||
|
|
||||||
for (Plugins::const_iterator it = m_plugins.begin(); it != m_plugins.end(); ++it)
|
for (Plugins::const_iterator it = m_plugins.begin(); it != m_plugins.end(); ++it)
|
||||||
{
|
{
|
||||||
it->plugin->initPlugin(&m_pluginAPI);
|
it->pluginInterface->initPlugin(&m_pluginAPI);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSampleSourceDevices();
|
updateSampleSourceDevices();
|
||||||
@ -311,9 +313,7 @@ int PluginManager::selectSampleSource(int index)
|
|||||||
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
||||||
<< " seq: " << m_sampleSourceSequence;
|
<< " seq: " << m_sampleSourceSequence;
|
||||||
|
|
||||||
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId,
|
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId);
|
||||||
m_sampleSourceSerial,
|
|
||||||
m_sampleSourceSequence);
|
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
@ -369,9 +369,7 @@ int PluginManager::selectFirstSampleSource(const QString& sourceId)
|
|||||||
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
<< " ser: " << m_sampleSourceSerial.toStdString().c_str()
|
||||||
<< " seq: " << m_sampleSourceSequence;
|
<< " seq: " << m_sampleSourceSequence;
|
||||||
|
|
||||||
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId,
|
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId);
|
||||||
m_sampleSourceSerial,
|
|
||||||
m_sampleSourceSequence);
|
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user