From 32f284a0de4c5abcb24f51d1d7ca4cd4143f18b0 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 21 Oct 2017 10:35:03 +0200 Subject: [PATCH] BFM demod: fixed missing channel configuration message handling --- plugins/channelrx/demodbfm/bfmdemod.cpp | 15 ++++++++++++++- plugins/channelrx/demodbfm/bfmdemodgui.cpp | 19 +++++++++---------- plugins/channelrx/demodbfm/bfmdemodgui.h | 2 +- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/plugins/channelrx/demodbfm/bfmdemod.cpp b/plugins/channelrx/demodbfm/bfmdemod.cpp index 0e9115879..6d7150360 100644 --- a/plugins/channelrx/demodbfm/bfmdemod.cpp +++ b/plugins/channelrx/demodbfm/bfmdemod.cpp @@ -324,6 +324,19 @@ bool BFMDemod::handleMessage(const Message& cmd) return true; } + else if (MsgConfigureChannelizer::match(cmd)) + { + MsgConfigureChannelizer& cfg = (MsgConfigureChannelizer&) cmd; + + m_channelizer->configure(m_channelizer->getInputMessageQueue(), + cfg.getSampleRate(), + cfg.getCenterFrequency()); + + qDebug() << "BFMDemod::handleMessage: MsgConfigureChannelizer: sampleRate: " << cfg.getSampleRate() + << " centerFrequency: " << cfg.getCenterFrequency(); + + return true; + } else if (MsgConfigureBFMDemod::match(cmd)) { MsgConfigureBFMDemod& cfg = (MsgConfigureBFMDemod&) cmd; @@ -353,7 +366,7 @@ bool BFMDemod::handleMessage(const Message& cmd) } else { - qDebug() << "BFMDemod::handleMessage: none"; + qDebug() << "BFMDemod::handleMessage: passed: " << cmd.getIdentifier(); if (m_sampleSink != 0) { diff --git a/plugins/channelrx/demodbfm/bfmdemodgui.cpp b/plugins/channelrx/demodbfm/bfmdemodgui.cpp index b091e24fc..565b26a07 100644 --- a/plugins/channelrx/demodbfm/bfmdemodgui.cpp +++ b/plugins/channelrx/demodbfm/bfmdemodgui.cpp @@ -138,14 +138,12 @@ void BFMDemodGUI::handleInputMessages() } } -void BFMDemodGUI::channelMarkerChanged() +void BFMDemodGUI::channelMarkerUpdate() { - setWindowTitle(m_channelMarker.getTitle()); - m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); m_settings.m_udpAddress = m_channelMarker.getUDPAddress(), m_settings.m_udpPort = m_channelMarker.getUDPSendPort(), m_settings.m_rgbColor = m_channelMarker.getColor().rgb(); - displayUDPAddress(); + displaySettings(); applySettings(); } @@ -310,6 +308,11 @@ void BFMDemodGUI::onMenuDialogCalled(const QPoint &p) BasicChannelSettingsDialog dialog(&m_channelMarker, this); dialog.move(p); dialog.exec(); + + if (dialog.hasChanged()) + { + channelMarkerUpdate(); + } } BFMDemodGUI::BFMDemodGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget* parent) : @@ -398,15 +401,11 @@ void BFMDemodGUI::applySettings(bool force) { if (m_doApplySettings) { - setTitleColor(m_channelMarker.getColor()); - BFMDemod::MsgConfigureChannelizer *msgChan = BFMDemod::MsgConfigureChannelizer::create( - requiredBW(BFMDemodSettings::getRFBW(ui->rfBW->value())), - m_channelMarker.getCenterFrequency()); + requiredBW(m_settings.m_rfBandwidth), + m_settings.m_inputFrequencyOffset); m_bfmDemod->getInputMessageQueue()->push(msgChan); - ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); - BFMDemod::MsgConfigureBFMDemod* msgConfig = BFMDemod::MsgConfigureBFMDemod::create( m_settings, force); m_bfmDemod->getInputMessageQueue()->push(msgConfig); } diff --git a/plugins/channelrx/demodbfm/bfmdemodgui.h b/plugins/channelrx/demodbfm/bfmdemodgui.h index 8cf8f1225..5fa5584b2 100644 --- a/plugins/channelrx/demodbfm/bfmdemodgui.h +++ b/plugins/channelrx/demodbfm/bfmdemodgui.h @@ -59,7 +59,6 @@ public: static const QString m_channelID; private slots: - void channelMarkerChanged(); void on_deltaFrequency_changed(qint64 value); void on_rfBW_valueChanged(int value); void on_afBW_valueChanged(int value); @@ -106,6 +105,7 @@ private: void displayUDPAddress(); void rdsUpdate(bool force); void rdsUpdateFixedFields(); + void channelMarkerUpdate(); void leaveEvent(QEvent*); void enterEvent(QEvent*);