From c524a7055a92b85631b566353cc6a2e5962eff76 Mon Sep 17 00:00:00 2001 From: Armel FAUVEAU Date: Wed, 21 Feb 2024 03:19:47 +0100 Subject: [PATCH] Add sound alert on startup --- driver/backlight.c | 8 ++++++++ main.c | 4 ++++ settings.c | 4 ++++ settings.h | 5 +++++ ui/menu.c | 5 +++++ ui/menu.h | 6 +++++- ui/welcome.c | 28 ++++++++++++++++++++++------ 7 files changed, 53 insertions(+), 7 deletions(-) diff --git a/driver/backlight.c b/driver/backlight.c index d3c596f..8705a01 100644 --- a/driver/backlight.c +++ b/driver/backlight.c @@ -23,6 +23,7 @@ #ifdef ENABLE_FEAT_F4HWN #include "driver/system.h" + #include "audio.h" #endif // this is decremented once every 500ms @@ -74,6 +75,13 @@ void BACKLIGHT_TurnOn(void) BACKLIGHT_SetBrightness(i); SYSTEM_DelayMs(50); } + + if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_SOUND || gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_ALL) + { + AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP); + AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP); + } + k5Startup = false; } else diff --git a/main.c b/main.c index aa0366a..bbbf5e8 100644 --- a/main.c +++ b/main.c @@ -164,7 +164,11 @@ void Main(void) BACKLIGHT_TurnOn(); +#ifdef ENABLE_FEAT_F4HWN + if (gEeprom.POWER_ON_DISPLAY_MODE != POWER_ON_DISPLAY_MODE_NONE && gEeprom.POWER_ON_DISPLAY_MODE != POWER_ON_DISPLAY_MODE_SOUND) +#else if (gEeprom.POWER_ON_DISPLAY_MODE != POWER_ON_DISPLAY_MODE_NONE) +#endif { // 2.55 second boot-up screen while (boot_counter_10ms > 0) { diff --git a/settings.c b/settings.c index 0cf9c07..9317f9b 100644 --- a/settings.c +++ b/settings.c @@ -121,7 +121,11 @@ void SETTINGS_InitEEPROM(void) gEeprom.KEY_2_LONG_PRESS_ACTION = (Data[4] < ACTION_OPT_LEN) ? Data[4] : ACTION_OPT_NONE; gEeprom.SCAN_RESUME_MODE = (Data[5] < 3) ? Data[5] : SCAN_RESUME_CO; gEeprom.AUTO_KEYPAD_LOCK = (Data[6] < 2) ? Data[6] : false; +#ifdef ENABLE_FEAT_F4HWN + gEeprom.POWER_ON_DISPLAY_MODE = (Data[7] < 6) ? Data[7] : POWER_ON_DISPLAY_MODE_VOLTAGE; +#else gEeprom.POWER_ON_DISPLAY_MODE = (Data[7] < 4) ? Data[7] : POWER_ON_DISPLAY_MODE_VOLTAGE; +#endif // 0E98..0E9F EEPROM_ReadBuffer(0x0E98, Data, 8); diff --git a/settings.h b/settings.h index 129eb27..07075d6 100644 --- a/settings.h +++ b/settings.h @@ -26,7 +26,12 @@ #include enum POWER_OnDisplayMode_t { +#ifdef ENABLE_FEAT_F4HWN + POWER_ON_DISPLAY_MODE_ALL, + POWER_ON_DISPLAY_MODE_SOUND, +#else POWER_ON_DISPLAY_MODE_FULL_SCREEN = 0, +#endif POWER_ON_DISPLAY_MODE_MESSAGE, POWER_ON_DISPLAY_MODE_VOLTAGE, POWER_ON_DISPLAY_MODE_NONE diff --git a/ui/menu.c b/ui/menu.c index 2213a2b..56d72a6 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -269,7 +269,12 @@ const char* const gSubMenu_PTT_ID[] = const char gSubMenu_PONMSG[][8] = { +#ifdef ENABLE_FEAT_F4HWN + "ALL", + "SOUND", +#else "FULL", +#endif "MESSAGE", "VOLTAGE", "NONE" diff --git a/ui/menu.h b/ui/menu.h index 68a0aaf..04a808a 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -173,7 +173,11 @@ extern const char gSubMenu_D_RSP[4][11]; #endif extern const char* const gSubMenu_PTT_ID[5]; -extern const char gSubMenu_PONMSG[4][8]; +#ifdef ENABLE_FEAT_F4HWN + extern const char gSubMenu_PONMSG[5][8]; +#else + extern const char gSubMenu_PONMSG[4][8]; +#endif extern const char gSubMenu_ROGER[3][6]; extern const char gSubMenu_RESET[2][4]; extern const char* const gSubMenu_F_LOCK[F_LOCK_LEN]; diff --git a/ui/welcome.c b/ui/welcome.c index 1f7d02f..95290bd 100644 --- a/ui/welcome.c +++ b/ui/welcome.c @@ -54,8 +54,13 @@ void UI_DisplayWelcome(void) #endif UI_DisplayClear(); +#ifdef ENABLE_FEAT_F4HWN + if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_NONE || gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_SOUND) { + ST7565_FillScreen(0x00); +#else if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_NONE || gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_FULL_SCREEN) { ST7565_FillScreen(0xFF); +#endif } else { memset(WelcomeString0, 0, sizeof(WelcomeString0)); memset(WelcomeString1, 0, sizeof(WelcomeString1)); @@ -68,21 +73,32 @@ void UI_DisplayWelcome(void) gBatteryVoltageAverage % 100, BATTERY_VoltsToPercent(gBatteryVoltageAverage)); } +#ifdef ENABLE_FEAT_F4HWN + else if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_MESSAGE || gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_ALL) +#else else +#endif { EEPROM_ReadBuffer(0x0EB0, WelcomeString0, 16); EEPROM_ReadBuffer(0x0EC0, WelcomeString1, 16); + +#ifdef ENABLE_FEAT_F4HWN + if(gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_ALL) + { + sprintf(WelcomeString1, "%u.%02uV %u%%", + gBatteryVoltageAverage / 100, + gBatteryVoltageAverage % 100, + BATTERY_VoltsToPercent(gBatteryVoltageAverage)); + } + else if(strlen(WelcomeString1) == 0) { + UI_PrintString("BIENVENUE", 0, 127, 2, 10); + } +#endif } UI_PrintString(WelcomeString0, 0, 127, 0, 10); UI_PrintString(WelcomeString1, 0, 127, 2, 10); -#ifdef ENABLE_FEAT_F4HWN - if(strlen(WelcomeString1) == 0) { - UI_PrintString("BIENVENUE", 0, 127, 2, 10); - } -#endif - #ifdef ENABLE_FEAT_F4HWN UI_PrintStringSmallNormal(Credits, 0, 128, 5); UI_PrintStringSmallNormal(Feat, 0, 128, 6);