Enlightenment CVS committal
Author : raster
Project : e17
Module : apps/e
Dir : e17/apps/e/src/modules/battery
Modified Files:
batget.c
Log Message:
suspend/resume brokeon power class - lost event file node and never got it
back. now try get them all back if they get lost.
===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/battery/batget.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- batget.c 30 Apr 2008 05:33:44 -0000 1.10
+++ batget.c 4 May 2008 06:13:26 -0000 1.11
@@ -442,6 +442,33 @@
return 0;
}
+static Ecore_Timer *re_init_timer = NULL;
+
+static int
+linux_sys_class_powe_supply_cb_re_init(void *data)
+{
+ Sys_Class_Power_Supply_Uevent *sysev;
+
+ if (events)
+ {
+ while ((sysev = ecore_list_first_goto(events)))
+ {
+ ecore_list_remove(events);
+
+ if (sysev->fd_handler)
+ ecore_main_fd_handler_del(sysev->fd_handler);
+ if (sysev->fd >= 0) close(sysev->fd);
+ free(sysev->name);
+ free(sysev);
+ }
+ ecore_list_destroy(events);
+ events = NULL;
+ }
+ linux_sys_class_power_supply_init();
+ re_init_timer = NULL;
+ return 0;
+}
+
static int
linux_sys_class_power_supply_cb_event_fd_active(void *data, Ecore_Fd_Handler
*fd_handler)
{
@@ -477,6 +504,9 @@
if (sysev->fd >= 0) close(sysev->fd);
free(sysev->name);
free(sysev);
+
+ if (re_init_timer) ecore_timer_del(re_init_timer);
+ re_init_timer = ecore_timer_add(1.0,
linux_sys_class_powe_supply_cb_re_init, NULL);
}
else
{
@@ -633,6 +663,7 @@
Sys_Class_Power_Supply_Uevent *sysev;
int total_pwr_now;
int total_pwr_max;
+ int nofull = 0;
total_pwr_now = 0;
total_pwr_max = 0;
@@ -694,6 +725,7 @@
* wrong. that's a buggy battery or driver */
if (!full)
{
+ nofull++;
if (charging)
{
snprintf(buf, sizeof(buf),
"/sys/class/power_supply/%s/time_to_full_now", name);
@@ -764,12 +796,13 @@
}
}
}
-
total_pwr_now += pwr_now - pwr_empty;
total_pwr_max += pwr_full - pwr_empty;
}
if (total_pwr_max > 0)
battery_full = ((long long)total_pwr_now * 100) / total_pwr_max;
+ if (nofull == 0)
+ time_left = -1;
}
}
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs