From 84113775aa35760203e9e28bccc5bbefbd5a4fe0 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 14 Nov 2017 22:02:40 +0100 Subject: [PATCH] UDP channel sink: applied new channel marker signal handling --- plugins/channeltx/udpsink/udpsinkgui.cpp | 49 ++++++++++++--------- plugins/channeltx/udpsink/udpsinkgui.h | 45 ++++++++++--------- plugins/channeltx/udpsink/udpsinkgui.ui | 2 +- plugins/channeltx/udpsink/udpsinkplugin.cpp | 2 +- 4 files changed, 52 insertions(+), 46 deletions(-) diff --git a/plugins/channeltx/udpsink/udpsinkgui.cpp b/plugins/channeltx/udpsink/udpsinkgui.cpp index d7e8ebdbd..1ab7caea4 100644 --- a/plugins/channeltx/udpsink/udpsinkgui.cpp +++ b/plugins/channeltx/udpsink/udpsinkgui.cpp @@ -138,26 +138,27 @@ UDPSinkGUI::UDPSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandS ui->glSpectrum->connectTimer(MainWindow::getInstance()->getMasterTimer()); connect(&MainWindow::getInstance()->getMasterTimer(), SIGNAL(timeout()), this, SLOT(tick())); - //m_channelMarker = new ChannelMarker(this); + m_channelMarker.blockSignals(true); m_channelMarker.setBandwidth(16000); m_channelMarker.setCenterFrequency(0); - m_channelMarker.setColor(Qt::green); + m_channelMarker.setColor(m_settings.m_rgbColor); m_channelMarker.setTitle("UDP Sample Sink"); - m_channelMarker.setVisible(true); - - connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged())); + m_channelMarker.blockSignals(false); + m_channelMarker.setVisible(true); // activate signal on the last setting only m_deviceUISet->registerTxChannelInstance(UDPSink::m_channelID, this); m_deviceUISet->addChannelMarker(&m_channelMarker); m_deviceUISet->addRollupWidget(this); - ui->spectrumGUI->setBuddies(m_spectrumVis->getInputMessageQueue(), m_spectrumVis, ui->glSpectrum); + connect(&m_channelMarker, SIGNAL(changedByCursor()), this, SLOT(channelMarkerChangedByCursor())); - displaySettings(); - applySettings(true); + ui->spectrumGUI->setBuddies(m_spectrumVis->getInputMessageQueue(), m_spectrumVis, ui->glSpectrum); connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); connect(m_udpSink, SIGNAL(levelChanged(qreal, qreal, int)), ui->volumeMeter, SLOT(levelChanged(qreal, qreal, int))); + + displaySettings(); + applySettings(true); } UDPSinkGUI::~UDPSinkGUI() @@ -197,12 +198,14 @@ void UDPSinkGUI::displaySettings() m_channelMarker.setBandwidth((int)m_settings.m_rfBandwidth); m_channelMarker.setColor(m_settings.m_rgbColor); m_channelMarker.setUDPAddress(m_settings.m_udpAddress); - m_channelMarker.setUDPReceivePort(m_settings.m_udpPort); m_channelMarker.blockSignals(false); + m_channelMarker.setUDPReceivePort(m_settings.m_udpPort); // activate signal on the last setting only setTitleColor(m_settings.m_rgbColor); this->setWindowTitle(m_channelMarker.getTitle()); + blockApplySettings(true); + ui->deltaFrequency->setValue(m_settings.m_inputFrequencyOffset); ui->sampleRate->setText(QString("%1").arg(roundf(m_settings.m_inputSampleRate), 0)); ui->glSpectrum->setSampleRate(m_settings.m_inputSampleRate); @@ -234,18 +237,14 @@ void UDPSinkGUI::displaySettings() ui->squelchGate->setValue(roundf(m_settings.m_squelchGate * 100.0)); ui->addressText->setText(tr("%1:%2").arg(m_settings.m_udpAddress).arg(m_settings.m_udpPort)); + + blockApplySettings(false); } -void UDPSinkGUI::displayUDPSettings() +void UDPSinkGUI::channelMarkerChangedByCursor() { -} - -void UDPSinkGUI::channelMarkerChanged() -{ - m_settings.m_rgbColor = m_channelMarker.getColor().rgb(); - m_settings.m_udpAddress = m_channelMarker.getUDPAddress(); - m_settings.m_udpPort = m_channelMarker.getUDPReceivePort(); - displaySettings(); + ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); + m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); applySettings(); } @@ -424,20 +423,26 @@ void UDPSinkGUI::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.getUDPReceivePort(), + m_settings.m_rgbColor = m_channelMarker.getColor().rgb(); + + setWindowTitle(m_channelMarker.getTitle()); + setTitleColor(m_settings.m_rgbColor); + + applySettings(); } void UDPSinkGUI::leaveEvent(QEvent*) { - blockApplySettings(true); m_channelMarker.setHighlighted(false); - blockApplySettings(false); } void UDPSinkGUI::enterEvent(QEvent*) { - blockApplySettings(true); m_channelMarker.setHighlighted(true); - blockApplySettings(false); } void UDPSinkGUI::tick() diff --git a/plugins/channeltx/udpsink/udpsinkgui.h b/plugins/channeltx/udpsink/udpsinkgui.h index a067460f8..6fc476910 100644 --- a/plugins/channeltx/udpsink/udpsinkgui.h +++ b/plugins/channeltx/udpsink/udpsinkgui.h @@ -53,27 +53,8 @@ public: virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } virtual bool handleMessage(const Message& message); -private slots: - void handleSourceMessages(); - void channelMarkerChanged(); - void on_deltaFrequency_changed(qint64 value); - void on_sampleFormat_currentIndexChanged(int index); - void on_sampleRate_textEdited(const QString& arg1); - void on_rfBandwidth_textEdited(const QString& arg1); - void on_fmDeviation_textEdited(const QString& arg1); - void on_amModPercent_textEdited(const QString& arg1); - void on_applyBtn_clicked(); - void onWidgetRolled(QWidget* widget, bool rollDown); - void onMenuDialogCalled(const QPoint& p); - void on_gainIn_valueChanged(int value); - void on_gainOut_valueChanged(int value); - void on_squelch_valueChanged(int value); - void on_squelchGate_valueChanged(int value); - void on_channelMute_toggled(bool checked); - void on_resetUDPReadIndex_clicked(); - void on_autoRWBalance_toggled(bool checked); - void on_stereoInput_toggled(bool checked); - void tick(); +public slots: + void channelMarkerChangedByCursor(); private: Ui::UDPSinkGUI* ui; @@ -98,12 +79,32 @@ private: void blockApplySettings(bool block); void applySettings(bool force = false); void displaySettings(); - void displayUDPSettings(); void setSampleFormat(int index); void setSampleFormatIndex(const UDPSinkSettings::SampleFormat& sampleFormat); void leaveEvent(QEvent*); void enterEvent(QEvent*); + +private slots: + void handleSourceMessages(); + void on_deltaFrequency_changed(qint64 value); + void on_sampleFormat_currentIndexChanged(int index); + void on_sampleRate_textEdited(const QString& arg1); + void on_rfBandwidth_textEdited(const QString& arg1); + void on_fmDeviation_textEdited(const QString& arg1); + void on_amModPercent_textEdited(const QString& arg1); + void on_applyBtn_clicked(); + void onWidgetRolled(QWidget* widget, bool rollDown); + void onMenuDialogCalled(const QPoint& p); + void on_gainIn_valueChanged(int value); + void on_gainOut_valueChanged(int value); + void on_squelch_valueChanged(int value); + void on_squelchGate_valueChanged(int value); + void on_channelMute_toggled(bool checked); + void on_resetUDPReadIndex_clicked(); + void on_autoRWBalance_toggled(bool checked); + void on_stereoInput_toggled(bool checked); + void tick(); }; #endif /* PLUGINS_CHANNELTX_UDPSINK_UDPSINKGUI_H_ */ diff --git a/plugins/channeltx/udpsink/udpsinkgui.ui b/plugins/channeltx/udpsink/udpsinkgui.ui index 4ad726adb..e046480bf 100644 --- a/plugins/channeltx/udpsink/udpsinkgui.ui +++ b/plugins/channeltx/udpsink/udpsinkgui.ui @@ -800,7 +800,7 @@ - UDP <address>:<data port> + Receiving UDP address and port 000.000.000.000:00000 diff --git a/plugins/channeltx/udpsink/udpsinkplugin.cpp b/plugins/channeltx/udpsink/udpsinkplugin.cpp index 93bf0febd..5fb246cf6 100644 --- a/plugins/channeltx/udpsink/udpsinkplugin.cpp +++ b/plugins/channeltx/udpsink/udpsinkplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor UDPSinkPlugin::m_pluginDescriptor = { QString("UDP Channel Sink"), - QString("3.8.2"), + QString("3.8.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,