From 3f960f9fc5e8fc7279edc2fe4f8a550221d6bc56 Mon Sep 17 00:00:00 2001 From: Geoffrey Merck Date: Wed, 20 May 2020 22:30:55 +0200 Subject: [PATCH] Fix Callsignatend and simplify Samples --- FM.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/FM.cpp b/FM.cpp index e78fd37..31d7ad5 100644 --- a/FM.cpp +++ b/FM.cpp @@ -97,10 +97,8 @@ void CFM::samples(bool cos, q15_t* samples, uint8_t length) //we had enough samples for CTCSS and we are in some other mode than FM bool validCTCSS = CTCSS_VALID(ctcssState); stateMachine(validCTCSS && cos, inputExt); - } else if ((inputExt || CTCSS_READY(ctcssState)) && m_modemState == STATE_FM) { - //We had enough samples for CTCSS and we are in FM mode, trigger the state machine - bool validCTCSS = CTCSS_VALID(ctcssState); - stateMachine(validCTCSS && cos, inputExt); + if (m_modemState != STATE_FM) + continue; } else if ((inputExt || CTCSS_NOT_READY(ctcssState)) && m_modemState == STATE_FM && i == length - 1) { //Not enough samples for CTCSS but we already are in FM, trigger the state machine //but do not trigger the state machine on every single sample, save CPU! @@ -318,7 +316,7 @@ void CFM::stateMachine(bool validRFSignal, bool validExtSignal) break; } - if (m_state == FS_LISTENING) { + if (m_state == FS_LISTENING && !m_callsign.isRunning()) { m_outputRFRB.reset(); m_downsampler.reset(); }