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

Removed ThreadedBasebandSampleSink

This commit is contained in:
f4exb
2019-12-13 00:34:27 +01:00
parent 1e1cfba178
commit 1359aac9b6
24 changed files with 1 additions and 506 deletions
+1 -103
View File
@@ -19,7 +19,7 @@
#include <QDebug>
#include "dspcommands.h"
#include "threadedbasebandsamplesink.h"
#include "basebandsamplesink.h"
#include "basebandsamplesource.h"
#include "devicesamplemimo.h"
#include "mimochannel.h"
@@ -29,8 +29,6 @@
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::SetSampleMIMO, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::AddBasebandSampleSource, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::RemoveBasebandSampleSource, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::AddThreadedBasebandSampleSink, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::RemoveThreadedBasebandSampleSink, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::AddMIMOChannel, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::RemoveMIMOChannel, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::AddBasebandSampleSink, Message)
@@ -171,26 +169,6 @@ void DSPDeviceMIMOEngine::removeChannelSource(BasebandSampleSource* source, int
m_syncMessenger.sendWait(cmd);
}
void DSPDeviceMIMOEngine::addChannelSink(ThreadedBasebandSampleSink* sink, int index)
{
qDebug() << "DSPDeviceMIMOEngine::addThreadedSink: "
<< sink->objectName().toStdString().c_str()
<< " at: "
<< index;
AddThreadedBasebandSampleSink cmd(sink, index);
m_syncMessenger.sendWait(cmd);
}
void DSPDeviceMIMOEngine::removeChannelSink(ThreadedBasebandSampleSink* sink, int index)
{
qDebug() << "DSPDeviceMIMOEngine::removeThreadedSink: "
<< sink->objectName().toStdString().c_str()
<< " at: "
<< index;
RemoveThreadedBasebandSampleSink cmd(sink, index);
m_syncMessenger.sendWait(cmd);
}
void DSPDeviceMIMOEngine::addChannelSink(BasebandSampleSink* sink, int index)
{
qDebug() << "DSPDeviceMIMOEngine::addChannelSink: "
@@ -442,12 +420,6 @@ void DSPDeviceMIMOEngine::workSamplesSink(const SampleVector::const_iterator& vb
m_spectrumSink->feed(vbegin, vend, positiveOnly);
}
// feed data to threaded sinks
for (ThreadedBasebandSampleSinks::const_iterator it = m_threadedBasebandSampleSinks[streamIndex].begin(); it != m_threadedBasebandSampleSinks[streamIndex].end(); ++it)
{
(*it)->feed(vbegin, vend, positiveOnly);
}
// feed data to MIMO channels
for (MIMOChannels::const_iterator it = m_mimoChannels.begin(); it != m_mimoChannels.end(); ++it) {
(*it)->feed(vbegin, vend, streamIndex);
@@ -559,17 +531,6 @@ DSPDeviceMIMOEngine::State DSPDeviceMIMOEngine::gotoIdle(int subsystemIndex)
}
}
std::vector<ThreadedBasebandSampleSinks>::const_iterator vtSinkIt = m_threadedBasebandSampleSinks.begin();
for (; vtSinkIt != m_threadedBasebandSampleSinks.end(); vtSinkIt++)
{
for (ThreadedBasebandSampleSinks::const_iterator it = vtSinkIt->begin(); it != vtSinkIt->end(); ++it)
{
qDebug() << "DSPDeviceMIMOEngine::gotoIdle: stopping ThreadedBasebandSampleSink(" << (*it)->getSampleSinkObjectName().toStdString().c_str() << ")";
(*it)->stop();
}
}
for (MIMOChannels::const_iterator it = m_mimoChannels.begin(); it != m_mimoChannels.end(); ++it)
{
qDebug() << "DSPDeviceMIMOEngine::gotoIdle: stopping MIMOChannel sinks: " << (*it)->objectName().toStdString().c_str();
@@ -676,15 +637,6 @@ DSPDeviceMIMOEngine::State DSPDeviceMIMOEngine::gotoInit(int subsystemIndex)
(*it)->handleMessage(notif);
}
}
if (isource < m_threadedBasebandSampleSinks.size())
{
for (ThreadedBasebandSampleSinks::const_iterator it = m_threadedBasebandSampleSinks[isource].begin(); it != m_threadedBasebandSampleSinks[isource].end(); ++it)
{
qDebug() << "DSPDeviceMIMOEngine::gotoInit: initializing ThreadedSampleSink(" << (*it)->getSampleSinkObjectName().toStdString().c_str() << ")";
(*it)->handleSinkMessage(notif);
}
}
}
}
else if (subsystemIndex == 1) // Tx
@@ -771,17 +723,6 @@ DSPDeviceMIMOEngine::State DSPDeviceMIMOEngine::gotoRunning(int subsystemIndex)
}
}
std::vector<ThreadedBasebandSampleSinks>::const_iterator vtSinkIt = m_threadedBasebandSampleSinks.begin();
for (; vtSinkIt != m_threadedBasebandSampleSinks.end(); vtSinkIt++)
{
for (ThreadedBasebandSampleSinks::const_iterator it = vtSinkIt->begin(); it != vtSinkIt->end(); ++it)
{
qDebug() << "DSPDeviceMIMOEngine::gotoRunning: starting ThreadedBasebandSampleSink(" << (*it)->getSampleSinkObjectName().toStdString().c_str() << ")";
(*it)->start();
}
}
for (MIMOChannels::const_iterator it = m_mimoChannels.begin(); it != m_mimoChannels.end(); ++it)
{
qDebug() << "DSPDeviceMIMOEngine::gotoRunning: starting MIMOChannel sinks: " << (*it)->objectName().toStdString().c_str();
@@ -893,7 +834,6 @@ void DSPDeviceMIMOEngine::handleSetMIMO(DeviceSampleMIMO* mimo)
for (int i = 0; i < m_deviceSampleMIMO->getNbSinkFifos(); i++)
{
m_basebandSampleSinks.push_back(BasebandSampleSinks());
m_threadedBasebandSampleSinks.push_back(ThreadedBasebandSampleSinks());
m_sourcesCorrections.push_back(SourceCorrection());
}
@@ -1060,38 +1000,6 @@ void DSPDeviceMIMOEngine::handleSynchronousMessages()
m_basebandSampleSinks[isource].remove(sink);
}
}
else if (AddThreadedBasebandSampleSink::match(*message))
{
const AddThreadedBasebandSampleSink *msg = (AddThreadedBasebandSampleSink *) message;
ThreadedBasebandSampleSink *threadedSink = msg->getThreadedSampleSink();
unsigned int isource = msg->getIndex();
if (isource < m_threadedBasebandSampleSinks.size())
{
m_threadedBasebandSampleSinks[isource].push_back(threadedSink);
// initialize sample rate and center frequency in the sink:
int sourceStreamSampleRate = m_deviceSampleMIMO->getSourceSampleRate(isource);
quint64 sourceCenterFrequency = m_deviceSampleMIMO->getSourceCenterFrequency(isource);
DSPSignalNotification msg(sourceStreamSampleRate, sourceCenterFrequency);
threadedSink->handleSinkMessage(msg);
// start the sink:
if (m_stateRx == StRunning) {
threadedSink->start();
}
}
}
else if (RemoveThreadedBasebandSampleSink::match(*message))
{
const RemoveThreadedBasebandSampleSink *msg = (RemoveThreadedBasebandSampleSink *) message;
ThreadedBasebandSampleSink* threadedSink = msg->getThreadedSampleSink();
unsigned int isource = msg->getIndex();
if (isource < m_threadedBasebandSampleSinks.size())
{
threadedSink->stop();
m_threadedBasebandSampleSinks[isource].remove(threadedSink);
}
}
else if (AddBasebandSampleSource::match(*message))
{
const AddBasebandSampleSource *msg = (AddBasebandSampleSource *) message;
@@ -1313,16 +1221,6 @@ void DSPDeviceMIMOEngine::handleInputMessages()
}
}
// forward source changes to channel sinks with immediate execution (no queuing)
if (istream < m_threadedBasebandSampleSinks.size())
{
for (ThreadedBasebandSampleSinks::const_iterator it = m_threadedBasebandSampleSinks[istream].begin(); it != m_threadedBasebandSampleSinks[istream].end(); ++it)
{
qDebug() << "DSPDeviceMIMOEngine::handleSourceMessages: forward message to ThreadedSampleSink(" << (*it)->getSampleSinkObjectName().toStdString().c_str() << ")";
(*it)->handleSinkMessage(*message);
}
}
// forward changes to MIMO GUI input queue
MessageQueue *guiMessageQueue = m_deviceSampleMIMO->getMessageQueueToGUI();
qDebug("DeviceMIMOEngine::handleInputMessages: DSPMIMOSignalNotification: guiMessageQueue: %p", guiMessageQueue);