1
0
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:
f4exb
2020-09-20 01:06:34 +02:00
parent 7297313bd7
commit e8f3745bf3
37 changed files with 1313 additions and 1311 deletions
+27 -6
View File
@@ -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;
}
}