1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 13:47:01 -04:00

MIMO channels: added methods to the plugin system

This commit is contained in:
f4exb
2019-09-02 18:36:56 +02:00
parent 94c1b9a972
commit 8b5e71a1cc
5 changed files with 89 additions and 16 deletions
+30
View File
@@ -135,6 +135,15 @@ void PluginManager::registerTxChannel(const QString& channelIdURI, const QString
m_txChannelRegistrations.append(PluginAPI::ChannelRegistration(channelIdURI, channelId, plugin));
}
void PluginManager::registerMIMOChannel(const QString& channelIdURI, const QString& channelId, PluginInterface* plugin)
{
qDebug() << "PluginManager::registerMIMOChannel "
<< plugin->getPluginDescriptor().displayedName.toStdString().c_str()
<< " with channel name " << channelIdURI;
m_mimoChannelRegistrations.append(PluginAPI::ChannelRegistration(channelIdURI, channelId, plugin));
}
void PluginManager::registerSampleSource(const QString& sourceName, PluginInterface* plugin)
{
qDebug() << "PluginManager::registerSampleSource "
@@ -218,6 +227,17 @@ void PluginManager::listRxChannels(QList<QString>& list)
}
}
void PluginManager::listMIMOChannels(QList<QString>& list)
{
list.clear();
for (PluginAPI::ChannelRegistrations::iterator it = m_mimoChannelRegistrations.begin(); it != m_mimoChannelRegistrations.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())
@@ -238,6 +258,16 @@ void PluginManager::createTxChannelInstance(int channelPluginIndex, DeviceUISet
}
}
void PluginManager::createMIMOChannelInstance(int channelPluginIndex, DeviceUISet *deviceUISet, DeviceAPI *deviceAPI)
{
if (channelPluginIndex < m_mimoChannelRegistrations.size())
{
PluginInterface *pluginInterface = m_mimoChannelRegistrations[channelPluginIndex].m_plugin;
MIMOSampleSink *mimoChannel = pluginInterface->createMIMOChannelBS(deviceAPI);
pluginInterface->createMIMOChannelGUI(deviceUISet, mimoChannel);
}
}
const PluginInterface *PluginManager::getChannelPluginInterface(const QString& channelIdURI) const
{
for (PluginAPI::ChannelRegistrations::const_iterator it = m_rxChannelRegistrations.begin(); it != m_rxChannelRegistrations.end(); ++it)