summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-05-15 15:03:16 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-05-15 15:03:16 +0000
commit414dad42c59f43919489f45236d57e1b345b8a65 (patch)
tree1b29c055a2a8a646fca4412b2167ae39347dfc19
parente34c0593e7d859270695af08b2efc8b1e42e4473 (diff)
downloadrockbox-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.c10
-rw-r--r--firmware/drivers/button.c4
-rw-r--r--firmware/powermgmt.c4
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);