From cdacab3d89cdbbd8fd7c20b3b340e27352e6737e Mon Sep 17 00:00:00 2001 From: Brandon Low Date: Thu, 19 Jan 2006 07:47:34 +0000 Subject: 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 --- apps/gui/statusbar.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'apps/gui/statusbar.c') diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c index 80de707a72..b4070394f9 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) && -- cgit v1.2.3