Keyboard lock is possible even if Rescue Ops is enabled
This commit is contained in:
117
app/generic.c
117
app/generic.c
@@ -39,61 +39,78 @@
|
|||||||
|
|
||||||
void GENERIC_Key_F(bool bKeyPressed, bool bKeyHeld)
|
void GENERIC_Key_F(bool bKeyPressed, bool bKeyHeld)
|
||||||
{
|
{
|
||||||
if (gInputBoxIndex > 0) {
|
#ifdef ENABLE_F4HWN_FEAT_MENU_LOCK
|
||||||
if (!bKeyHeld && bKeyPressed) // short pressed
|
if(gEeprom.MENU_LOCK == true)
|
||||||
gBeepToPlay = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bKeyHeld || !bKeyPressed) { // held or released
|
|
||||||
if (bKeyHeld || bKeyPressed) { // held or pressed (cannot be held and not pressed I guess, so it checks only if HELD?)
|
|
||||||
if (!bKeyHeld) // won't ever pass
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!bKeyPressed) // won't ever pass
|
|
||||||
return;
|
|
||||||
|
|
||||||
COMMON_KeypadLockToggle();
|
|
||||||
}
|
|
||||||
else { // released
|
|
||||||
#ifdef ENABLE_FMRADIO
|
|
||||||
if ((gFmRadioMode || gScreenToDisplay != DISPLAY_MAIN) && gScreenToDisplay != DISPLAY_FM)
|
|
||||||
return;
|
|
||||||
#else
|
|
||||||
if (gScreenToDisplay != DISPLAY_MAIN)
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
gWasFKeyPressed = !gWasFKeyPressed; // toggle F function
|
|
||||||
|
|
||||||
if (gWasFKeyPressed)
|
|
||||||
gKeyInputCountdown = key_input_timeout_500ms;
|
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
|
||||||
if (!gWasFKeyPressed)
|
|
||||||
gAnotherVoiceID = VOICE_ID_CANCEL;
|
|
||||||
#endif
|
|
||||||
gUpdateStatus = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else { // short pressed
|
|
||||||
#ifdef ENABLE_FMRADIO
|
|
||||||
if (gScreenToDisplay != DISPLAY_FM)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
if (bKeyHeld || !bKeyPressed) { // held or released
|
||||||
|
if (bKeyHeld || bKeyPressed) { // held or pressed (cannot be held and not pressed I guess, so it checks only if HELD?)
|
||||||
|
if (!bKeyHeld) // won't ever pass
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!bKeyPressed) // won't ever pass
|
||||||
|
return;
|
||||||
|
|
||||||
|
COMMON_KeypadLockToggle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (gInputBoxIndex > 0) {
|
||||||
|
if (!bKeyHeld && bKeyPressed) // short pressed
|
||||||
|
gBeepToPlay = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_FMRADIO
|
if (bKeyHeld || !bKeyPressed) { // held or released
|
||||||
if (gFM_ScanState == FM_SCAN_OFF) { // not scanning
|
if (bKeyHeld || bKeyPressed) { // held or pressed (cannot be held and not pressed I guess, so it checks only if HELD?)
|
||||||
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
if (!bKeyHeld) // won't ever pass
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!bKeyPressed) // won't ever pass
|
||||||
|
return;
|
||||||
|
|
||||||
|
COMMON_KeypadLockToggle();
|
||||||
|
}
|
||||||
|
else { // released
|
||||||
|
#ifdef ENABLE_FMRADIO
|
||||||
|
if ((gFmRadioMode || gScreenToDisplay != DISPLAY_MAIN) && gScreenToDisplay != DISPLAY_FM)
|
||||||
|
return;
|
||||||
|
#else
|
||||||
|
if (gScreenToDisplay != DISPLAY_MAIN)
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
gWasFKeyPressed = !gWasFKeyPressed; // toggle F function
|
||||||
|
|
||||||
|
if (gWasFKeyPressed)
|
||||||
|
gKeyInputCountdown = key_input_timeout_500ms;
|
||||||
|
|
||||||
|
#ifdef ENABLE_VOICE
|
||||||
|
if (!gWasFKeyPressed)
|
||||||
|
gAnotherVoiceID = VOICE_ID_CANCEL;
|
||||||
|
#endif
|
||||||
|
gUpdateStatus = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
else { // short pressed
|
||||||
gBeepToPlay = BEEP_440HZ_500MS;
|
#ifdef ENABLE_FMRADIO
|
||||||
gPttWasReleased = true;
|
if (gScreenToDisplay != DISPLAY_FM)
|
||||||
}
|
#endif
|
||||||
|
{
|
||||||
|
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_FMRADIO
|
||||||
|
if (gFM_ScanState == FM_SCAN_OFF) { // not scanning
|
||||||
|
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
gBeepToPlay = BEEP_440HZ_500MS;
|
||||||
|
gPttWasReleased = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void GENERIC_Key_PTT(bool bKeyPressed)
|
void GENERIC_Key_PTT(bool bKeyPressed)
|
||||||
|
@@ -948,13 +948,7 @@ void MAIN_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
MAIN_Key_STAR(bKeyPressed, bKeyHeld);
|
MAIN_Key_STAR(bKeyPressed, bKeyHeld);
|
||||||
break;
|
break;
|
||||||
case KEY_F:
|
case KEY_F:
|
||||||
#ifndef ENABLE_FEAT_F4HWN_MENU_LOCK
|
GENERIC_Key_F(bKeyPressed, bKeyHeld);
|
||||||
GENERIC_Key_F(bKeyPressed, bKeyHeld);
|
|
||||||
#else
|
|
||||||
if(gEeprom.MENU_LOCK == false) {
|
|
||||||
GENERIC_Key_F(bKeyPressed, bKeyHeld);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case KEY_PTT:
|
case KEY_PTT:
|
||||||
GENERIC_Key_PTT(bKeyPressed);
|
GENERIC_Key_PTT(bKeyPressed);
|
||||||
|
16
ui/status.c
16
ui/status.c
@@ -213,15 +213,13 @@ void UI_DisplayStatus()
|
|||||||
memcpy(line + x + 1, gFontKeyLock, sizeof(gFontKeyLock));
|
memcpy(line + x + 1, gFontKeyLock, sizeof(gFontKeyLock));
|
||||||
}
|
}
|
||||||
else if (gWasFKeyPressed) {
|
else if (gWasFKeyPressed) {
|
||||||
memcpy(line + x + 1, gFontF, sizeof(gFontF));
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
/*
|
if(gEeprom.MENU_LOCK == false) {
|
||||||
UI_PrintStringSmallBufferNormal("F", line + x + 1);
|
memcpy(line + x + 1, gFontF, sizeof(gFontF));
|
||||||
|
}
|
||||||
for (uint8_t i = 71; i < 79; i++)
|
#else
|
||||||
{
|
memcpy(line + x + 1, gFontF, sizeof(gFontF));
|
||||||
gStatusLine[i] ^= 0x7F;
|
#endif
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
else if (gBackLight)
|
else if (gBackLight)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user