diff options
| author | Michael Sevakis <jethead71@rockbox.org> | 2010-05-15 15:03:16 +0000 |
|---|---|---|
| committer | Michael Sevakis <jethead71@rockbox.org> | 2010-05-15 15:03:16 +0000 |
| commit | 414dad42c59f43919489f45236d57e1b345b8a65 (patch) | |
| tree | 1b29c055a2a8a646fca4412b2167ae39347dfc19 | |
| parent | e34c0593e7d859270695af08b2efc8b1e42e4473 (diff) | |
| download | rockbox-414dad42c59f43919489f45236d57e1b345b8a65.zip rockbox-414dad42c59f43919489f45236d57e1b345b8a65.tar.gz rockbox-414dad42c59f43919489f45236d57e1b345b8a65.tar.bz2 rockbox-414dad42c59f43919489f45236d57e1b345b8a65.tar.xz | |
If HAVE_POWEROFF_WHILE_CHARGING is not defined and the charging configuration specifies CHARGING_MONITOR or greater, allow poweroff while plugged but not actually charging the battery.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26055 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/misc.c | 10 | ||||
| -rw-r--r-- | firmware/drivers/button.c | 4 | ||||
| -rw-r--r-- | firmware/powermgmt.c | 4 |
3 files changed, 17 insertions, 1 deletions
diff --git a/apps/misc.c b/apps/misc.c index 3dfc289..07b4c94 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -264,8 +264,12 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter) scrobbler_poweroff(); #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) +#if CONFIG_CHARGING >= CHARGING_MONITOR + if(!charging_state()) +#else if(!charger_inserted()) #endif +#endif { bool batt_safe = battery_level_safe(); int audio_stat = audio_status(); @@ -406,7 +410,11 @@ bool list_stop_handler(void) if (TIME_BEFORE(current_tick, last_off + HZ/2)) { - if (charger_inserted()) +#if CONFIG_CHARGING >= CHARGING_MONITOR + if (charging_state()) +#else + if (charger_inserted()) +#endif { charging_splash(); ret = true; /* screen is dirty, caller needs to refresh */ diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index f7523d7..100957b 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -205,8 +205,12 @@ static void button_tick(void) #endif ) && #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) +#if CONFIG_CHARGING >= CHARGING_MONITOR + !charging_state() && +#else !charger_inserted() && #endif +#endif repeat_count > POWEROFF_COUNT) { /* Tell the main thread that it's time to diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index f1dd83e..bf5734c 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c @@ -358,8 +358,12 @@ static void handle_auto_poweroff(void) if (usb_inserted() #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) +#if CONFIG_CHARGING >= CHARGING_MONITOR + || charging_state() +#else || charger_input_state != NO_CHARGER #endif +#endif ) { DEBUGF("Sleep timer timeout. Stopping...\n"); set_sleep_timer(0); |