diff --git a/plugins/channelrx/demodam/amdemod.cpp b/plugins/channelrx/demodam/amdemod.cpp index 5cbfbb8d7..13b29cd30 100644 --- a/plugins/channelrx/demodam/amdemod.cpp +++ b/plugins/channelrx/demodam/amdemod.cpp @@ -62,29 +62,6 @@ AMDemod::~AMDemod() delete m_udpBufferAudio; } -void AMDemod::configure(MessageQueue* messageQueue, - Real rfBandwidth, - Real volume, - Real squelch, - bool audioMute, - bool bandpassEnable, - bool copyAudioToUDP, - const QString& udpAddress, - quint16 udpPort, - bool force) -{ - Message* cmd = MsgConfigureAMDemod::create(rfBandwidth, - volume, - squelch, - audioMute, - bandpassEnable, - copyAudioToUDP, - udpAddress, - udpPort, - force); - messageQueue->push(cmd); -} - void AMDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst __attribute__((unused))) { Complex ci; @@ -171,18 +148,13 @@ bool AMDemod::handleMessage(const Message& cmd) { MsgConfigureAMDemod& cfg = (MsgConfigureAMDemod&) cmd; - AMDemodSettings settings = m_settings; + AMDemodSettings settings = cfg.getSettings(); - settings.m_rfBandwidth = cfg.getRFBandwidth(); - settings.m_volume = cfg.getVolume(); - settings.m_squelch = cfg.getSquelch(); - settings.m_audioMute = cfg.getAudioMute(); - settings.m_bandpassEnable = cfg.getBandpassEnable(); - settings.m_copyAudioToUDP = cfg.getCopyAudioToUDP(); - settings.m_udpAddress = cfg.getUDPAddress(); - settings.m_udpPort = cfg.getUDPPort(); + // These settings are set with DownChannelizer::MsgChannelizerNotification + settings.m_inputSampleRate = m_settings.m_inputSampleRate; + settings.m_inputFrequencyOffset = m_settings.m_inputFrequencyOffset; - applySettings(settings); + applySettings(settings, cfg.getForce()); qDebug() << "AMDemod::handleMessage: MsgConfigureAMDemod:" << " m_rfBandwidth: " << settings.m_rfBandwidth @@ -192,7 +164,8 @@ bool AMDemod::handleMessage(const Message& cmd) << " m_bandpassEnable: " << settings.m_bandpassEnable << " m_copyAudioToUDP: " << settings.m_copyAudioToUDP << " m_udpAddress: " << settings.m_udpAddress - << " m_udpPort: " << settings.m_udpPort; + << " m_udpPort: " << settings.m_udpPort + << " force: " << cfg.getForce(); return true; } @@ -202,45 +175,6 @@ bool AMDemod::handleMessage(const Message& cmd) } } -//void AMDemod::apply(bool force) -//{ -// -// if ((m_config.m_inputFrequencyOffset != m_running.m_inputFrequencyOffset) || -// (m_config.m_inputSampleRate != m_running.m_inputSampleRate) || force) -// { -// m_nco.setFreq(-m_config.m_inputFrequencyOffset, m_config.m_inputSampleRate); -// } -// -// if((m_config.m_inputSampleRate != m_running.m_inputSampleRate) || -// (m_config.m_rfBandwidth != m_running.m_rfBandwidth) || -// (m_config.m_audioSampleRate != m_running.m_audioSampleRate) || -// (m_config.m_bandpassEnable != m_running.m_bandpassEnable) || force) -// { -// m_settingsMutex.lock(); -// m_interpolator.create(16, m_config.m_inputSampleRate, m_config.m_rfBandwidth / 2.2f); -// m_interpolatorDistanceRemain = 0; -// m_interpolatorDistance = (Real) m_config.m_inputSampleRate / (Real) m_config.m_audioSampleRate; -// m_bandpass.create(301, m_config.m_audioSampleRate, 300.0, m_config.m_rfBandwidth / 2.0f); -// m_settingsMutex.unlock(); -// } -// -// if ((m_config.m_squelch != m_running.m_squelch) || force) -// { -// m_squelchLevel = pow(10.0, m_config.m_squelch / 20.0); -// m_squelchLevel *= m_squelchLevel; -// qDebug("AMDemod::applySettings: m_squelchLevel: %f", m_squelchLevel); -// } -// -// if ((m_config.m_udpAddress != m_running.m_udpAddress) -// || (m_config.m_udpPort != m_running.m_udpPort) || force) -// { -// m_udpBufferAudio->setAddress(m_config.m_udpAddress); -// m_udpBufferAudio->setPort(m_config.m_udpPort); -// } -// -// m_running = m_config; -//} - void AMDemod::applySettings(const AMDemodSettings& settings, bool force) { if ((m_settings.m_inputFrequencyOffset != settings.m_inputFrequencyOffset) || diff --git a/plugins/channelrx/demodam/amdemod.h b/plugins/channelrx/demodam/amdemod.h index 10ea0e9e7..5f725b72e 100644 --- a/plugins/channelrx/demodam/amdemod.h +++ b/plugins/channelrx/demodam/amdemod.h @@ -32,20 +32,32 @@ class AMDemod : public BasebandSampleSink { Q_OBJECT public: + class MsgConfigureAMDemod : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const AMDemodSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureAMDemod* create(const AMDemodSettings& settings, bool force) + { + return new MsgConfigureAMDemod(settings, force); + } + + private: + AMDemodSettings m_settings; + bool m_force; + + MsgConfigureAMDemod(const AMDemodSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + AMDemod(); ~AMDemod(); - void configure(MessageQueue* messageQueue, - Real rfBandwidth, - Real volume, - Real squelch, - bool audioMute, - bool bandpassEnable, - bool copyAudioToUDP, - const QString& udpAddress, - quint16 udpPort, - bool force); - virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool po); virtual void start(); virtual void stop(); @@ -65,74 +77,6 @@ public: } private: - class MsgConfigureAMDemod : public Message { - MESSAGE_CLASS_DECLARATION - - public: - Real getRFBandwidth() const { return m_rfBandwidth; } - Real getVolume() const { return m_volume; } - Real getSquelch() const { return m_squelch; } - bool getAudioMute() const { return m_audioMute; } - bool getBandpassEnable() const { return m_bandpassEnable; } - bool getCopyAudioToUDP() const { return m_copyAudioToUDP; } - const QString& getUDPAddress() const { return m_udpAddress; } - quint16 getUDPPort() const { return m_udpPort; } - bool getForce() const { return m_force; } - - static MsgConfigureAMDemod* create(Real rfBandwidth, - Real volume, - Real squelch, - bool audioMute, - bool bandpassEnable, - bool copyAudioToUDP, - const QString& udpAddress, - quint16 udpPort, - bool force) - { - return new MsgConfigureAMDemod(rfBandwidth, - volume, - squelch, - audioMute, - bandpassEnable, - copyAudioToUDP, - udpAddress, - udpPort, - force); - } - - private: - Real m_rfBandwidth; - Real m_volume; - Real m_squelch; - bool m_audioMute; - bool m_bandpassEnable; - bool m_copyAudioToUDP; - QString m_udpAddress; - quint16 m_udpPort; - bool m_force; - - MsgConfigureAMDemod(Real rfBandwidth, - Real volume, - Real squelch, - bool audioMute, - bool bandpassEnable, - bool copyAudioToUDP, - const QString& udpAddress, - quint16 udpPort, - bool force) : - Message(), - m_rfBandwidth(rfBandwidth), - m_volume(volume), - m_squelch(squelch), - m_audioMute(audioMute), - m_bandpassEnable(bandpassEnable), - m_copyAudioToUDP(copyAudioToUDP), - m_udpAddress(udpAddress), - m_udpPort(udpPort), - m_force(force) - { } - }; - enum RateState { RSInitialFill, RSRunning diff --git a/plugins/channelrx/demodam/amdemodgui.cpp b/plugins/channelrx/demodam/amdemodgui.cpp index 3f5fe156e..e36cfff44 100644 --- a/plugins/channelrx/demodam/amdemodgui.cpp +++ b/plugins/channelrx/demodam/amdemodgui.cpp @@ -252,7 +252,6 @@ AMDemodGUI::AMDemodGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget ui->deltaFrequency->setValueRange(false, 7, -9999999, 9999999); ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); - //m_channelMarker = new ChannelMarker(this); m_channelMarker.setColor(Qt::yellow); m_channelMarker.setBandwidth(5000); m_channelMarker.setCenterFrequency(0); @@ -279,7 +278,6 @@ AMDemodGUI::~AMDemodGUI() delete m_threadedChannelizer; delete m_channelizer; delete m_amDemod; - //delete m_channelMarker; delete ui; } @@ -300,28 +298,8 @@ void AMDemodGUI::applySettings(bool force) ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); -// m_amDemod->configure(m_amDemod->getInputMessageQueue(), -// ui->rfBW->value() * 100.0, -// ui->volume->value() / 10.0, -// ui->squelch->value(), -// ui->audioMute->isChecked(), -// ui->bandpassEnable->isChecked(), -// ui->copyAudioToUDP->isChecked(), -// m_channelMarker.getUDPAddress(), -// m_channelMarker.getUDPSendPort(), -// force); - - m_amDemod->configure(m_amDemod->getInputMessageQueue(), - m_settings.m_rfBandwidth, - m_settings.m_volume, - m_settings.m_squelch, - m_settings.m_audioMute, - m_settings.m_bandpassEnable, - m_settings.m_copyAudioToUDP, - m_settings.m_udpAddress, - m_settings.m_udpPort, - force); - + AMDemod::MsgConfigureAMDemod* message = AMDemod::MsgConfigureAMDemod::create( m_settings, force); + m_amDemod->getInputMessageQueue()->push(message); } }