1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-02 14:04:46 -04:00

Massive UI revamping (v7): added channels

This commit is contained in:
f4exb
2022-04-12 16:20:45 +02:00
parent 32973132d9
commit 2f89b79c84
251 changed files with 3455 additions and 678 deletions
+55 -45
View File
@@ -40,7 +40,7 @@ DSPEngine::DSPEngine() :
DSPEngine::~DSPEngine()
{
std::vector<DSPDeviceSourceEngine*>::iterator it = m_deviceSourceEngines.begin();
QList<DSPDeviceSourceEngine*>::iterator it = m_deviceSourceEngines.begin();
while (it != m_deviceSourceEngines.end())
{
@@ -63,6 +63,7 @@ DSPDeviceSourceEngine *DSPEngine::addDeviceSourceEngine()
{
m_deviceSourceEngines.push_back(new DSPDeviceSourceEngine(m_deviceSourceEnginesUIDSequence));
m_deviceSourceEnginesUIDSequence++;
m_deviceEngineReferences.push_back(DeviceEngineReference{0, m_deviceSourceEngines.size() - 1});
return m_deviceSourceEngines.back();
}
@@ -71,9 +72,18 @@ void DSPEngine::removeLastDeviceSourceEngine()
if (m_deviceSourceEngines.size() > 0)
{
DSPDeviceSourceEngine *lastDeviceEngine = m_deviceSourceEngines.back();
int lastSourceDeviceEngineIndex = m_deviceSourceEngines.size() - 1;
delete lastDeviceEngine;
m_deviceSourceEngines.pop_back();
m_deviceSourceEnginesUIDSequence--;
for (int i = 0; i < m_deviceEngineReferences.size(); i++)
{
if (m_deviceEngineReferences[i].deviceEngineIndex == lastSourceDeviceEngineIndex)
{
m_deviceEngineReferences.removeAt(i);
break;
}
}
}
}
@@ -81,6 +91,7 @@ DSPDeviceSinkEngine *DSPEngine::addDeviceSinkEngine()
{
m_deviceSinkEngines.push_back(new DSPDeviceSinkEngine(m_deviceSinkEnginesUIDSequence));
m_deviceSinkEnginesUIDSequence++;
m_deviceEngineReferences.push_back(DeviceEngineReference{1, m_deviceSinkEngines.size() - 1});
return m_deviceSinkEngines.back();
}
@@ -89,9 +100,18 @@ void DSPEngine::removeLastDeviceSinkEngine()
if (m_deviceSinkEngines.size() > 0)
{
DSPDeviceSinkEngine *lastDeviceEngine = m_deviceSinkEngines.back();
int lastSinkDeviceEngineIndex = m_deviceSinkEngines.size() - 1;
delete lastDeviceEngine;
m_deviceSinkEngines.pop_back();
m_deviceSinkEnginesUIDSequence--;
for (int i = 0; i < m_deviceEngineReferences.size(); i++)
{
if (m_deviceEngineReferences[i].deviceEngineIndex == lastSinkDeviceEngineIndex)
{
m_deviceEngineReferences.removeAt(i);
break;
}
}
}
}
@@ -99,6 +119,7 @@ DSPDeviceMIMOEngine *DSPEngine::addDeviceMIMOEngine()
{
m_deviceMIMOEngines.push_back(new DSPDeviceMIMOEngine(m_deviceMIMOEnginesUIDSequence));
m_deviceMIMOEnginesUIDSequence++;
m_deviceEngineReferences.push_back(DeviceEngineReference{2, m_deviceMIMOEngines.size() - 1});
return m_deviceMIMOEngines.back();
}
@@ -107,58 +128,47 @@ void DSPEngine::removeLastDeviceMIMOEngine()
if (m_deviceMIMOEngines.size() > 0)
{
DSPDeviceMIMOEngine *lastDeviceEngine = m_deviceMIMOEngines.back();
int lastMIMODeviceEngineIndex = m_deviceMIMOEngines.size() - 1;
delete lastDeviceEngine;
m_deviceMIMOEngines.pop_back();
m_deviceMIMOEnginesUIDSequence--;
for (int i = 0; i < m_deviceEngineReferences.size(); i++)
{
if (m_deviceEngineReferences[i].deviceEngineIndex == lastMIMODeviceEngineIndex)
{
m_deviceEngineReferences.removeAt(i);
break;
}
}
}
}
DSPDeviceSourceEngine *DSPEngine::getDeviceSourceEngineByUID(uint uid)
void DSPEngine::removeDeviceEngineAt(int deviceIndex)
{
std::vector<DSPDeviceSourceEngine*>::iterator it = m_deviceSourceEngines.begin();
while (it != m_deviceSourceEngines.end())
{
if ((*it)->getUID() == uid) {
return *it;
}
++it;
if (deviceIndex >= m_deviceEngineReferences.size()) {
return;
}
return nullptr;
}
DSPDeviceSinkEngine *DSPEngine::getDeviceSinkEngineByUID(uint uid)
{
std::vector<DSPDeviceSinkEngine*>::iterator it = m_deviceSinkEngines.begin();
while (it != m_deviceSinkEngines.end())
if (m_deviceEngineReferences[deviceIndex].deviceEngineTYpe == 0) // source
{
if ((*it)->getUID() == uid) {
return *it;
}
++it;
DSPDeviceSourceEngine *deviceEngine = m_deviceSourceEngines[m_deviceEngineReferences[deviceIndex].deviceEngineIndex];
delete deviceEngine;
m_deviceSourceEngines.removeAt(m_deviceEngineReferences[deviceIndex].deviceEngineIndex);
}
else if (m_deviceEngineReferences[deviceIndex].deviceEngineTYpe == 1) // sink
{
DSPDeviceSinkEngine *deviceEngine = m_deviceSinkEngines[m_deviceEngineReferences[deviceIndex].deviceEngineIndex];
delete deviceEngine;
m_deviceSinkEngines.removeAt(m_deviceEngineReferences[deviceIndex].deviceEngineIndex);
}
else if (m_deviceEngineReferences[deviceIndex].deviceEngineTYpe == 2) // MIMO
{
DSPDeviceMIMOEngine *deviceEngine = m_deviceMIMOEngines[m_deviceEngineReferences[deviceIndex].deviceEngineIndex];
delete deviceEngine;
m_deviceMIMOEngines.removeAt(m_deviceEngineReferences[deviceIndex].deviceEngineIndex);
}
return nullptr;
}
DSPDeviceMIMOEngine *DSPEngine::getDeviceMIMOEngineByUID(uint uid)
{
std::vector<DSPDeviceMIMOEngine*>::iterator it = m_deviceMIMOEngines.begin();
while (it != m_deviceMIMOEngines.end())
{
if ((*it)->getUID() == uid) {
return *it;
}
++it;
}
return nullptr;
m_deviceEngineReferences.removeAt(deviceIndex);
}
bool DSPEngine::hasDVSerialSupport()
@@ -200,4 +210,4 @@ void DSPEngine::createFFTFactory(const QString& fftWisdomFileName)
void DSPEngine::preAllocateFFTs()
{
m_fftFactory->preallocate(7, 10, 1, 0); // pre-acllocate forward FFT only 1 per size from 128 to 1024
}
}