1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-22 09:31:10 -05:00

Implement MainCore in MainWindow step3: device sets: fixes

This commit is contained in:
f4exb 2020-10-11 09:36:27 +02:00
parent febbb4fa0f
commit c9e0425616
3 changed files with 34 additions and 4 deletions

View File

@ -34,8 +34,9 @@ DeviceSet::ChannelInstanceRegistration::ChannelInstanceRegistration(const QStrin
m_channelAPI(channelAPI)
{}
DeviceSet::DeviceSet(int tabIndex)
DeviceSet::DeviceSet(int tabIndex, int deviceType)
{
(void) deviceType;
m_deviceAPI = nullptr;
m_deviceSourceEngine = nullptr;
m_deviceSinkEngine = nullptr;
@ -413,3 +414,32 @@ bool DeviceSet::ChannelInstanceRegistration::operator<(const ChannelInstanceRegi
}
}
void DeviceSet::addChannelInstance(const QString& channelURI, ChannelAPI *channelAPI)
{
ChannelInstanceRegistration reg = ChannelInstanceRegistration(channelURI, channelAPI);
m_channelInstanceRegistrations.append(reg);
}
void DeviceSet::removeChannelInstanceAt(int index)
{
if (index < m_channelInstanceRegistrations.size()) {
m_channelInstanceRegistrations.removeAt(index);
}
}
void DeviceSet::removeChannelInstance(ChannelAPI *channelAPI)
{
for (int i = 0; i < m_channelInstanceRegistrations.count(); i++)
{
if (m_channelInstanceRegistrations.at(i).m_channelAPI == channelAPI)
{
m_channelInstanceRegistrations.removeAt(i);
break;
}
}
}
void DeviceSet::clearChannels()
{
m_channelInstanceRegistrations.clear();
}

View File

@ -38,7 +38,7 @@ public:
DSPDeviceSinkEngine *m_deviceSinkEngine;
DSPDeviceMIMOEngine *m_deviceMIMOEngine;
DeviceSet(int tabIndex);
DeviceSet(int tabIndex, int deviceType);
~DeviceSet();
int getNumberOfChannels() const { return m_channelInstanceRegistrations.size(); }

View File

@ -262,7 +262,7 @@ void MainServer::addSinkDevice()
sprintf(uidCStr, "UID:%d", dspDeviceSinkEngineUID);
int deviceTabIndex = m_mainCore->m_deviceSets.size();
m_mainCore->m_deviceSets.push_back(new DeviceSet(deviceTabIndex));
m_mainCore->m_deviceSets.push_back(new DeviceSet(deviceTabIndex, 1));
m_mainCore->m_deviceSets.back()->m_deviceSourceEngine = nullptr;
m_mainCore->m_deviceSets.back()->m_deviceSinkEngine = dspDeviceSinkEngine;
m_mainCore->m_deviceSets.back()->m_deviceMIMOEngine = nullptr;
@ -308,7 +308,7 @@ void MainServer::addSourceDevice()
sprintf(uidCStr, "UID:%d", dspDeviceSourceEngineUID);
int deviceTabIndex = m_mainCore->m_deviceSets.size();
m_mainCore->m_deviceSets.push_back(new DeviceSet(deviceTabIndex));
m_mainCore->m_deviceSets.push_back(new DeviceSet(deviceTabIndex, 0));
m_mainCore->m_deviceSets.back()->m_deviceSourceEngine = dspDeviceSourceEngine;
m_mainCore->m_deviceSets.back()->m_deviceSinkEngine = nullptr;
m_mainCore->m_deviceSets.back()->m_deviceMIMOEngine = nullptr;