From 92c8aa78f8da59574be48a4cebe566626da98723 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 11 May 2015 00:45:00 +0200 Subject: [PATCH] use ValueDial for SSB channel shift thus allowing fine tuning --- plugins/channel/ssb/ssbdemodgui.cpp | 23 +++++ plugins/channel/ssb/ssbdemodgui.h | 2 + plugins/channel/ssb/ssbdemodgui.ui | 137 ++++++++++++++++++++-------- 3 files changed, 125 insertions(+), 37 deletions(-) diff --git a/plugins/channel/ssb/ssbdemodgui.cpp b/plugins/channel/ssb/ssbdemodgui.cpp index 7731f6de0..d4fd82f8a 100644 --- a/plugins/channel/ssb/ssbdemodgui.cpp +++ b/plugins/channel/ssb/ssbdemodgui.cpp @@ -33,6 +33,7 @@ void SSBDemodGUI::resetToDefaults() { ui->BW->setValue(3); ui->volume->setValue(4); + ui->deltaFrequency->setValue(0); applySettings(); } @@ -88,6 +89,26 @@ void SSBDemodGUI::viewChanged() applySettings(); } +void SSBDemodGUI::on_deltaMinus_clicked(bool minus) +{ + int deltaFrequency = m_channelMarker->getCenterFrequency(); + bool minusDelta = (deltaFrequency < 0); + + if (minus ^ minusDelta) // sign change + { + m_channelMarker->setCenterFrequency(-deltaFrequency); + } +} + +void SSBDemodGUI::on_deltaFrequency_changed(quint64 value) +{ + if (ui->deltaMinus->isChecked()) { + m_channelMarker->setCenterFrequency(-value); + } else { + m_channelMarker->setCenterFrequency(value); + } +} + void SSBDemodGUI::on_BW_valueChanged(int value) { ui->BWText->setText(QString("%1 kHz").arg(value)); @@ -172,6 +193,8 @@ SSBDemodGUI::~SSBDemodGUI() void SSBDemodGUI::applySettings() { setTitleColor(m_channelMarker->getColor()); + ui->deltaFrequency->setValue(abs(m_channelMarker->getCenterFrequency())); + ui->deltaMinus->setChecked(m_channelMarker->getCenterFrequency() < 0); m_channelizer->configure(m_threadedSampleSink->getMessageQueue(), 48000, m_channelMarker->getCenterFrequency()); diff --git a/plugins/channel/ssb/ssbdemodgui.h b/plugins/channel/ssb/ssbdemodgui.h index 58ac19126..ac2d441fe 100644 --- a/plugins/channel/ssb/ssbdemodgui.h +++ b/plugins/channel/ssb/ssbdemodgui.h @@ -34,6 +34,8 @@ public: private slots: void viewChanged(); + void on_deltaFrequency_changed(quint64 value); + void on_deltaMinus_clicked(bool minus); void on_BW_valueChanged(int value); void on_volume_valueChanged(int value); void onWidgetRolled(QWidget* widget, bool rollDown); diff --git a/plugins/channel/ssb/ssbdemodgui.ui b/plugins/channel/ssb/ssbdemodgui.ui index 114986e00..caa74d4ed 100644 --- a/plugins/channel/ssb/ssbdemodgui.ui +++ b/plugins/channel/ssb/ssbdemodgui.ui @@ -26,20 +26,51 @@ Settings - + + 2 + + + 2 + + + 2 + + 2 3 - - + + + + + 50 + 0 + + - Bandwidth + 3 kHz + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + + + 100 + + + 20 + + + Qt::Horizontal + + + + -8 @@ -58,43 +89,14 @@ - - - - - 50 - 0 - - - - 3 kHz - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - + Volume - - - - 100 - - - 20 - - - Qt::Horizontal - - - - + @@ -110,6 +112,58 @@ + + + + Bandwidth + + + + + + + Qt::RightToLeft + + + Minus + + + + + + + + 0 + 0 + + + + + 32 + 16 + + + + + Monospace + 12 + + + + Qt::StrongFocus + + + Demod shift frequency from center in Hz + + + + + + + Hz + + + @@ -128,7 +182,16 @@ 2 - + + 3 + + + 3 + + + 3 + + 3