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:
parent
5f44c61895
commit
014f62d558
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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(),
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user