feat(radio): optional key lock feature (#7383)

This commit is contained in:
3djc
2026-07-16 18:54:50 +10:00
committed by GitHub
parent 640fc189e7
commit e184cf3976
111 changed files with 750 additions and 66 deletions
+16
View File
@@ -90,6 +90,7 @@ enum MenuRadioSetupItems {
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE,
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE,
ITEM_RADIO_SETUP_FLASH_BEEP,
CASE_KEY_LOCK(ITEM_RADIO_SETUP_KEY_LOCK)
ITEM_RADIO_ONE_LOG_PER_DAY,
CASE_SPLASH_PARAM(ITEM_RADIO_SETUP_DISABLE_SPLASH)
CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_ON_SPEED)
@@ -235,6 +236,7 @@ void menuRadioSetup(event_t event)
BACKLIGHT_WARNING_ROW(LABEL(0)), // backlight control override warning
0, // flash beep
0,
CASE_KEY_LOCK(0) // key lock
CASE_SPLASH_PARAM(0) // disable splash
CASE_PWR_BUTTON_PRESS(0) // pwr on speed
CASE_PWR_BUTTON_PRESS(0) // pwr off speed
@@ -619,6 +621,20 @@ void menuRadioSetup(event_t event)
break;
}
#if defined(KEYS_LOCK_KEY1) && defined(KEYS_LOCK_KEY2)
case ITEM_RADIO_SETUP_KEY_LOCK: {
static char lbl[24];
const char* k1 = keysGetLabel((EnumKeys)KEYS_LOCK_KEY1);
const char* k2 = keysGetLabel((EnumKeys)KEYS_LOCK_KEY2);
snprintf(lbl, sizeof(lbl), STR_KEY_LOCK_FMT,
k1 ? k1 : "?", k2 ? k2 : "?");
lcdDrawTextAlignedLeft(y, lbl);
g_eeGeneral.keyLockEnabled =
editCheckBox(g_eeGeneral.keyLockEnabled, RADIO_SETUP_2ND_COLUMN, y, nullptr, attr, event);
break;
}
#endif
case ITEM_RADIO_SETUP_DISABLE_SPLASH:
lcdDrawTextAlignedLeft(y, STR_SPLASHSCREEN);
if (SPLASH_NEEDED()) {