Check tab only...

This commit is contained in:
Armel FAUVEAU
2024-08-16 00:11:09 +02:00
parent 7c53df8d2b
commit 74862d1ac2
95 changed files with 15257 additions and 15258 deletions

192
ui/lock.c
View File

@@ -31,131 +31,131 @@
static void Render(void)
{
unsigned int i;
char String[7];
unsigned int i;
char String[7];
memset(gStatusLine, 0, sizeof(gStatusLine));
UI_DisplayClear();
memset(gStatusLine, 0, sizeof(gStatusLine));
UI_DisplayClear();
UI_PrintString("LOCK", 0, 127, 1, 10);
for (i = 0; i < 6; i++)
String[i] = (gInputBox[i] == 10) ? '-' : '*';
String[6] = 0;
UI_PrintString(String, 0, 127, 3, 12);
UI_PrintString("LOCK", 0, 127, 1, 10);
for (i = 0; i < 6; i++)
String[i] = (gInputBox[i] == 10) ? '-' : '*';
String[6] = 0;
UI_PrintString(String, 0, 127, 3, 12);
ST7565_BlitStatusLine();
ST7565_BlitFullScreen();
ST7565_BlitStatusLine();
ST7565_BlitFullScreen();
}
void UI_DisplayLock(void)
{
KEY_Code_t Key;
BEEP_Type_t Beep;
KEY_Code_t Key;
BEEP_Type_t Beep;
gUpdateDisplay = true;
gUpdateDisplay = true;
memset(gInputBox, 10, sizeof(gInputBox));
memset(gInputBox, 10, sizeof(gInputBox));
while (1)
{
while (!gNextTimeslice) {}
while (1)
{
while (!gNextTimeslice) {}
// TODO: Original code doesn't do the below, but is needed for proper key debounce
// TODO: Original code doesn't do the below, but is needed for proper key debounce
gNextTimeslice = false;
gNextTimeslice = false;
Key = KEYBOARD_Poll();
Key = KEYBOARD_Poll();
if (gKeyReading0 == Key)
{
if (++gDebounceCounter == key_debounce_10ms)
{
if (Key == KEY_INVALID)
{
gKeyReading1 = KEY_INVALID;
}
else
{
gKeyReading1 = Key;
if (gKeyReading0 == Key)
{
if (++gDebounceCounter == key_debounce_10ms)
{
if (Key == KEY_INVALID)
{
gKeyReading1 = KEY_INVALID;
}
else
{
gKeyReading1 = Key;
switch (Key)
{
case KEY_0:
case KEY_1:
case KEY_2:
case KEY_3:
case KEY_4:
case KEY_5:
case KEY_6:
case KEY_7:
case KEY_8:
case KEY_9:
INPUTBOX_Append(Key - KEY_0);
switch (Key)
{
case KEY_0:
case KEY_1:
case KEY_2:
case KEY_3:
case KEY_4:
case KEY_5:
case KEY_6:
case KEY_7:
case KEY_8:
case KEY_9:
INPUTBOX_Append(Key - KEY_0);
if (gInputBoxIndex < 6) // 6 frequency digits
{
Beep = BEEP_1KHZ_60MS_OPTIONAL;
}
else
{
uint32_t Password;
if (gInputBoxIndex < 6) // 6 frequency digits
{
Beep = BEEP_1KHZ_60MS_OPTIONAL;
}
else
{
uint32_t Password;
gInputBoxIndex = 0;
Password = StrToUL(INPUTBOX_GetAscii());
gInputBoxIndex = 0;
Password = StrToUL(INPUTBOX_GetAscii());
if ((gEeprom.POWER_ON_PASSWORD) == Password)
{
AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL);
return;
}
if ((gEeprom.POWER_ON_PASSWORD) == Password)
{
AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL);
return;
}
memset(gInputBox, 10, sizeof(gInputBox));
memset(gInputBox, 10, sizeof(gInputBox));
Beep = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL;
}
Beep = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL;
}
AUDIO_PlayBeep(Beep);
AUDIO_PlayBeep(Beep);
gUpdateDisplay = true;
break;
gUpdateDisplay = true;
break;
case KEY_EXIT:
if (gInputBoxIndex > 0)
{
gInputBox[--gInputBoxIndex] = 10;
gUpdateDisplay = true;
}
case KEY_EXIT:
if (gInputBoxIndex > 0)
{
gInputBox[--gInputBoxIndex] = 10;
gUpdateDisplay = true;
}
AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL);
AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL);
default:
break;
}
}
default:
break;
}
}
gKeyBeingHeld = false;
}
}
else
{
gDebounceCounter = 0;
gKeyReading0 = Key;
}
gKeyBeingHeld = false;
}
}
else
{
gDebounceCounter = 0;
gKeyReading0 = Key;
}
#ifdef ENABLE_UART
if (UART_IsCommandAvailable())
{
__disable_irq();
UART_HandleCommand();
__enable_irq();
}
if (UART_IsCommandAvailable())
{
__disable_irq();
UART_HandleCommand();
__enable_irq();
}
#endif
if (gUpdateDisplay)
{
Render();
gUpdateDisplay = false;
}
}
if (gUpdateDisplay)
{
Render();
gUpdateDisplay = false;
}
}
}
#endif