From 5dba771d63b26195b24fc5bbd098aff733da2599 Mon Sep 17 00:00:00 2001 From: Nick Peskett Date: Mon, 26 Dec 2011 09:30:25 +0000 Subject: Option to restart running sleep timer on keypress. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31437 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/powermgmt.h | 1 + firmware/powermgmt.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) (limited to 'firmware') diff --git a/firmware/export/powermgmt.h b/firmware/export/powermgmt.h index 808c858..d54f1d5 100644 --- a/firmware/export/powermgmt.h +++ b/firmware/export/powermgmt.h @@ -164,6 +164,7 @@ void set_battery_type(int type); /* set local battery type */ void set_sleep_timer(int seconds); int get_sleep_timer(void); +void set_keypress_restarts_sleep_timer(bool enable); void handle_auto_poweroff(void); void set_car_adapter_mode(bool setting); void reset_poweroff_timer(void); diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 76322d6..4d554d6 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c @@ -64,6 +64,10 @@ void send_battery_level_event(void); static bool sleeptimer_active = false; static long sleeptimer_endtick; +/* Whether an active sleep timer should be restarted when a key is pressed */ +static bool sleeptimer_key_restarts = false; +/* The number of seconds the sleep timer was last set to */ +static unsigned int sleeptimer_duration = 0; #if CONFIG_CHARGING /* State of the charger input as seen by the power thread */ @@ -707,6 +711,8 @@ void set_poweroff_timeout(int timeout) void reset_poweroff_timer(void) { last_event_tick = current_tick; + if (sleeptimer_active && sleeptimer_key_restarts) + set_sleep_timer(sleeptimer_duration); } void sys_poweroff(void) @@ -777,6 +783,7 @@ void set_sleep_timer(int seconds) sleeptimer_active = false; sleeptimer_endtick = 0; } + sleeptimer_duration = seconds; } int get_sleep_timer(void) @@ -787,6 +794,11 @@ int get_sleep_timer(void) return 0; } +void set_keypress_restarts_sleep_timer(bool enable) +{ + sleeptimer_key_restarts = enable; +} + static void handle_sleep_timer(void) { #ifndef BOOTLOADER -- cgit v1.1