From 2ef89f876503a78418c884b4fb9446d021063bf8 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 14 Nov 2017 21:24:16 +0100 Subject: [PATCH] SSB modulator: applied new channel marker signal handling --- plugins/channeltx/modssb/ssbmodgui.cpp | 27 +++++----- plugins/channeltx/modssb/ssbmodgui.h | 66 ++++++++++++----------- plugins/channeltx/modssb/ssbmodplugin.cpp | 2 +- 3 files changed, 47 insertions(+), 48 deletions(-) diff --git a/plugins/channeltx/modssb/ssbmodgui.cpp b/plugins/channeltx/modssb/ssbmodgui.cpp index 708838db2..9dfb058d6 100644 --- a/plugins/channeltx/modssb/ssbmodgui.cpp +++ b/plugins/channeltx/modssb/ssbmodgui.cpp @@ -114,10 +114,10 @@ bool SSBModGUI::handleMessage(const Message& message) } } -void SSBModGUI::channelMarkerChanged() +void SSBModGUI::channelMarkerChangedByCursor() { + ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); - displaySettings(); applySettings(); } @@ -375,6 +375,7 @@ SSBModGUI::SSBModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); ui->deltaFrequency->setValueRange(false, 7, -9999999, 9999999); + m_channelMarker.blockSignals(true); m_channelMarker.setColor(Qt::green); m_channelMarker.setBandwidth(m_spectrumRate); m_channelMarker.setSidebands(ChannelMarker::usb); @@ -382,15 +383,17 @@ SSBModGUI::SSBModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam m_channelMarker.setTitle("SSB Modulator"); m_channelMarker.setUDPAddress("127.0.0.1"); m_channelMarker.setUDPSendPort(9999); + m_channelMarker.blockSignals(false); m_channelMarker.setVisible(true); - setTitleColor(m_channelMarker.getColor()); - connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged())); + setTitleColor(m_channelMarker.getColor()); m_deviceUISet->registerTxChannelInstance(SSBMod::m_channelID, this); m_deviceUISet->addChannelMarker(&m_channelMarker); m_deviceUISet->addRollupWidget(this); + connect(&m_channelMarker, SIGNAL(changedByCursor()), this, SLOT(channelMarkerChangedByCursor())); + ui->cwKeyerGUI->setBuddies(m_ssbMod->getInputMessageQueue(), m_ssbMod->getCWKeyer()); ui->spectrumGUI->setBuddies(m_spectrumVis->getInputMessageQueue(), m_spectrumVis, ui->glSpectrum); @@ -523,15 +526,10 @@ void SSBModGUI::applyBandwidths(bool force) void SSBModGUI::displaySettings() { - bool applySettingsWereBlocked = blockApplySettings(true); - m_channelMarker.blockSignals(true); - m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset); m_channelMarker.setBandwidth(m_settings.m_bandwidth * 2); m_channelMarker.setLowCutoff(m_settings.m_lowCutoff); - m_channelMarker.setColor(m_settings.m_rgbColor); - setTitleColor(m_settings.m_rgbColor); if (m_settings.m_dsb) { m_channelMarker.setSidebands(ChannelMarker::dsb); @@ -544,9 +542,13 @@ void SSBModGUI::displaySettings() } m_channelMarker.blockSignals(false); + m_channelMarker.setColor(m_settings.m_rgbColor); + setTitleColor(m_settings.m_rgbColor); setWindowTitle(m_channelMarker.getTitle()); + blockApplySettings(true); + QString s = QString::number(m_settings.m_agcTime / 48, 'f', 0); ui->agcTimeText->setText(s); ui->agcTime->setValue(SSBModSettings::getAGCTimeConstantIndex(m_settings.m_agcTime / 48)); @@ -587,7 +589,6 @@ void SSBModGUI::displaySettings() ui->BWText->setText(tr("%1k").arg(s)); } - ui->spanLog2->blockSignals(false); ui->dsb->blockSignals(false); ui->BW->blockSignals(false); @@ -605,7 +606,7 @@ void SSBModGUI::displaySettings() ui->volume->setValue(m_settings.m_volumeFactor * 10.0); ui->volumeText->setText(QString("%1").arg(m_settings.m_volumeFactor, 0, 'f', 1)); - blockApplySettings(applySettingsWereBlocked); + blockApplySettings(false); } void SSBModGUI::displayAGCPowerThreshold() @@ -625,16 +626,12 @@ void SSBModGUI::displayAGCPowerThreshold() void SSBModGUI::leaveEvent(QEvent*) { - bool applySettingsWereBlocked = blockApplySettings(true); m_channelMarker.setHighlighted(false); - blockApplySettings(applySettingsWereBlocked); } void SSBModGUI::enterEvent(QEvent*) { - bool applySettingsWereBlocked = blockApplySettings(true); m_channelMarker.setHighlighted(true); - blockApplySettings(applySettingsWereBlocked); } void SSBModGUI::tick() diff --git a/plugins/channeltx/modssb/ssbmodgui.h b/plugins/channeltx/modssb/ssbmodgui.h index 35f26dd74..b193ba837 100644 --- a/plugins/channeltx/modssb/ssbmodgui.h +++ b/plugins/channeltx/modssb/ssbmodgui.h @@ -53,38 +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_dsb_toggled(bool checked); - void on_audioBinaural_toggled(bool checked); - void on_audioFlipChannels_toggled(bool checked); - void on_spanLog2_valueChanged(int value); - void on_BW_valueChanged(int value); - void on_lowCut_valueChanged(int value); - void on_volume_valueChanged(int value); - void on_audioMute_toggled(bool checked); - void on_tone_toggled(bool checked); - void on_toneFrequency_valueChanged(int value); - void on_mic_toggled(bool checked); - void on_agc_toggled(bool checked); - void on_agcOrder_valueChanged(int value); - void on_agcTime_valueChanged(int value); - void on_agcThreshold_valueChanged(int value); - void on_agcThresholdGate_valueChanged(int value); - void on_agcThresholdDelay_valueChanged(int value); - void on_play_toggled(bool checked); - void on_playLoop_toggled(bool checked); - void on_morseKeyer_toggled(bool checked); - - void on_navTimeSlider_valueChanged(int value); - void on_showFileDialog_clicked(bool checked); - - void onWidgetRolled(QWidget* widget, bool rollDown); - - void configureFileName(); - void tick(); +public slots: + void channelMarkerChangedByCursor(); private: Ui::SSBModGUI* ui; @@ -122,6 +92,38 @@ private: void leaveEvent(QEvent*); void enterEvent(QEvent*); + +private slots: + void handleSourceMessages(); + void on_deltaFrequency_changed(qint64 value); + void on_dsb_toggled(bool checked); + void on_audioBinaural_toggled(bool checked); + void on_audioFlipChannels_toggled(bool checked); + void on_spanLog2_valueChanged(int value); + void on_BW_valueChanged(int value); + void on_lowCut_valueChanged(int value); + void on_volume_valueChanged(int value); + void on_audioMute_toggled(bool checked); + void on_tone_toggled(bool checked); + void on_toneFrequency_valueChanged(int value); + void on_mic_toggled(bool checked); + void on_agc_toggled(bool checked); + void on_agcOrder_valueChanged(int value); + void on_agcTime_valueChanged(int value); + void on_agcThreshold_valueChanged(int value); + void on_agcThresholdGate_valueChanged(int value); + void on_agcThresholdDelay_valueChanged(int value); + void on_play_toggled(bool checked); + void on_playLoop_toggled(bool checked); + void on_morseKeyer_toggled(bool checked); + + void on_navTimeSlider_valueChanged(int value); + void on_showFileDialog_clicked(bool checked); + + void onWidgetRolled(QWidget* widget, bool rollDown); + + void configureFileName(); + void tick(); }; #endif /* PLUGINS_CHANNELTX_MODSSB_SSBMODGUI_H_ */ diff --git a/plugins/channeltx/modssb/ssbmodplugin.cpp b/plugins/channeltx/modssb/ssbmodplugin.cpp index 43a8e43f9..e9ff58810 100644 --- a/plugins/channeltx/modssb/ssbmodplugin.cpp +++ b/plugins/channeltx/modssb/ssbmodplugin.cpp @@ -24,7 +24,7 @@ const PluginDescriptor SSBModPlugin::m_pluginDescriptor = { QString("SSB Modulator"), - QString("3.8.3"), + QString("3.8.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,