From ccb2f7ff96d9e4375862246b64f71f027650e9ef Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 11 Oct 2017 00:47:51 +0200 Subject: [PATCH] AM modulator: fixed frequency shift control sequence --- plugins/channeltx/modam/ammod.cpp | 16 ++++++++++++++++ plugins/channeltx/modam/ammodgui.cpp | 5 ++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/plugins/channeltx/modam/ammod.cpp b/plugins/channeltx/modam/ammod.cpp index 7fb9cd457..1c902ab44 100644 --- a/plugins/channeltx/modam/ammod.cpp +++ b/plugins/channeltx/modam/ammod.cpp @@ -275,6 +275,20 @@ bool AMMod::handleMessage(const Message& cmd) return true; } + else if (MsgConfigureChannelizer::match(cmd)) + { + MsgConfigureChannelizer& cfg = (MsgConfigureChannelizer&) cmd; + + m_channelizer->configure(m_channelizer->getInputMessageQueue(), + cfg.getSampleRate(), + cfg.getCenterFrequency()); + + qDebug() << "AMMod::handleMessage: MsgConfigureChannelizer:" + << " getSampleRate: " << cfg.getSampleRate() + << " getCenterFrequency: " << cfg.getCenterFrequency(); + + return true; + } else if (MsgConfigureAMMod::match(cmd)) { MsgConfigureAMMod& cfg = (MsgConfigureAMMod&) cmd; @@ -415,4 +429,6 @@ void AMMod::applySettings(const AMModSettings& settings, bool force) m_cwKeyer.setSampleRate(settings.m_audioSampleRate); m_cwSmoother.setNbFadeSamples(settings.m_audioSampleRate / 250); // 4 ms } + + m_settings = settings; } diff --git a/plugins/channeltx/modam/ammodgui.cpp b/plugins/channeltx/modam/ammodgui.cpp index 7a2e34a81..4d3f64397 100644 --- a/plugins/channeltx/modam/ammodgui.cpp +++ b/plugins/channeltx/modam/ammodgui.cpp @@ -132,7 +132,7 @@ void AMModGUI::handleSourceMessages() void AMModGUI::on_deltaFrequency_changed(qint64 value) { m_channelMarker.setCenterFrequency(value); - m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); + m_settings.m_inputFrequencyOffset = value; applySettings(); } @@ -345,8 +345,7 @@ void AMModGUI::applySettings(bool force __attribute((unused))) setTitleColor(m_channelMarker.getColor()); AMMod::MsgConfigureChannelizer *msgConfigure = AMMod::MsgConfigureChannelizer::create( - 48000, - m_channelMarker.getCenterFrequency()); + 48000, m_channelMarker.getCenterFrequency()); m_amMod->getInputMessageQueue()->push(msgConfigure); ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency());