From 78c92c5ca85d275e43bacf0d9948ce9b94605f6e Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Sat, 8 Apr 2023 17:13:07 -0400 Subject: [Feature] Supress voice during sleep timer shutdown if show_shutdown_message == false and sleep timer is active talk will be disabled on shutdown Change-Id: Ia660e753700f3e283691f41797ef7a77a2d9a8d9 --- apps/misc.c | 6 ++++++ firmware/export/powermgmt.h | 1 + firmware/powermgmt.c | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/apps/misc.c b/apps/misc.c index e10fceb9af..21a45037ad 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -306,6 +306,12 @@ static bool clean_shutdown(enum shutdown_type sd_type, { long msg_id = -1; + if (!global_settings.show_shutdown_message && get_sleep_timer_active()) + { + talk_force_shutup(); + talk_disable(true); + } + status_save(); #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) diff --git a/firmware/export/powermgmt.h b/firmware/export/powermgmt.h index 6ae5ccfd13..41594abe4d 100644 --- a/firmware/export/powermgmt.h +++ b/firmware/export/powermgmt.h @@ -164,6 +164,7 @@ int get_battery_capacity(void); /* get local battery capacity value */ void set_battery_type(int type); /* set local battery type */ void set_sleeptimer_duration(int minutes); +bool get_sleep_timer_active(void); int get_sleep_timer(void); void set_keypress_restarts_sleep_timer(bool enable); void handle_auto_poweroff(void); diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index c33ad387ae..abcd32f814 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c @@ -961,6 +961,11 @@ static void set_sleep_timer(int seconds) sleeptimer_duration = seconds; } +bool get_sleep_timer_active(void) +{ + return sleeptimer_active; +} + int get_sleep_timer(void) { if (sleeptimer_active && (sleeptimer_endtick >= current_tick)) -- cgit v1.2.3