mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-02 06:04:39 -04:00
Feature plugins framework initial commit and Misc plugins removal
This commit is contained in:
@@ -189,13 +189,13 @@ void PluginManager::registerSampleMIMO(const QString& mimoName, PluginInterface*
|
||||
));
|
||||
}
|
||||
|
||||
void PluginManager::registerMiscPlugin(const QString& id, PluginInterface* plugin)
|
||||
void PluginManager::registerFeature(const QString& featureIdURI, const QString& featureId, PluginInterface* plugin)
|
||||
{
|
||||
qDebug() << "PluginManager::registerMiscPlugin "
|
||||
<< plugin->getPluginDescriptor().displayedName.toStdString().c_str()
|
||||
<< " with id " << id.toStdString().c_str();
|
||||
qDebug() << "PluginManager::registerFeature "
|
||||
<< plugin->getPluginDescriptor().displayedName.toStdString().c_str()
|
||||
<< " with channel name " << featureIdURI;
|
||||
|
||||
m_miscPluginRegistrations.append(PluginAPI::MiscPluginRegistration(id, plugin));
|
||||
m_featureRegistrations.append(PluginAPI::FeatureRegistration(featureIdURI, featureId, plugin));
|
||||
}
|
||||
|
||||
void PluginManager::loadPluginsDir(const QDir& dir)
|
||||
@@ -265,6 +265,17 @@ void PluginManager::listMIMOChannels(QList<QString>& list)
|
||||
}
|
||||
}
|
||||
|
||||
void PluginManager::listFeatures(QList<QString>& list)
|
||||
{
|
||||
list.clear();
|
||||
|
||||
for (PluginAPI::FeatureRegistrations::iterator it = m_featureRegistrations.begin(); it != m_featureRegistrations.end(); ++it)
|
||||
{
|
||||
const PluginDescriptor& pluginDesciptor = it->m_plugin->getPluginDescriptor();
|
||||
list.append(pluginDesciptor.displayedName);
|
||||
}
|
||||
}
|
||||
|
||||
void PluginManager::createRxChannelInstance(int channelPluginIndex, DeviceUISet *deviceUISet, DeviceAPI *deviceAPI)
|
||||
{
|
||||
if (channelPluginIndex < m_rxChannelRegistrations.size())
|
||||
@@ -295,6 +306,16 @@ void PluginManager::createMIMOChannelInstance(int channelPluginIndex, DeviceUISe
|
||||
}
|
||||
}
|
||||
|
||||
void PluginManager::createFeatureInstance(int featurePluginIndex, FeatureUISet *featureUISet, WebAPIAdapterInterface *webAPIAdapterInterface)
|
||||
{
|
||||
if (featurePluginIndex < m_featureRegistrations.size())
|
||||
{
|
||||
PluginInterface *pluginInterface = m_featureRegistrations[featurePluginIndex].m_plugin;
|
||||
Feature *feature = pluginInterface->createFeature(webAPIAdapterInterface);
|
||||
pluginInterface->createFeatureGUI(featureUISet, feature);
|
||||
}
|
||||
}
|
||||
|
||||
const PluginInterface *PluginManager::getChannelPluginInterface(const QString& channelIdURI) const
|
||||
{
|
||||
for (PluginAPI::ChannelRegistrations::const_iterator it = m_rxChannelRegistrations.begin(); it != m_rxChannelRegistrations.end(); ++it)
|
||||
@@ -338,4 +359,4 @@ const PluginInterface *PluginManager::getDevicePluginInterface(const QString& de
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user