From 31c17fa2ac75d9fe8f655c56e0361cff6c065410 Mon Sep 17 00:00:00 2001 From: Armel FAUVEAU Date: Wed, 9 Oct 2024 01:29:13 +0200 Subject: [PATCH] Improve KeyLck (0 to 10min) --- app/app.c | 2 +- app/menu.c | 7 +++++-- settings.c | 2 +- settings.h | 2 +- ui/menu.c | 5 ++++- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/app.c b/app/app.c index dabd901..c17e644 100644 --- a/app/app.c +++ b/app/app.c @@ -1834,7 +1834,7 @@ static void ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) gBatterySaveCountdown_10ms = battery_save_count_10ms; if (gEeprom.AUTO_KEYPAD_LOCK) - gKeyLockCountdown = 30; // 15 seconds + gKeyLockCountdown = gEeprom.AUTO_KEYPAD_LOCK * 30; // 15 seconds step if (!bKeyPressed) { // key released if (flagSaveVfo) { diff --git a/app/menu.c b/app/menu.c index d239e00..44886dc 100644 --- a/app/menu.c +++ b/app/menu.c @@ -235,7 +235,6 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax) #endif case MENU_BCL: case MENU_BEEP: - case MENU_AUTOLK: case MENU_S_ADD1: case MENU_S_ADD2: case MENU_S_ADD3: @@ -275,6 +274,10 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax) break; #endif + case MENU_AUTOLK: + *pMax = 40; + break; + case MENU_TOT: //*pMin = 0; *pMin = 5; @@ -634,7 +637,7 @@ void MENU_AcceptSetting(void) case MENU_AUTOLK: gEeprom.AUTO_KEYPAD_LOCK = gSubMenuSelection; - gKeyLockCountdown = 30; + gKeyLockCountdown = gEeprom.AUTO_KEYPAD_LOCK * 30; // 15 seconds step break; case MENU_S_ADD1: diff --git a/settings.c b/settings.c index 037bab1..43a7cdf 100644 --- a/settings.c +++ b/settings.c @@ -120,7 +120,7 @@ void SETTINGS_InitEEPROM(void) gEeprom.KEY_2_SHORT_PRESS_ACTION = (Data[3] < ACTION_OPT_LEN) ? Data[3] : ACTION_OPT_SCAN; gEeprom.KEY_2_LONG_PRESS_ACTION = (Data[4] < ACTION_OPT_LEN) ? Data[4] : ACTION_OPT_NONE; gEeprom.SCAN_RESUME_MODE = (Data[5] < 105) ? Data[5] : 14; - gEeprom.AUTO_KEYPAD_LOCK = (Data[6] < 2) ? Data[6] : false; + gEeprom.AUTO_KEYPAD_LOCK = (Data[6] < 41) ? Data[6] : 0; #ifdef ENABLE_FEAT_F4HWN gEeprom.POWER_ON_DISPLAY_MODE = (Data[7] < 6) ? Data[7] : POWER_ON_DISPLAY_MODE_VOLTAGE; #else diff --git a/settings.h b/settings.h index cd6c365..cd26363 100644 --- a/settings.h +++ b/settings.h @@ -211,7 +211,7 @@ typedef struct { uint8_t field37_0x32; uint8_t field38_0x33; - bool AUTO_KEYPAD_LOCK; + uint8_t AUTO_KEYPAD_LOCK; #if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) ALARM_Mode_t ALARM_MODE; #endif diff --git a/ui/menu.c b/ui/menu.c index 237ae97..633f20b 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -705,7 +705,10 @@ void UI_DisplayMenu(void) break; case MENU_AUTOLK: - strcpy(String, (gSubMenuSelection == 0) ? "OFF" : "AUTO"); + if (gSubMenuSelection == 0) + strcpy(String, "OFF"); + else + sprintf(String, "%02dm:%02ds", ((gSubMenuSelection * 15) / 60), ((gSubMenuSelection * 15) % 60)); break; case MENU_COMPAND: