mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-07-03 01:15:21 -04:00
Websocket spectrum: updated plugins
This commit is contained in:
parent
b1bd7f8409
commit
c6083b339f
@ -101,6 +101,11 @@ void BFMDemod::start()
|
|||||||
|
|
||||||
m_basebandSink->reset();
|
m_basebandSink->reset();
|
||||||
m_thread->start();
|
m_thread->start();
|
||||||
|
|
||||||
|
GLSpectrumSettings spectrumSettings = m_spectrumVis.getSettings();
|
||||||
|
spectrumSettings.m_ssb = true;
|
||||||
|
SpectrumVis::MsgConfigureSpectrumVis *msg = SpectrumVis::MsgConfigureSpectrumVis::create(spectrumSettings, false);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BFMDemod::stop()
|
void BFMDemod::stop()
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/downchannelizer.h"
|
#include "dsp/downchannelizer.h"
|
||||||
|
#include "dsp/spectrumvis.h"
|
||||||
|
|
||||||
#include "bfmdemodreport.h"
|
#include "bfmdemodreport.h"
|
||||||
#include "bfmdemodbaseband.h"
|
#include "bfmdemodbaseband.h"
|
||||||
@ -28,7 +29,8 @@ MESSAGE_CLASS_DEFINITION(BFMDemodBaseband::MsgConfigureBFMDemodBaseband, Message
|
|||||||
|
|
||||||
BFMDemodBaseband::BFMDemodBaseband() :
|
BFMDemodBaseband::BFMDemodBaseband() :
|
||||||
m_mutex(QMutex::Recursive),
|
m_mutex(QMutex::Recursive),
|
||||||
m_messageQueueToGUI(nullptr)
|
m_messageQueueToGUI(nullptr),
|
||||||
|
m_spectrumVis(nullptr)
|
||||||
{
|
{
|
||||||
m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(48000));
|
m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(48000));
|
||||||
m_channelizer = new DownChannelizer(&m_sink);
|
m_channelizer = new DownChannelizer(&m_sink);
|
||||||
@ -132,6 +134,12 @@ bool BFMDemodBaseband::handleMessage(const Message& cmd)
|
|||||||
getMessageQueueToGUI()->push(msg);
|
getMessageQueueToGUI()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_spectrumVis)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(m_channelizer->getChannelSampleRate(), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -154,6 +162,12 @@ void BFMDemodBaseband::applySettings(const BFMDemodSettings& settings, bool forc
|
|||||||
BFMDemodReport::MsgReportChannelSampleRateChanged *msg = BFMDemodReport::MsgReportChannelSampleRateChanged::create(m_channelizer->getChannelSampleRate());
|
BFMDemodReport::MsgReportChannelSampleRateChanged *msg = BFMDemodReport::MsgReportChannelSampleRateChanged::create(m_channelizer->getChannelSampleRate());
|
||||||
getMessageQueueToGUI()->push(msg);
|
getMessageQueueToGUI()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_spectrumVis)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(m_channelizer->getChannelSampleRate(), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
||||||
@ -191,4 +205,10 @@ void BFMDemodBaseband::setBasebandSampleRate(int sampleRate)
|
|||||||
BFMDemodReport::MsgReportChannelSampleRateChanged *msg = BFMDemodReport::MsgReportChannelSampleRateChanged::create(m_channelizer->getChannelSampleRate());
|
BFMDemodReport::MsgReportChannelSampleRateChanged *msg = BFMDemodReport::MsgReportChannelSampleRateChanged::create(m_channelizer->getChannelSampleRate());
|
||||||
getMessageQueueToGUI()->push(msg);
|
getMessageQueueToGUI()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_spectrumVis)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(m_channelizer->getChannelSampleRate(), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include "bfmdemodsink.h"
|
#include "bfmdemodsink.h"
|
||||||
|
|
||||||
class DownChannelizer;
|
class DownChannelizer;
|
||||||
|
class SpectrumVis;
|
||||||
|
|
||||||
class BFMDemodBaseband : public QObject
|
class BFMDemodBaseband : public QObject
|
||||||
{
|
{
|
||||||
@ -63,7 +64,7 @@ public:
|
|||||||
MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication
|
MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication
|
||||||
int getChannelSampleRate() const;
|
int getChannelSampleRate() const;
|
||||||
void setBasebandSampleRate(int sampleRate);
|
void setBasebandSampleRate(int sampleRate);
|
||||||
void setSpectrumSink(BasebandSampleSink* spectrumSink) { m_sink.setSpectrumSink(spectrumSink); }
|
void setSpectrumSink(SpectrumVis* spectrumSink) { m_spectrumVis = spectrumSink; m_sink.setSpectrumSink((BasebandSampleSink*) spectrumSink); }
|
||||||
void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; }
|
void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; }
|
||||||
|
|
||||||
int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); }
|
int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); }
|
||||||
@ -87,6 +88,7 @@ private:
|
|||||||
BFMDemodSettings m_settings;
|
BFMDemodSettings m_settings;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
MessageQueue *m_messageQueueToGUI;
|
MessageQueue *m_messageQueueToGUI;
|
||||||
|
SpectrumVis *m_spectrumVis;
|
||||||
|
|
||||||
MessageQueue *getMessageQueueToGUI() { return m_messageQueueToGUI; }
|
MessageQueue *getMessageQueueToGUI() { return m_messageQueueToGUI; }
|
||||||
|
|
||||||
|
@ -94,6 +94,11 @@ void FreeDVDemod::start()
|
|||||||
|
|
||||||
m_basebandSink->reset();
|
m_basebandSink->reset();
|
||||||
m_thread->start();
|
m_thread->start();
|
||||||
|
|
||||||
|
GLSpectrumSettings spectrumSettings = m_spectrumVis.getSettings();
|
||||||
|
spectrumSettings.m_ssb = true;
|
||||||
|
SpectrumVis::MsgConfigureSpectrumVis *msg = SpectrumVis::MsgConfigureSpectrumVis::create(spectrumSettings, false);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FreeDVDemod::stop()
|
void FreeDVDemod::stop()
|
||||||
@ -195,6 +200,15 @@ void FreeDVDemod::applySettings(const FreeDVDemodSettings& settings, bool force)
|
|||||||
reverseAPIKeys.append("streamIndex");
|
reverseAPIKeys.append("streamIndex");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((settings.m_freeDVMode != m_settings.m_freeDVMode)
|
||||||
|
|| (settings.m_spanLog2 != m_settings.m_spanLog2) || force)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(
|
||||||
|
FreeDVDemodSettings::getModSampleRate(settings.m_freeDVMode)/(1<<settings.m_spanLog2),
|
||||||
|
0);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
|
||||||
FreeDVDemodBaseband::MsgConfigureFreeDVDemodBaseband *msg = FreeDVDemodBaseband::MsgConfigureFreeDVDemodBaseband::create(settings, force);
|
FreeDVDemodBaseband::MsgConfigureFreeDVDemodBaseband *msg = FreeDVDemodBaseband::MsgConfigureFreeDVDemodBaseband::create(settings, force);
|
||||||
m_basebandSink->getInputMessageQueue()->push(msg);
|
m_basebandSink->getInputMessageQueue()->push(msg);
|
||||||
|
|
||||||
|
@ -224,6 +224,17 @@ void SSBDemod::applySettings(const SSBDemodSettings& settings, bool force)
|
|||||||
reverseAPIKeys.append("streamIndex");
|
reverseAPIKeys.append("streamIndex");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((settings.m_dsb != m_settings.m_dsb)
|
||||||
|
|| (settings.m_rfBandwidth != m_settings.m_rfBandwidth)
|
||||||
|
|| (settings.m_lowCutoff != m_settings.m_lowCutoff) || force)
|
||||||
|
{
|
||||||
|
GLSpectrumSettings spectrumSettings = m_spectrumVis.getSettings();
|
||||||
|
spectrumSettings.m_ssb = !settings.m_dsb;
|
||||||
|
spectrumSettings.m_usb = (settings.m_lowCutoff < settings.m_rfBandwidth);
|
||||||
|
SpectrumVis::MsgConfigureSpectrumVis *msg = SpectrumVis::MsgConfigureSpectrumVis::create(spectrumSettings, false);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
|
||||||
SSBDemodBaseband::MsgConfigureSSBDemodBaseband *msg = SSBDemodBaseband::MsgConfigureSSBDemodBaseband::create(settings, force);
|
SSBDemodBaseband::MsgConfigureSSBDemodBaseband *msg = SSBDemodBaseband::MsgConfigureSSBDemodBaseband::create(settings, force);
|
||||||
m_basebandSink->getInputMessageQueue()->push(msg);
|
m_basebandSink->getInputMessageQueue()->push(msg);
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
#include "dsp/downchannelizer.h"
|
#include "dsp/downchannelizer.h"
|
||||||
|
#include "dsp/spectrumvis.h"
|
||||||
|
|
||||||
#include "ssbdemodbaseband.h"
|
#include "ssbdemodbaseband.h"
|
||||||
|
|
||||||
@ -27,6 +28,7 @@ MESSAGE_CLASS_DEFINITION(SSBDemodBaseband::MsgConfigureSSBDemodBaseband, Message
|
|||||||
|
|
||||||
SSBDemodBaseband::SSBDemodBaseband() :
|
SSBDemodBaseband::SSBDemodBaseband() :
|
||||||
m_messageQueueToGUI(nullptr),
|
m_messageQueueToGUI(nullptr),
|
||||||
|
m_spectrumVis(nullptr),
|
||||||
m_mutex(QMutex::Recursive)
|
m_mutex(QMutex::Recursive)
|
||||||
{
|
{
|
||||||
m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(48000));
|
m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(48000));
|
||||||
@ -144,6 +146,15 @@ void SSBDemodBaseband::applySettings(const SSBDemodSettings& settings, bool forc
|
|||||||
m_sink.applyAudioSampleRate(m_audioSampleRate); // reapply in case of channel sample rate change
|
m_sink.applyAudioSampleRate(m_audioSampleRate); // reapply in case of channel sample rate change
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((settings.m_spanLog2 != m_settings.m_spanLog2) || force)
|
||||||
|
{
|
||||||
|
if (m_spectrumVis)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(m_audioSampleRate/(1<<settings.m_spanLog2), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
||||||
{
|
{
|
||||||
AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager();
|
AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager();
|
||||||
@ -163,6 +174,12 @@ void SSBDemodBaseband::applySettings(const SSBDemodSettings& settings, bool forc
|
|||||||
DSPConfigureAudio *msg = new DSPConfigureAudio((int) audioSampleRate, DSPConfigureAudio::AudioOutput);
|
DSPConfigureAudio *msg = new DSPConfigureAudio((int) audioSampleRate, DSPConfigureAudio::AudioOutput);
|
||||||
getMessageQueueToGUI()->push(msg);
|
getMessageQueueToGUI()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_spectrumVis)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(m_audioSampleRate/(1<<m_settings.m_spanLog2), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ public:
|
|||||||
void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end);
|
void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end);
|
||||||
MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication
|
MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication
|
||||||
int getChannelSampleRate() const;
|
int getChannelSampleRate() const;
|
||||||
void setSpectrumSink(BasebandSampleSink* spectrumSink) { m_sink.setSpectrumSink(spectrumSink); }
|
void setSpectrumSink(SpectrumVis* spectrumSink) { m_spectrumVis = spectrumSink; m_sink.setSpectrumSink(spectrumSink); }
|
||||||
double getMagSq() const { return m_sink.getMagSq(); }
|
double getMagSq() const { return m_sink.getMagSq(); }
|
||||||
void getMagSqLevels(double& avg, double& peak, int& nbSamples) { m_sink.getMagSqLevels(avg, peak, nbSamples); }
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples) { m_sink.getMagSqLevels(avg, peak, nbSamples); }
|
||||||
unsigned int getAudioSampleRate() const { return m_audioSampleRate; }
|
unsigned int getAudioSampleRate() const { return m_audioSampleRate; }
|
||||||
@ -78,6 +78,7 @@ private:
|
|||||||
SSBDemodSettings m_settings;
|
SSBDemodSettings m_settings;
|
||||||
unsigned int m_audioSampleRate;
|
unsigned int m_audioSampleRate;
|
||||||
MessageQueue *m_messageQueueToGUI;
|
MessageQueue *m_messageQueueToGUI;
|
||||||
|
SpectrumVis *m_spectrumVis;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
|
|
||||||
bool handleMessage(const Message& cmd);
|
bool handleMessage(const Message& cmd);
|
||||||
|
@ -92,6 +92,11 @@ void FreeDVMod::start()
|
|||||||
qDebug("FreeDVMod::start");
|
qDebug("FreeDVMod::start");
|
||||||
m_basebandSource->reset();
|
m_basebandSource->reset();
|
||||||
m_thread->start();
|
m_thread->start();
|
||||||
|
|
||||||
|
GLSpectrumSettings spectrumSettings = m_spectrumVis.getSettings();
|
||||||
|
spectrumSettings.m_ssb = true;
|
||||||
|
SpectrumVis::MsgConfigureSpectrumVis *msg = SpectrumVis::MsgConfigureSpectrumVis::create(spectrumSettings, false);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FreeDVMod::stop()
|
void FreeDVMod::stop()
|
||||||
@ -277,6 +282,15 @@ void FreeDVMod::applySettings(const FreeDVModSettings& settings, bool force)
|
|||||||
reverseAPIKeys.append("streamIndex");
|
reverseAPIKeys.append("streamIndex");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((settings.m_freeDVMode != m_settings.m_freeDVMode)
|
||||||
|
|| (settings.m_spanLog2 != m_settings.m_spanLog2) || force)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(
|
||||||
|
FreeDVModSettings::getModSampleRate(settings.m_freeDVMode)/(1<<settings.m_spanLog2),
|
||||||
|
0);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
|
||||||
FreeDVModBaseband::MsgConfigureFreeDVModBaseband *msg = FreeDVModBaseband::MsgConfigureFreeDVModBaseband::create(settings, force);
|
FreeDVModBaseband::MsgConfigureFreeDVModBaseband *msg = FreeDVModBaseband::MsgConfigureFreeDVModBaseband::create(settings, force);
|
||||||
m_basebandSource->getInputMessageQueue()->push(msg);
|
m_basebandSource->getInputMessageQueue()->push(msg);
|
||||||
|
|
||||||
|
@ -294,6 +294,16 @@ void SSBMod::applySettings(const SSBModSettings& settings, bool force)
|
|||||||
reverseAPIKeys.append("streamIndex");
|
reverseAPIKeys.append("streamIndex");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((settings.m_dsb != m_settings.m_dsb)
|
||||||
|
|| (settings.m_usb != m_settings.m_usb) || force)
|
||||||
|
{
|
||||||
|
GLSpectrumSettings spectrumSettings = m_spectrumVis.getSettings();
|
||||||
|
spectrumSettings.m_ssb = !settings.m_dsb;
|
||||||
|
spectrumSettings.m_usb = settings.m_usb;
|
||||||
|
SpectrumVis::MsgConfigureSpectrumVis *msg = SpectrumVis::MsgConfigureSpectrumVis::create(spectrumSettings, false);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
|
||||||
SSBModBaseband::MsgConfigureSSBModBaseband *msg = SSBModBaseband::MsgConfigureSSBModBaseband::create(settings, force);
|
SSBModBaseband::MsgConfigureSSBModBaseband *msg = SSBModBaseband::MsgConfigureSSBModBaseband::create(settings, force);
|
||||||
m_basebandSource->getInputMessageQueue()->push(msg);
|
m_basebandSource->getInputMessageQueue()->push(msg);
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "dsp/upchannelizer.h"
|
#include "dsp/upchannelizer.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "dsp/dspcommands.h"
|
#include "dsp/dspcommands.h"
|
||||||
|
#include "dsp/spectrumvis.h"
|
||||||
|
|
||||||
#include "ssbmodbaseband.h"
|
#include "ssbmodbaseband.h"
|
||||||
|
|
||||||
@ -188,6 +189,12 @@ void SSBModBaseband::applySettings(const SSBModSettings& settings, bool force)
|
|||||||
m_source.applyAudioSampleRate(m_source.getAudioSampleRate()); // reapply in case of channel sample rate change
|
m_source.applyAudioSampleRate(m_source.getAudioSampleRate()); // reapply in case of channel sample rate change
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((settings.m_spanLog2 != m_settings.m_spanLog2) || force)
|
||||||
|
{
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(getAudioSampleRate()/(1<<settings.m_spanLog2), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
|
}
|
||||||
|
|
||||||
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
||||||
{
|
{
|
||||||
AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager();
|
AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager();
|
||||||
@ -201,6 +208,8 @@ void SSBModBaseband::applySettings(const SSBModSettings& settings, bool force)
|
|||||||
m_channelizer->setChannelization(audioSampleRate, m_settings.m_inputFrequencyOffset);
|
m_channelizer->setChannelization(audioSampleRate, m_settings.m_inputFrequencyOffset);
|
||||||
m_source.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
|
m_source.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
|
||||||
m_source.applyAudioSampleRate(audioSampleRate);
|
m_source.applyAudioSampleRate(audioSampleRate);
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(getAudioSampleRate()/(1<<m_settings.m_spanLog2), 0);
|
||||||
|
m_spectrumVis->getInputMessageQueue()->push(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
class UpChannelizer;
|
class UpChannelizer;
|
||||||
class BasebandSampleSink;
|
class BasebandSampleSink;
|
||||||
|
class SpectrumVis;
|
||||||
|
|
||||||
class SSBModBaseband : public QObject
|
class SSBModBaseband : public QObject
|
||||||
{
|
{
|
||||||
@ -70,7 +71,7 @@ public:
|
|||||||
void setInputFileStream(std::ifstream *ifstream) { m_source.setInputFileStream(ifstream); }
|
void setInputFileStream(std::ifstream *ifstream) { m_source.setInputFileStream(ifstream); }
|
||||||
AudioFifo *getAudioFifo() { return m_source.getAudioFifo(); }
|
AudioFifo *getAudioFifo() { return m_source.getAudioFifo(); }
|
||||||
AudioFifo *getFeedbackAudioFifo() { return m_source.getFeedbackAudioFifo(); }
|
AudioFifo *getFeedbackAudioFifo() { return m_source.getFeedbackAudioFifo(); }
|
||||||
void setSpectrumSink(BasebandSampleSink *sampleSink) { m_source.setSpectrumSink(sampleSink); }
|
void setSpectrumSink(SpectrumVis *sampleSink) { m_spectrumVis = sampleSink; m_source.setSpectrumSink((BasebandSampleSink *) sampleSink); }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/**
|
/**
|
||||||
@ -87,6 +88,7 @@ private:
|
|||||||
SSBModSource m_source;
|
SSBModSource m_source;
|
||||||
MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication
|
MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication
|
||||||
SSBModSettings m_settings;
|
SSBModSettings m_settings;
|
||||||
|
SpectrumVis *m_spectrumVis;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
|
|
||||||
void processFifo(SampleVector& data, unsigned int iBegin, unsigned int iEnd);
|
void processFifo(SampleVector& data, unsigned int iBegin, unsigned int iEnd);
|
||||||
|
@ -175,9 +175,14 @@ void UDPSource::applySettings(const UDPSourceSettings& settings, bool force)
|
|||||||
if ((settings.m_sampleFormat != m_settings.m_sampleFormat) || force) {
|
if ((settings.m_sampleFormat != m_settings.m_sampleFormat) || force) {
|
||||||
reverseAPIKeys.append("sampleFormat");
|
reverseAPIKeys.append("sampleFormat");
|
||||||
}
|
}
|
||||||
if ((settings.m_inputSampleRate != m_settings.m_inputSampleRate) || force) {
|
|
||||||
|
if ((settings.m_inputSampleRate != m_settings.m_inputSampleRate) || force)
|
||||||
|
{
|
||||||
reverseAPIKeys.append("inputSampleRate");
|
reverseAPIKeys.append("inputSampleRate");
|
||||||
|
DSPSignalNotification *msg = new DSPSignalNotification(settings.m_inputSampleRate, 0);
|
||||||
|
m_spectrumVis.getInputMessageQueue()->push(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) {
|
if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) {
|
||||||
reverseAPIKeys.append("rfBandwidth");
|
reverseAPIKeys.append("rfBandwidth");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user