From 024814e997eee527f9d16b55ee5a997115c46c30 Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 13 Oct 2017 08:40:10 +0200 Subject: [PATCH] WFM modulator: use settings in GUI (3) --- plugins/channeltx/modnfm/nfmmodgui.cpp | 3 +- plugins/channeltx/modwfm/wfmmodgui.cpp | 155 ++++++++++++++----------- plugins/channeltx/modwfm/wfmmodgui.h | 2 +- 3 files changed, 87 insertions(+), 73 deletions(-) diff --git a/plugins/channeltx/modnfm/nfmmodgui.cpp b/plugins/channeltx/modnfm/nfmmodgui.cpp index 976d9283a..460fd69af 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.cpp +++ b/plugins/channeltx/modnfm/nfmmodgui.cpp @@ -68,7 +68,7 @@ void NFMModGUI::resetToDefaults() { m_settings.resetToDefaults(); displaySettings(); - applySettings(); + applySettings(true); } QByteArray NFMModGUI::serialize() const @@ -78,7 +78,6 @@ QByteArray NFMModGUI::serialize() const bool NFMModGUI::deserialize(const QByteArray& data) { - qDebug("NFMModGUI::deserialize"); if(m_settings.deserialize(data)) { displaySettings(); applySettings(true); diff --git a/plugins/channeltx/modwfm/wfmmodgui.cpp b/plugins/channeltx/modwfm/wfmmodgui.cpp index ba8abbe72..3963c00dc 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.cpp +++ b/plugins/channeltx/modwfm/wfmmodgui.cpp @@ -72,84 +72,98 @@ void WFMModGUI::setCenterFrequency(qint64 centerFrequency) void WFMModGUI::resetToDefaults() { - blockApplySettings(true); + m_settings.resetToDefaults(); + displaySettings(); + applySettings(true); - ui->rfBW->setCurrentIndex(7); - ui->afBW->setValue(8); - ui->fmDev->setValue(50); - ui->toneFrequency->setValue(100); - ui->volume->setValue(10); - ui->deltaFrequency->setValue(0); - - blockApplySettings(false); - applySettings(); +// blockApplySettings(true); +// +// ui->rfBW->setCurrentIndex(7); +// ui->afBW->setValue(8); +// ui->fmDev->setValue(50); +// ui->toneFrequency->setValue(100); +// ui->volume->setValue(10); +// ui->deltaFrequency->setValue(0); +// +// blockApplySettings(false); +// applySettings(); } QByteArray WFMModGUI::serialize() const { - SimpleSerializer s(1); - s.writeS32(1, m_channelMarker.getCenterFrequency()); - s.writeS32(2, ui->rfBW->currentIndex()); - s.writeS32(3, ui->afBW->value()); - s.writeS32(4, ui->fmDev->value()); - s.writeU32(5, m_channelMarker.getColor().rgb()); - s.writeS32(6, ui->toneFrequency->value()); - s.writeS32(7, ui->volume->value()); - s.writeBlob(8, ui->cwKeyerGUI->serialize()); - return s.final(); + return m_settings.serialize(); +// SimpleSerializer s(1); +// s.writeS32(1, m_channelMarker.getCenterFrequency()); +// s.writeS32(2, ui->rfBW->currentIndex()); +// s.writeS32(3, ui->afBW->value()); +// s.writeS32(4, ui->fmDev->value()); +// s.writeU32(5, m_channelMarker.getColor().rgb()); +// s.writeS32(6, ui->toneFrequency->value()); +// s.writeS32(7, ui->volume->value()); +// s.writeBlob(8, ui->cwKeyerGUI->serialize()); +// return s.final(); } bool WFMModGUI::deserialize(const QByteArray& data) { - SimpleDeserializer d(data); + if(m_settings.deserialize(data)) { + displaySettings(); + applySettings(true); + return true; + } else { + resetToDefaults(); + return false; + } - if(!d.isValid()) - { - resetToDefaults(); - return false; - } - - if(d.getVersion() == 1) - { - QByteArray bytetmp; - quint32 u32tmp; - qint32 tmp; - - blockApplySettings(true); - m_channelMarker.blockSignals(true); - - d.readS32(1, &tmp, 0); - m_channelMarker.setCenterFrequency(tmp); - d.readS32(2, &tmp, 7); - ui->rfBW->setCurrentIndex(tmp); - d.readS32(3, &tmp, 3); - ui->afBW->setValue(tmp); - d.readS32(4, &tmp, 50); - ui->fmDev->setValue(tmp); - - if(d.readU32(5, &u32tmp)) - { - m_channelMarker.setColor(u32tmp); - } - - d.readS32(6, &tmp, 100); - ui->toneFrequency->setValue(tmp); - d.readS32(7, &tmp, 10); - ui->volume->setValue(tmp); - d.readBlob(8, &bytetmp); - ui->cwKeyerGUI->deserialize(bytetmp); - - blockApplySettings(false); - m_channelMarker.blockSignals(false); - - applySettings(); - return true; - } - else - { - resetToDefaults(); - return false; - } +// SimpleDeserializer d(data); +// +// if(!d.isValid()) +// { +// resetToDefaults(); +// return false; +// } +// +// if(d.getVersion() == 1) +// { +// QByteArray bytetmp; +// quint32 u32tmp; +// qint32 tmp; +// +// blockApplySettings(true); +// m_channelMarker.blockSignals(true); +// +// d.readS32(1, &tmp, 0); +// m_channelMarker.setCenterFrequency(tmp); +// d.readS32(2, &tmp, 7); +// ui->rfBW->setCurrentIndex(tmp); +// d.readS32(3, &tmp, 3); +// ui->afBW->setValue(tmp); +// d.readS32(4, &tmp, 50); +// ui->fmDev->setValue(tmp); +// +// if(d.readU32(5, &u32tmp)) +// { +// m_channelMarker.setColor(u32tmp); +// } +// +// d.readS32(6, &tmp, 100); +// ui->toneFrequency->setValue(tmp); +// d.readS32(7, &tmp, 10); +// ui->volume->setValue(tmp); +// d.readBlob(8, &bytetmp); +// ui->cwKeyerGUI->deserialize(bytetmp); +// +// blockApplySettings(false); +// m_channelMarker.blockSignals(false); +// +// applySettings(); +// return true; +// } +// else +// { +// resetToDefaults(); +// return false; +// } } bool WFMModGUI::handleMessage(const Message& message) @@ -405,7 +419,8 @@ WFMModGUI::WFMModGUI(PluginAPI* pluginAPI, DeviceSinkAPI *deviceAPI, QWidget* pa connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); connect(m_wfmMod, SIGNAL(levelChanged(qreal, qreal, int)), ui->volumeMeter, SLOT(levelChanged(qreal, qreal, int))); - applySettings(); + displaySettings(); + applySettings(true); } WFMModGUI::~WFMModGUI() @@ -424,7 +439,7 @@ void WFMModGUI::blockApplySettings(bool block) m_doApplySettings = !block; } -void WFMModGUI::applySettings() +void WFMModGUI::applySettings(bool force __attribute__((unused))) { if (m_doApplySettings) { diff --git a/plugins/channeltx/modwfm/wfmmodgui.h b/plugins/channeltx/modwfm/wfmmodgui.h index 0c21d127e..f0b60d698 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.h +++ b/plugins/channeltx/modwfm/wfmmodgui.h @@ -113,7 +113,7 @@ private: virtual ~WFMModGUI(); void blockApplySettings(bool block); - void applySettings(); + void applySettings(bool force = false); void displaySettings(); void updateWithStreamData(); void updateWithStreamTime();