mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-26 01:39:05 -05:00
Register channels with their URI
This commit is contained in:
parent
8bf2d4469b
commit
93de98c53c
@ -19,16 +19,17 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "gui/glspectrum.h"
|
||||
#include "dsp/spectrumvis.h"
|
||||
#include "gui/glspectrumgui.h"
|
||||
#include "gui/channelwindow.h"
|
||||
#include "dsp/dspdevicesourceengine.h"
|
||||
#include "dsp/dspdevicesinkengine.h"
|
||||
#include "gui/glspectrum.h"
|
||||
#include "gui/glspectrumgui.h"
|
||||
#include "gui/channelwindow.h"
|
||||
#include "plugin/plugininstancegui.h"
|
||||
#include "plugin/pluginapi.h"
|
||||
#include "plugin/plugininterface.h"
|
||||
#include "channel/channelutils.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "settings/preset.h"
|
||||
|
||||
#include "deviceuiset.h"
|
||||
@ -196,7 +197,7 @@ void DeviceUISet::loadRxChannelSettings(const Preset *preset, PluginAPI *pluginA
|
||||
for (int i = 0; i < preset->getChannelCount(); i++)
|
||||
{
|
||||
const Preset::ChannelConfig& channelConfig = preset->getChannelConfig(i);
|
||||
ChannelInstanceRegistration reg;
|
||||
PluginInstanceGUI *rxChannelGUI = nullptr;
|
||||
|
||||
// create channel instance
|
||||
|
||||
@ -211,17 +212,16 @@ void DeviceUISet::loadRxChannelSettings(const Preset *preset, PluginAPI *pluginA
|
||||
ChannelAPI *channelAPI;
|
||||
BasebandSampleSink *rxChannel;
|
||||
(*channelRegistrations)[i].m_plugin->createRxChannel(m_deviceAPI, &rxChannel, &channelAPI);
|
||||
PluginInstanceGUI *rxChannelGUI =
|
||||
(*channelRegistrations)[i].m_plugin->createRxChannelGUI(this, rxChannel);
|
||||
reg = ChannelInstanceRegistration(channelConfig.m_channelIdURI, channelAPI, rxChannelGUI, 0);
|
||||
rxChannelGUI = (*channelRegistrations)[i].m_plugin->createRxChannelGUI(this, rxChannel);
|
||||
registerRxChannelInstance(channelAPI->getURI(), channelAPI, rxChannelGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (reg.m_gui != 0)
|
||||
if (rxChannelGUI)
|
||||
{
|
||||
qDebug("DeviceUISet::loadRxChannelSettings: deserializing channel [%s]", qPrintable(channelConfig.m_channelIdURI));
|
||||
reg.m_gui->deserialize(channelConfig.m_config);
|
||||
rxChannelGUI->deserialize(channelConfig.m_config);
|
||||
}
|
||||
}
|
||||
|
||||
@ -275,7 +275,7 @@ void DeviceUISet::loadTxChannelSettings(const Preset *preset, PluginAPI *pluginA
|
||||
for(int i = 0; i < preset->getChannelCount(); i++)
|
||||
{
|
||||
const Preset::ChannelConfig& channelConfig = preset->getChannelConfig(i);
|
||||
ChannelInstanceRegistration reg;
|
||||
PluginInstanceGUI *txChannelGUI = nullptr;
|
||||
|
||||
// create channel instance
|
||||
|
||||
@ -289,17 +289,16 @@ void DeviceUISet::loadTxChannelSettings(const Preset *preset, PluginAPI *pluginA
|
||||
ChannelAPI *channelAPI;
|
||||
BasebandSampleSource *txChannel;
|
||||
(*channelRegistrations)[i].m_plugin->createTxChannel(m_deviceAPI, &txChannel, &channelAPI);
|
||||
PluginInstanceGUI *txChannelGUI =
|
||||
(*channelRegistrations)[i].m_plugin->createTxChannelGUI(this, txChannel);
|
||||
reg = ChannelInstanceRegistration(channelConfig.m_channelIdURI, channelAPI, txChannelGUI, 1);
|
||||
txChannelGUI = (*channelRegistrations)[i].m_plugin->createTxChannelGUI(this, txChannel);
|
||||
registerTxChannelInstance(channelAPI->getURI(), channelAPI, txChannelGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(reg.m_gui != 0)
|
||||
if(txChannelGUI)
|
||||
{
|
||||
qDebug("DeviceUISet::loadTxChannelSettings: deserializing channel [%s]", qPrintable(channelConfig.m_channelIdURI));
|
||||
reg.m_gui->deserialize(channelConfig.m_config);
|
||||
txChannelGUI->deserialize(channelConfig.m_config);
|
||||
}
|
||||
}
|
||||
|
||||
@ -354,7 +353,7 @@ void DeviceUISet::loadMIMOChannelSettings(const Preset *preset, PluginAPI *plugi
|
||||
for (int i = 0; i < preset->getChannelCount(); i++)
|
||||
{
|
||||
const Preset::ChannelConfig& channelConfig = preset->getChannelConfig(i);
|
||||
ChannelInstanceRegistration reg;
|
||||
PluginInstanceGUI *mimoChannelGUI = nullptr;
|
||||
|
||||
// create channel instance
|
||||
|
||||
@ -369,18 +368,17 @@ void DeviceUISet::loadMIMOChannelSettings(const Preset *preset, PluginAPI *plugi
|
||||
ChannelAPI *channelAPI;
|
||||
MIMOChannel *mimoChannel;
|
||||
(*channelRegistrations)[i].m_plugin->createMIMOChannel(m_deviceAPI, &mimoChannel, &channelAPI);
|
||||
PluginInstanceGUI *mimoChannelGUI =
|
||||
(*channelRegistrations)[i].m_plugin->createMIMOChannelGUI(this, mimoChannel);
|
||||
mimoChannelGUI = (*channelRegistrations)[i].m_plugin->createMIMOChannelGUI(this, mimoChannel);
|
||||
(*channelRegistrations)[i].m_plugin->createMIMOChannel(m_deviceAPI, &mimoChannel, &channelAPI);
|
||||
reg = ChannelInstanceRegistration(channelConfig.m_channelIdURI, channelAPI, mimoChannelGUI, 2);
|
||||
registerChannelInstance(channelAPI->getURI(), channelAPI, mimoChannelGUI);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (reg.m_gui != 0)
|
||||
if (mimoChannelGUI)
|
||||
{
|
||||
qDebug("DeviceUISet::loadMIMOChannelSettings: deserializing channel [%s]", qPrintable(channelConfig.m_channelIdURI));
|
||||
reg.m_gui->deserialize(channelConfig.m_config);
|
||||
mimoChannelGUI->deserialize(channelConfig.m_config);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "device/deviceapi.h"
|
||||
#include "device/deviceuiset.h"
|
||||
#include "device/deviceenumerator.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "feature/featureuiset.h"
|
||||
#include "gui/indicator.h"
|
||||
#include "gui/presetitem.h"
|
||||
@ -1926,7 +1927,7 @@ void MainWindow::channelAddClicked(int channelIndex)
|
||||
BasebandSampleSink *rxChannel;
|
||||
pluginInterface->createRxChannel(deviceUI->m_deviceAPI, &rxChannel, &channelAPI);
|
||||
PluginInstanceGUI *gui = pluginInterface->createRxChannelGUI(deviceUI, rxChannel);
|
||||
deviceUI->registerRxChannelInstance(gui->getName(), channelAPI, gui);
|
||||
deviceUI->registerRxChannelInstance(channelAPI->getURI(), channelAPI, gui);
|
||||
}
|
||||
else if (deviceUI->m_deviceSinkEngine) // sink device => Tx channels
|
||||
{
|
||||
@ -1936,7 +1937,7 @@ void MainWindow::channelAddClicked(int channelIndex)
|
||||
BasebandSampleSource *txChannel;
|
||||
pluginInterface->createTxChannel(deviceUI->m_deviceAPI, &txChannel, &channelAPI);
|
||||
PluginInstanceGUI *gui = pluginInterface->createTxChannelGUI(deviceUI, txChannel);
|
||||
deviceUI->registerTxChannelInstance(gui->getName(), channelAPI, gui);
|
||||
deviceUI->registerTxChannelInstance(channelAPI->getURI(), channelAPI, gui);
|
||||
}
|
||||
else if (deviceUI->m_deviceMIMOEngine) // MIMO device => all possible channels. Depends on index range
|
||||
{
|
||||
@ -1953,7 +1954,7 @@ void MainWindow::channelAddClicked(int channelIndex)
|
||||
BasebandSampleSink *rxChannel;
|
||||
pluginInterface->createRxChannel(deviceUI->m_deviceAPI, &rxChannel, &channelAPI);
|
||||
PluginInstanceGUI *gui = pluginInterface->createRxChannelGUI(deviceUI, rxChannel);
|
||||
deviceUI->registerRxChannelInstance(gui->getName(), channelAPI, gui);
|
||||
deviceUI->registerRxChannelInstance(channelAPI->getURI(), channelAPI, gui);
|
||||
}
|
||||
else if (channelIndex < nbRxChannels + nbTxChannels)
|
||||
{
|
||||
@ -1963,7 +1964,7 @@ void MainWindow::channelAddClicked(int channelIndex)
|
||||
BasebandSampleSource *txChannel;
|
||||
pluginInterface->createTxChannel(deviceUI->m_deviceAPI, &txChannel, &channelAPI);
|
||||
PluginInstanceGUI *gui = pluginInterface->createTxChannelGUI(deviceUI, txChannel);
|
||||
deviceUI->registerTxChannelInstance(gui->getName(), channelAPI, gui);
|
||||
deviceUI->registerTxChannelInstance(channelAPI->getURI(), channelAPI, gui);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user