mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-19 06:08:51 -04:00
Feature plugins framework initial commit
This commit is contained in:
@@ -192,6 +192,15 @@ void PluginManager::registerSampleMIMO(const QString& mimoName, PluginInterface*
|
||||
));
|
||||
}
|
||||
|
||||
void PluginManager::registerFeature(const QString& featureIdURI, const QString& featureId, PluginInterface* plugin)
|
||||
{
|
||||
qDebug() << "PluginManager::registerFeature "
|
||||
<< plugin->getPluginDescriptor().displayedName.toStdString().c_str()
|
||||
<< " with channel name " << featureIdURI;
|
||||
|
||||
m_featureRegistrations.append(PluginAPI::FeatureRegistration(featureIdURI, featureId, plugin));
|
||||
}
|
||||
|
||||
void PluginManager::loadPluginsDir(const QDir& dir)
|
||||
{
|
||||
QDir pluginsDir(dir);
|
||||
@@ -259,6 +268,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())
|
||||
@@ -289,6 +309,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)
|
||||
|
||||
Reference in New Issue
Block a user