From 04c495d876510e8569941f78aeefe18fd20ca3f6 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 14 Nov 2017 01:34:51 +0100 Subject: [PATCH] DSD Demod: applied new channel marker signal handling --- plugins/channelrx/demoddsd/dsddemodgui.cpp | 41 ++++++++++++------- plugins/channelrx/demoddsd/dsddemodgui.h | 46 +++++++++++----------- 2 files changed, 50 insertions(+), 37 deletions(-) diff --git a/plugins/channelrx/demoddsd/dsddemodgui.cpp b/plugins/channelrx/demoddsd/dsddemodgui.cpp index e1d4ded61..fca256d49 100644 --- a/plugins/channelrx/demoddsd/dsddemodgui.cpp +++ b/plugins/channelrx/demoddsd/dsddemodgui.cpp @@ -227,6 +227,17 @@ void DSDDemodGUI::onMenuDialogCalled(const QPoint &p) BasicChannelSettingsDialog dialog(&m_channelMarker, this); dialog.move(p); dialog.exec(); + + 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(); + + setWindowTitle(m_channelMarker.getTitle()); + setTitleColor(m_settings.m_rgbColor); + displayUDPAddress(); + + applySettings(); } DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) : @@ -270,19 +281,22 @@ DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban ui->deltaFrequency->setValueRange(false, 7, -9999999, 9999999); ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); - - m_channelMarker.setTitle(windowTitle()); + m_channelMarker.blockSignals(true); m_channelMarker.setColor(Qt::cyan); m_channelMarker.setBandwidth(10000); m_channelMarker.setCenterFrequency(0); - m_channelMarker.setVisible(true); - - connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged())); + m_channelMarker.setTitle("DSD Demodulator"); + m_channelMarker.setUDPAddress("127.0.0.1"); + m_channelMarker.setUDPSendPort(9999); + m_channelMarker.blockSignals(false); + m_channelMarker.setVisible(true); // activate signal on the last setting only m_deviceUISet->registerRxChannelInstance(DSDDemod::m_channelID, this); m_deviceUISet->addChannelMarker(&m_channelMarker); m_deviceUISet->addRollupWidget(this); + connect(&m_channelMarker, SIGNAL(changedByCursor()), this, SLOT(channelMarkerChangedByCursor())); + ui->scopeGUI->setBuddies(m_scopeVis->getInputMessageQueue(), m_scopeVis, ui->glScope); m_settings.setChannelMarker(&m_channelMarker); @@ -290,7 +304,6 @@ DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban updateMyPosition(); displaySettings(); - displayUDPAddress(); applySettings(true); } @@ -316,7 +329,7 @@ void DSDDemodGUI::updateMyPosition() void DSDDemodGUI::displayUDPAddress() { - ui->udpOutput->setToolTip(QString("Copy audio output to UDP %1:%2").arg(m_channelMarker.getUDPAddress()).arg(m_channelMarker.getUDPSendPort())); + ui->udpOutput->setToolTip(QString("Copy audio output to UDP %1:%2").arg(m_settings.m_udpAddress).arg(m_settings.m_udpPort)); } void DSDDemodGUI::displaySettings() @@ -324,10 +337,12 @@ void DSDDemodGUI::displaySettings() m_channelMarker.blockSignals(true); m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset); m_channelMarker.setColor(m_settings.m_rgbColor); - setTitleColor(m_settings.m_rgbColor); m_channelMarker.blockSignals(false); + setTitleColor(m_settings.m_rgbColor); // activate signal on the last setting only + setTitleColor(m_settings.m_rgbColor); setWindowTitle(m_channelMarker.getTitle()); + displayUDPAddress(); blockApplySettings(true); @@ -382,16 +397,12 @@ void DSDDemodGUI::applySettings(bool force) void DSDDemodGUI::leaveEvent(QEvent*) { - blockApplySettings(true); m_channelMarker.setHighlighted(false); - blockApplySettings(false); } void DSDDemodGUI::enterEvent(QEvent*) { - blockApplySettings(true); m_channelMarker.setHighlighted(true); - blockApplySettings(false); } void DSDDemodGUI::blockApplySettings(bool block) @@ -538,10 +549,10 @@ void DSDDemodGUI::formatStatusText() m_formatStatusText[82] = '\0'; // guard } -void DSDDemodGUI::channelMarkerChanged() +void DSDDemodGUI::channelMarkerChangedByCursor() { - setWindowTitle(m_channelMarker.getTitle()); - displayUDPAddress(); + ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); + m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); applySettings(); } diff --git a/plugins/channelrx/demoddsd/dsddemodgui.h b/plugins/channelrx/demoddsd/dsddemodgui.h index 238a2ee93..7eea120a2 100644 --- a/plugins/channelrx/demoddsd/dsddemodgui.h +++ b/plugins/channelrx/demoddsd/dsddemodgui.h @@ -57,28 +57,8 @@ public: virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } virtual bool handleMessage(const Message& message); -private slots: - void formatStatusText(); - void channelMarkerChanged(); - void on_deltaFrequency_changed(qint64 value); - void on_rfBW_valueChanged(int index); - void on_demodGain_valueChanged(int value); - void on_volume_valueChanged(int value); - void on_baudRate_currentIndexChanged(int index); - void on_enableCosineFiltering_toggled(bool enable); - void on_syncOrConstellation_toggled(bool checked); - void on_slot1On_toggled(bool checked); - void on_slot2On_toggled(bool checked); - void on_tdmaStereoSplit_toggled(bool checked); - void on_fmDeviation_valueChanged(int value); - void on_squelchGate_valueChanged(int value); - void on_squelch_valueChanged(int value); - void on_audioMute_toggled(bool checked); - void on_symbolPLLLock_toggled(bool checked); - void on_udpOutput_toggled(bool checked); - void onWidgetRolled(QWidget* widget, bool rollDown); - void onMenuDialogCalled(const QPoint& p); - void tick(); +public slots: + void channelMarkerChangedByCursor(); private: typedef enum @@ -127,6 +107,28 @@ private: void leaveEvent(QEvent*); void enterEvent(QEvent*); + +private slots: + void formatStatusText(); + void on_deltaFrequency_changed(qint64 value); + void on_rfBW_valueChanged(int index); + void on_demodGain_valueChanged(int value); + void on_volume_valueChanged(int value); + void on_baudRate_currentIndexChanged(int index); + void on_enableCosineFiltering_toggled(bool enable); + void on_syncOrConstellation_toggled(bool checked); + void on_slot1On_toggled(bool checked); + void on_slot2On_toggled(bool checked); + void on_tdmaStereoSplit_toggled(bool checked); + void on_fmDeviation_valueChanged(int value); + void on_squelchGate_valueChanged(int value); + void on_squelch_valueChanged(int value); + void on_audioMute_toggled(bool checked); + void on_symbolPLLLock_toggled(bool checked); + void on_udpOutput_toggled(bool checked); + void onWidgetRolled(QWidget* widget, bool rollDown); + void onMenuDialogCalled(const QPoint& p); + void tick(); }; #endif // INCLUDE_DSDDEMODGUI_H