summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2006-01-19 07:47:34 +0000
committerBrandon Low <lostlogic@rockbox.org>2006-01-19 07:47:34 +0000
commitcdacab3d89cdbbd8fd7c20b3b340e27352e6737e (patch)
treead1746cf51bdb56a1cdcabf0c38eb6a53244c431 /apps/gui
parent13414ae77a77d96ef2cb210d644880b847c9ca6f (diff)
downloadrockbox-cdacab3d89cdbbd8fd7c20b3b340e27352e6737e.zip
rockbox-cdacab3d89cdbbd8fd7c20b3b340e27352e6737e.tar.gz
rockbox-cdacab3d89cdbbd8fd7c20b3b340e27352e6737e.tar.bz2
rockbox-cdacab3d89cdbbd8fd7c20b3b340e27352e6737e.tar.xz
Charging state reporting on H3x0
Don't read the GPIO every refresh of statusbar or gwps for plugged state, use a variable exported from powermgmt instead. Allow Custom WPS to access %bc for battery charge state on targets that support this. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8383 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/gwps-common.c18
-rw-r--r--apps/gui/statusbar.c18
2 files changed, 29 insertions, 7 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index 3af52b5..37f4fea 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -655,11 +655,27 @@ static char* get_tag(struct wps_data* wps_data,
case 'p': /* External power plugged in? */
{
- if(charger_inserted())
+ if(charger_input_state==CHARGER)
return "p";
else
return NULL;
}
+#if defined(HAVE_CHARGE_CTRL) || \
+ defined (HAVE_CHARGE_STATE) || \
+ CONFIG_BATTERY == BATT_LIION2200
+ case 'c': /* Charging */
+ {
+ if (charge_state == CHARGING
+#ifdef HAVE_CHARGE_CTRL
+ || charge_state == TOPOFF
+#endif
+ ) {
+ return "c";
+ } else {
+ return NULL;
+ }
+ }
+#endif
}
break;
diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c
index 80de707..b407039 100644
--- a/apps/gui/statusbar.c
+++ b/apps/gui/statusbar.c
@@ -127,7 +127,7 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw)
#endif /* HAVE_LCD_CHARCELLS */
bar->info.volume = sound_val2phys(SOUND_VOLUME, global_settings.volume);
- bar->info.inserted = charger_inserted();
+ bar->info.inserted = (charger_input_state == CHARGER);
bar->info.battlevel = battery_level();
bar->info.battery_safe = battery_level_safe();
@@ -178,16 +178,21 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw)
#ifdef HAVE_CHARGING
if (bar->info.inserted) {
battery_state = true;
-#if defined(HAVE_CHARGE_CTRL) || CONFIG_BATTERY == BATT_LIION2200
+#if defined(HAVE_CHARGE_CTRL) || \
+ defined(HAVE_CHARGE_STATE) || \
+ CONFIG_BATTERY == BATT_LIION2200
/* zero battery run time if charging */
- if (charge_state > 0) {
+ if (charge_state > DISCHARGING) {
global_settings.runtime = 0;
lasttime = current_tick;
}
/* animate battery if charging */
- if ((charge_state == 1) ||
- (charge_state == 2)) {
+ if ((charge_state == CHARGING)
+#ifdef HAVE_CHARGE_CTRL
+ || (charge_state == TOPOFF)
+#endif
+ ) {
#else
global_settings.runtime = 0;
lasttime = current_tick;
@@ -323,7 +328,8 @@ void gui_statusbar_icon_battery(struct screen * display, int percent)
if (fill > 100)
fill = 100;
-#if defined(HAVE_CHARGE_CTRL) && !defined(SIMULATOR) /* Rec v1 target only */
+#if (defined(HAVE_CHARGE_CTRL) || defined(HAVE_CHARGE_STATE)) && \
+ !defined(SIMULATOR) /* Certain charge controlled targets */
/* show graphical animation when charging instead of numbers */
if ((global_settings.battery_display) &&
(charge_state != 1) &&