1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-05-29 05:22:25 -04:00

MIMO: moved signal notification messageto general DSP commands

This commit is contained in:
f4exb 2019-06-04 16:57:27 +02:00
parent 5f44c61895
commit 014f62d558
6 changed files with 33 additions and 33 deletions

View File

@ -458,7 +458,7 @@ bool TestMI::applySettings(const TestMISettings& settings, bool force)
int sampleRate = settings.m_streams[istream].m_sampleRate/(1<<settings.m_streams[istream].m_log2Decim); int sampleRate = settings.m_streams[istream].m_sampleRate/(1<<settings.m_streams[istream].m_log2Decim);
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, settings.m_streams[istream].m_centerFrequency); DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, settings.m_streams[istream].m_centerFrequency);
m_fileSinks[istream]->handleMessage(*notif); // forward to file sink m_fileSinks[istream]->handleMessage(*notif); // forward to file sink
DSPDeviceMIMOEngine::SignalNotification *engineNotif = new DSPDeviceMIMOEngine::SignalNotification( DSPMIMOSignalNotification *engineNotif = new DSPMIMOSignalNotification(
sampleRate, settings.m_streams[istream].m_centerFrequency, true, istream); sampleRate, settings.m_streams[istream].m_centerFrequency, true, istream);
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(engineNotif); m_deviceAPI->getDeviceEngineInputMessageQueue()->push(engineNotif);
} }

View File

@ -551,15 +551,15 @@ void TestMIGui::handleInputMessages()
while ((message = m_inputMessageQueue.pop()) != 0) while ((message = m_inputMessageQueue.pop()) != 0)
{ {
if (DSPDeviceMIMOEngine::SignalNotification::match(*message)) if (DSPMIMOSignalNotification::match(*message))
{ {
DSPDeviceMIMOEngine::SignalNotification* notif = (DSPDeviceMIMOEngine::SignalNotification*) message; DSPMIMOSignalNotification* notif = (DSPMIMOSignalNotification*) message;
int istream = notif->getIndex(); int istream = notif->getIndex();
bool sourceOrSink = notif->getSourceOrSink(); bool sourceOrSink = notif->getSourceOrSink();
m_deviceSampleRates[istream] = notif->getSampleRate(); m_deviceSampleRates[istream] = notif->getSampleRate();
m_deviceCenterFrequencies[istream] = notif->getCenterFrequency(); m_deviceCenterFrequencies[istream] = notif->getCenterFrequency();
// Do not consider multiple sources at this time // Do not consider multiple sources at this time
qDebug("TestMIGui::handleInputMessages: DSPDeviceMIMOEngine::SignalNotification: %s stream: %d SampleRate:%d, CenterFrequency:%llu", qDebug("TestMIGui::handleInputMessages: DSPMIMOSignalNotification: %s stream: %d SampleRate:%d, CenterFrequency:%llu",
sourceOrSink ? "source" : "sink", sourceOrSink ? "source" : "sink",
istream, istream,
notif->getSampleRate(), notif->getSampleRate(),

View File

@ -45,5 +45,6 @@ MESSAGE_CLASS_DEFINITION(DSPConfigureCorrection, Message)
MESSAGE_CLASS_DEFINITION(DSPEngineReport, Message) MESSAGE_CLASS_DEFINITION(DSPEngineReport, Message)
MESSAGE_CLASS_DEFINITION(DSPConfigureScopeVis, Message) MESSAGE_CLASS_DEFINITION(DSPConfigureScopeVis, Message)
MESSAGE_CLASS_DEFINITION(DSPSignalNotification, Message) MESSAGE_CLASS_DEFINITION(DSPSignalNotification, Message)
MESSAGE_CLASS_DEFINITION(DSPMIMOSignalNotification, Message)
MESSAGE_CLASS_DEFINITION(DSPConfigureChannelizer, Message) MESSAGE_CLASS_DEFINITION(DSPConfigureChannelizer, Message)
MESSAGE_CLASS_DEFINITION(DSPConfigureAudio, Message) MESSAGE_CLASS_DEFINITION(DSPConfigureAudio, Message)

View File

@ -333,6 +333,27 @@ private:
qint64 m_centerFrequency; qint64 m_centerFrequency;
}; };
class SDRBASE_API DSPMIMOSignalNotification : public Message {
MESSAGE_CLASS_DECLARATION
public:
DSPMIMOSignalNotification(int samplerate, qint64 centerFrequency, bool sourceOrSink, unsigned int index) :
Message(),
m_sampleRate(samplerate),
m_centerFrequency(centerFrequency),
m_sourceOrSink(sourceOrSink),
m_index(index)
{ }
int getSampleRate() const { return m_sampleRate; }
qint64 getCenterFrequency() const { return m_centerFrequency; }
bool getSourceOrSink() const { return m_sourceOrSink; }
unsigned int getIndex() const { return m_index; }
private:
int m_sampleRate;
qint64 m_centerFrequency;
bool m_sourceOrSink;
unsigned int m_index;
};
class SDRBASE_API DSPConfigureChannelizer : public Message { class SDRBASE_API DSPConfigureChannelizer : public Message {
MESSAGE_CLASS_DECLARATION MESSAGE_CLASS_DECLARATION

View File

@ -41,7 +41,6 @@ MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::RemoveSpectrumSink, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::GetErrorMessage, Message) MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::GetErrorMessage, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::GetMIMODeviceDescription, Message) MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::GetMIMODeviceDescription, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::ConfigureCorrection, Message) MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::ConfigureCorrection, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::SignalNotification, Message)
MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::SetSpectrumSinkInput, Message) MESSAGE_CLASS_DEFINITION(DSPDeviceMIMOEngine::SetSpectrumSinkInput, Message)
DSPDeviceMIMOEngine::DSPDeviceMIMOEngine(uint32_t uid, QObject* parent) : DSPDeviceMIMOEngine::DSPDeviceMIMOEngine(uint32_t uid, QObject* parent) :
@ -544,7 +543,7 @@ DSPDeviceMIMOEngine::State DSPDeviceMIMOEngine::gotoInit()
// MessageQueue *guiMessageQueue = m_deviceSampleMIMO->getMessageQueueToGUI(); // MessageQueue *guiMessageQueue = m_deviceSampleMIMO->getMessageQueueToGUI();
// if (guiMessageQueue) { // if (guiMessageQueue) {
// SignalNotification* rep = new SignalNotification(sourceStreamSampleRate, sourceCenterFrequency, true, isource); // make a copy for the MIMO GUI // DSPMIMOSignalNotification* rep = new DSPMIMOSignalNotification(sourceStreamSampleRate, sourceCenterFrequency, true, isource); // make a copy for the MIMO GUI
// guiMessageQueue->push(rep); // guiMessageQueue->push(rep);
// } // }
} }
@ -937,9 +936,9 @@ void DSPDeviceMIMOEngine::handleInputMessages()
delete message; delete message;
} }
else if (SignalNotification::match(*message)) else if (DSPMIMOSignalNotification::match(*message))
{ {
SignalNotification *notif = (SignalNotification *) message; DSPMIMOSignalNotification *notif = (DSPMIMOSignalNotification *) message;
// update DSP values // update DSP values
@ -948,7 +947,7 @@ void DSPDeviceMIMOEngine::handleInputMessages()
int sampleRate = notif->getSampleRate(); int sampleRate = notif->getSampleRate();
qint64 centerFrequency = notif->getCenterFrequency(); qint64 centerFrequency = notif->getCenterFrequency();
qDebug() << "DeviceMIMOEngine::handleInputMessages: SignalNotification:" qDebug() << "DeviceMIMOEngine::handleInputMessages: DSPMIMOSignalNotification:"
<< " sourceElseSink: " << sourceElseSink << " sourceElseSink: " << sourceElseSink
<< " istream: " << istream << " istream: " << istream
<< " sampleRate: " << sampleRate << " sampleRate: " << sampleRate
@ -982,10 +981,10 @@ void DSPDeviceMIMOEngine::handleInputMessages()
// forward changes to MIMO GUI input queue // forward changes to MIMO GUI input queue
MessageQueue *guiMessageQueue = m_deviceSampleMIMO->getMessageQueueToGUI(); MessageQueue *guiMessageQueue = m_deviceSampleMIMO->getMessageQueueToGUI();
qDebug("DeviceMIMOEngine::handleInputMessages: SignalNotification: guiMessageQueue: %p", guiMessageQueue); qDebug("DeviceMIMOEngine::handleInputMessages: DSPMIMOSignalNotification: guiMessageQueue: %p", guiMessageQueue);
if (guiMessageQueue) { if (guiMessageQueue) {
SignalNotification* rep = new SignalNotification(*notif); // make a copy for the MIMO GUI DSPMIMOSignalNotification* rep = new DSPMIMOSignalNotification(*notif); // make a copy for the MIMO GUI
guiMessageQueue->push(rep); guiMessageQueue->push(rep);
} }
@ -1018,7 +1017,7 @@ void DSPDeviceMIMOEngine::handleInputMessages()
qDebug("DSPDeviceMIMOEngine::handleInputMessages: DSPSignalNotification: guiMessageQueue: %p", guiMessageQueue); qDebug("DSPDeviceMIMOEngine::handleInputMessages: DSPSignalNotification: guiMessageQueue: %p", guiMessageQueue);
if (guiMessageQueue) { if (guiMessageQueue) {
SignalNotification* rep = new SignalNotification(*notif); // make a copy for the source GUI DSPMIMOSignalNotification* rep = new DSPMIMOSignalNotification(*notif); // make a copy for the source GUI
guiMessageQueue->push(rep); guiMessageQueue->push(rep);
} }

View File

@ -217,27 +217,6 @@ public:
unsigned int m_index; unsigned int m_index;
}; };
class SignalNotification : public Message {
MESSAGE_CLASS_DECLARATION
public:
SignalNotification(int samplerate, qint64 centerFrequency, bool sourceOrSink, unsigned int index) :
Message(),
m_sampleRate(samplerate),
m_centerFrequency(centerFrequency),
m_sourceOrSink(sourceOrSink),
m_index(index)
{ }
int getSampleRate() const { return m_sampleRate; }
qint64 getCenterFrequency() const { return m_centerFrequency; }
bool getSourceOrSink() const { return m_sourceOrSink; }
unsigned int getIndex() const { return m_index; }
private:
int m_sampleRate;
qint64 m_centerFrequency;
bool m_sourceOrSink;
unsigned int m_index;
};
class SetSpectrumSinkInput : public Message { class SetSpectrumSinkInput : public Message {
MESSAGE_CLASS_DECLARATION MESSAGE_CLASS_DECLARATION
public: public: