From fbb06fed05f4ee5ce531ef497a83d3caecf110b9 Mon Sep 17 00:00:00 2001 From: mrkusypl Date: Mon, 30 Mar 2026 15:20:08 +0200 Subject: [PATCH] Fixed the issue where the squelch level would reset to 1 upon restart (#246) --- App/app/app.c | 1 - App/app/main.c | 3 +++ App/app/menu.c | 4 +++- App/misc.c | 2 +- App/misc.h | 2 +- App/settings.c | 8 +++++--- 6 files changed, 13 insertions(+), 7 deletions(-) diff --git a/App/app/app.c b/App/app/app.c index 247e2711..a6fb9d60 100644 --- a/App/app/app.c +++ b/App/app/app.c @@ -2144,7 +2144,6 @@ Skip: else flagSaveSettings = 1; gRequestSaveSettings = false; - gRequestSaveSquelch = false; gUpdateStatus = true; } diff --git a/App/app/main.c b/App/app/main.c index 5eb8d7d2..d55e1ace 100644 --- a/App/app/main.c +++ b/App/app/main.c @@ -301,6 +301,9 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) RADIO_NextValidList(isKeyUp ? 1 : -1); } else { // Adjust squelch: UP increments, DOWN decrements + if (gSquelchLevelOriginal == 10) + gSquelchLevelOriginal = gEeprom.SQUELCH_LEVEL; + if (isKeyUp) { gEeprom.SQUELCH_LEVEL = (gEeprom.SQUELCH_LEVEL < 9) ? gEeprom.SQUELCH_LEVEL + 1 : 9; } else { diff --git a/App/app/menu.c b/App/app/menu.c index 238c5964..2c8eae87 100644 --- a/App/app/menu.c +++ b/App/app/menu.c @@ -480,7 +480,9 @@ void MENU_AcceptSetting(void) case MENU_SQL: gEeprom.SQUELCH_LEVEL = gSubMenuSelection; gVfoConfigureMode = VFO_CONFIGURE; - gRequestSaveSquelch = true; + #ifdef ENABLE_FEAT_F4HWN + gSquelchLevelOriginal = 10; + #endif break; case MENU_STEP: diff --git a/App/misc.c b/App/misc.c index 54c64fe6..82414c1d 100644 --- a/App/misc.c +++ b/App/misc.c @@ -250,7 +250,6 @@ bool gFlagResetVfos; bool gRequestSaveVFO; uint16_t gRequestSaveChannel; bool gRequestSaveSettings; -bool gRequestSaveSquelch; #ifdef ENABLE_FMRADIO bool gRequestSaveFM; #endif @@ -331,6 +330,7 @@ uint8_t gIsLocked = 0xFF; bool gMute = false; uint8_t gBacklightTimeOriginal; uint8_t gBacklightBrightnessOld; + uint8_t gSquelchLevelOriginal = 10; uint8_t gPttOnePushCounter = 0; uint32_t gBlinkCounter = 0; diff --git a/App/misc.h b/App/misc.h index dcbdbdc7..4aebbce3 100644 --- a/App/misc.h +++ b/App/misc.h @@ -375,7 +375,6 @@ extern bool gFlagResetVfos; extern bool gRequestSaveVFO; extern uint16_t gRequestSaveChannel; extern bool gRequestSaveSettings; -extern bool gRequestSaveSquelch; #ifdef ENABLE_FMRADIO extern bool gRequestSaveFM; #endif @@ -454,6 +453,7 @@ extern volatile uint8_t boot_counter_10ms; extern bool gMute; extern uint8_t gBacklightTimeOriginal; extern uint8_t gBacklightBrightnessOld; + extern uint8_t gSquelchLevelOriginal; extern uint8_t gPttOnePushCounter; extern uint32_t gBlinkCounter; diff --git a/App/settings.c b/App/settings.c index 8a38f8b1..a0bf2c6a 100644 --- a/App/settings.c +++ b/App/settings.c @@ -766,10 +766,12 @@ void SETTINGS_SaveSettings(void) #ifdef ENABLE_FEAT_F4HWN_AUDIO State[0] = gSetting_set_audio; #endif - if (gRequestSaveSquelch) - { + #ifdef ENABLE_FEAT_F4HWN + if (gSquelchLevelOriginal < 10) + State[1] = gSquelchLevelOriginal; + else + #endif State[1] = gEeprom.SQUELCH_LEVEL; - } State[2] = gEeprom.TX_TIMEOUT_TIMER; #ifdef ENABLE_NOAA State[3] = gEeprom.NOAA_AUTO_SCAN;