[Pkg-xfce-commits] r1459 - in goodies/xfce4-battery-plugin/debian: . patches

corsac-guest at alioth.debian.org corsac-guest at alioth.debian.org
Wed Dec 5 22:41:28 UTC 2007


Author: corsac-guest
Date: 2007-12-05 22:41:28 +0000 (Wed, 05 Dec 2007)
New Revision: 1459

Added:
   goodies/xfce4-battery-plugin/debian/patches/03_lower-acpi-polling.patch
   goodies/xfce4-battery-plugin/debian/patches/04_use-sysfs.patch
Modified:
   goodies/xfce4-battery-plugin/debian/changelog
   goodies/xfce4-battery-plugin/debian/control
Log:
add patches to lower acpi usage and use sysfs


Modified: goodies/xfce4-battery-plugin/debian/changelog
===================================================================
--- goodies/xfce4-battery-plugin/debian/changelog	2007-12-05 22:31:01 UTC (rev 1458)
+++ goodies/xfce4-battery-plugin/debian/changelog	2007-12-05 22:41:28 UTC (rev 1459)
@@ -1,11 +1,20 @@
 xfce4-battery-plugin (0.5.0-3) UNRELEASED; urgency=low
 
+  [ Simon Huggins ]
   * debian/control: Move fake Homepage field to a real one now dpkg
     supports it.
   * Add Vcs-* headers to debian/control
 
- -- Simon Huggins <huggie at earth.li>  Tue, 27 Nov 2007 17:07:12 +0000
+  [ Yves-Alexis Perez ]
+  * debian/patches
+    - 04_use-sysfs: use sysfs interface if available.
+    - 03_lower-acpi-polling: don't refresh acpi system too often.
+  * debian/control:
+    - update email address.
+    - updated standards to 3.7.3.
 
+ -- Yves-Alexis Perez <corsac at debian.org>  Wed, 05 Dec 2007 23:40:22 +0100
+
 xfce4-battery-plugin (0.5.0-2) unstable; urgency=low
 
   * debian/patches: added 02_fix-2.6.21.patch which fix battery plugin on

Modified: goodies/xfce4-battery-plugin/debian/control
===================================================================
--- goodies/xfce4-battery-plugin/debian/control	2007-12-05 22:31:01 UTC (rev 1458)
+++ goodies/xfce4-battery-plugin/debian/control	2007-12-05 22:41:28 UTC (rev 1459)
@@ -2,9 +2,9 @@
 Section: x11
 Priority: optional
 Maintainer: Debian Xfce Maintainers <pkg-xfce-devel at lists.alioth.debian.org>
-Uploaders: Emanuele Rocca <ema at debian.org>, Simon Huggins <huggie at earth.li>, Rudy Godoy <rudy at kernel-panik.org>, Martin Loschwitz <madkiss at debian.org>, Yves-Alexis Perez <corsac at corsac.net>
+Uploaders: Emanuele Rocca <ema at debian.org>, Simon Huggins <huggie at earth.li>, Rudy Godoy <rudy at kernel-panik.org>, Martin Loschwitz <madkiss at debian.org>, Yves-Alexis Perez <corsac at debian.org>
 Build-Depends: autotools-dev, cdbs, debhelper (>= 4.1), libgtk2.0-dev, xfce4-panel-dev (>= 4.4.1), libxml2-dev, libxml-parser-perl
-Standards-Version: 3.7.2
+Standards-Version: 3.7.3
 Homepage: http://goodies.xfce.org/
 Vcs-Svn: svn://svn.debian.org/pkg-xfce/goodies/xfce4-battery-plugin/
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-xfce/goodies/xfce4-battery-plugin/

Added: goodies/xfce4-battery-plugin/debian/patches/03_lower-acpi-polling.patch
===================================================================
--- goodies/xfce4-battery-plugin/debian/patches/03_lower-acpi-polling.patch	                        (rev 0)
+++ goodies/xfce4-battery-plugin/debian/patches/03_lower-acpi-polling.patch	2007-12-05 22:41:28 UTC (rev 1459)
@@ -0,0 +1,39 @@
+Index: panel-plugin/battery.c
+===================================================================
+--- panel-plugin/battery.c	(revision 3481)
++++ panel-plugin/battery.c	(working copy)
+@@ -326,14 +326,14 @@
+         }
+             else
+ #endif
+-            battmon->timeoutid = g_timeout_add(2 * 1024,
++            battmon->timeoutid = g_timeout_add(10 * 1024,
+                     (GSourceFunc) update_apm_status, battmon);
+     }
+ 
+     /* Show initial state if using ACPI rather than waiting a minute */
+     if(battmon->flag) {
+         g_source_remove(battmon->timeoutid);
+-        battmon->timeoutid = g_timeout_add(2 * 1024,
++        battmon->timeoutid = g_timeout_add(10 * 1024,
+                 (GSourceFunc) update_apm_status, battmon);
+     }
+ 
+@@ -739,7 +739,7 @@
+     gtk_container_remove(GTK_CONTAINER(battmon->ebox), GTK_WIDGET(battmon->vbox));
+     setup_battmon(battmon,orientation);
+     update_apm_status( battmon );
+-    battmon->timeoutid = g_timeout_add(1 * 1024, (GSourceFunc) update_apm_status, battmon);
++    battmon->timeoutid = g_timeout_add(10 * 1024, (GSourceFunc) update_apm_status, battmon);
+ 
+     return TRUE;
+ }
+@@ -1405,7 +1405,7 @@
+     if(battmon->method == BM_USE_ACPI) {
+         battmon->flag = TRUE;
+         g_source_remove(battmon->timeoutid);
+-        battmon->timeoutid = g_timeout_add(1000, (GSourceFunc) update_apm_status, battmon);
++        battmon->timeoutid = g_timeout_add(10 * 1024, (GSourceFunc) update_apm_status, battmon);
+     }
+ }
+ 

Added: goodies/xfce4-battery-plugin/debian/patches/04_use-sysfs.patch
===================================================================
--- goodies/xfce4-battery-plugin/debian/patches/04_use-sysfs.patch	                        (rev 0)
+++ goodies/xfce4-battery-plugin/debian/patches/04_use-sysfs.patch	2007-12-05 22:41:28 UTC (rev 1459)
@@ -0,0 +1,320 @@
+=== modified file 'panel-plugin/libacpi.c'
+--- panel-plugin/libacpi.c	2007-09-03 14:54:36 +0000
++++ panel-plugin/libacpi.c	2007-09-03 15:09:41 +0000
+@@ -54,6 +54,7 @@
+ 
+ static char batteries[MAXBATT][128];
+ static char battinfo[MAXBATT][128];
++
+ #ifndef __linux__
+ #if HAVE_SYSCTL
+  static int
+@@ -181,9 +182,56 @@
+ #endif
+ #endif
+ 
++int check_acpi_sysfs(void)
++{
++	DIR *sysfs;
++	struct dirent *batt;
++	char *name;
++
++	sysfs = opendir("/sys/class/power_supply");
++	if (sysfs == 0)
++  {
++#ifdef DEBUG
++	  printf("DBG:No acpi support for sysfs. Trying procfs...\n");
++#endif
++    return 2;
++  }
++	while ((batt = readdir(sysfs)))
++	{
++		name = batt->d_name;
++    if (!strncmp(".", name, 1) || !strncmp("..", name, 2) || (strstr(name,"AC") != NULL) ) continue;
++
++		sprintf(batteries[batt_count], "/sys/class/power_supply/%s", name);
++#ifdef DEBUG
++	  printf("DBG:battery number %d at:\n",batt_count);
++	  printf("DBG:sysfs dir->%s\n",batteries[batt_count]);
++	  printf("DBG:------------------------\n");
++#endif
++		batt_count++;
++	}
++	closedir(sysfs);
++	if ( batt_count == 0 )
++	{
++#ifdef DEBUG
++	  printf("DBG:No acpi support for sysfs. Trying procfs...\n");
++#endif
++		acpi_sysfs = 0;
++    return 2;
++  }
++	else
++	{
++		acpi_sysfs = 1;
++		return 0;
++	}
++}
++
+ /* see if we have ACPI support */
+ int check_acpi(void)
+ {
++#ifdef __linux__
++	if ( check_acpi_sysfs() == 0 )
++		return 0;
++#endif
+   DIR *battdir;
+   struct dirent *batt;
+   char *name;
+@@ -264,9 +312,75 @@
+ #endif
+ }
+ 
++int read_sysfs_int(char* filename)
++{
++	FILE* f;
++	f = fopen(filename,"r");
++	if ( !f )
++	{
++#ifdef DEBUG
++	  printf("DBG:Could not open %s\n",filename);
++#endif
++		return 0;
++	}
++	int out;
++	fscanf(f,"%d",&out);
++	fclose(f);
++	return out;
++}
++
++char* read_sysfs_string(char* filename)
++{
++	FILE* f;
++	f = fopen(filename,"r");
++	if ( !f )
++	{
++#ifdef DEBUG
++	  printf("DBG:Could not open %s\n",filename);
++#endif
++		return NULL;
++	}
++	fscanf(f,"%s",buf2);
++	fclose(f);
++	return buf2;
++}
++
++int read_acad_state_sysfs(void)
++{
++	DIR *sysfs;
++	struct dirent *propety;
++	char *name;
++
++	sysfs = opendir("/sys/class/power_supply/AC");
++	if (sysfs == 0)
++  {
++#ifdef DEBUG
++	  printf("DBG:Can't open /sys/class/power_supply/AC");
++#endif
++    return 0;
++  }
++  
++  if (!acadstate) acadstate=(ACADstate *)malloc(sizeof(ACADstate));
++
++	while ((propety = readdir(sysfs)))
++	{
++		name = propety->d_name;
++    if (!strncmp(".", name, 1) || !strncmp("..", name, 2)) continue;
++		
++		if (strcmp(name,"online") == 0)
++		{
++			acadstate->state = ( read_sysfs_int("/sys/class/power_supply/AC/online") == 1 ) ;
++		}
++	}
++	closedir(sysfs);
++	return acadstate->state;
++}
++
+ int read_acad_state(void)
+ {
+ #ifdef __linux__
++	if (acpi_sysfs)
++		return read_acad_state_sysfs();
+   FILE *acpi;
+   char *ptr;
+   char stat;
+@@ -356,20 +470,79 @@
+ #endif
+ }
+ 
++int read_acpi_info_sysfs(int battery)
++{
++	DIR *sysfs;
++	struct dirent *propety;
++	char *name;
++
++	sysfs = opendir(batteries[battery]);
++	if (sysfs == 0)
++  {
++#ifdef DEBUG
++	  printf("DBG:Can't open %s!\n", batteries[battery]);
++#endif
++    return 0;
++  }
++	
++  if (!acpiinfo) acpiinfo=(ACPIinfo *)malloc(sizeof(ACPIinfo));
++	
++	while ((propety = readdir(sysfs)))
++	{
++		name = propety->d_name;
++    if (!strncmp(".", name, 1) || !strncmp("..", name, 2)) continue;
++		
++		if (strcmp(name,"energy_full") == 0)
++		{
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			acpiinfo->last_full_capacity = read_sysfs_int(buf);
++		}
++		if (strcmp(name,"energy_full_design") == 0)
++		{
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			acpiinfo->design_capacity = read_sysfs_int(buf);
++		}
++		if (strcmp(name,"technology") == 0)
++		{
++			char *tmp;
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			tmp = read_sysfs_string(buf);
++			if (tmp != NULL)
++			{
++				if (strcmp(tmp,"Li-ion") == 0)
++					acpiinfo->battery_technology = 1;
++				else
++					acpiinfo->battery_technology = 0;
++			}
++		}
++		if (strcmp(name,"present") == 0)
++		{
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			acpiinfo->present = read_sysfs_int(buf);
++		}
++	}
++	closedir(sysfs);
++	return acpiinfo->present;
++}
++
+ int read_acpi_info(int battery)
+ {
+ #ifdef __linux__
+-  FILE *acpi;
+-  char *ptr;
+-  char stat;
+-  int temp;
+-
+   if (battery > MAXBATT) {
+ #ifdef DEBUG
+ 	  printf("DBG: error, battery > MAXBATT (%d)\n",MAXBATT);
+ #endif
+ 	  return 0;
+   }
++
++	if (acpi_sysfs)
++		return read_acpi_info_sysfs(battery);
++  
++	FILE *acpi;
++  char *ptr;
++  char stat;
++  int temp;
++
+   if (!(acpi = fopen (battinfo[battery], "r"))) {
+ #ifdef DEBUG
+ 	  printf("DBG:cannot open %s for read!\n",battinfo[battery]);
+@@ -516,9 +689,76 @@
+ 
+ }
+ 
++int read_acpi_state_sysfs(int battery)
++{
++	DIR *sysfs;
++	struct dirent *propety;
++	char *name;
++
++	sysfs = opendir(batteries[battery]);
++	if (sysfs == 0)
++  {
++#ifdef DEBUG
++	  printf("DBG:Can't open %s!\n", batteries[battery]);
++#endif
++    return 0;
++  }
++  
++  if (!acpistate) acpistate=(ACPIstate *)malloc(sizeof(ACPIstate));
++
++	while ((propety = readdir(sysfs)))
++	{
++		name = propety->d_name;
++    if (!strncmp(".", name, 1) || !strncmp("..", name, 2)) continue;
++		
++		if (strcmp(name,"status") == 0)
++		{
++			char *tmp;
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			tmp = read_sysfs_string(buf);
++			if ( tmp != NULL )
++			{
++				if (strcmp(tmp,"Charging") == 0)
++					acpistate->state = CHARGING;
++				else if (strcmp(tmp,"Discharging") == 0)
++					acpistate->state = DISCHARGING;
++				else if (strcmp(tmp,"Full") == 0)
++					acpistate->state = POWER;
++				else
++					acpistate->state = UNKNOW;
++			}
++		}
++		if (strcmp(name,"energy_now") == 0)
++		{
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			acpistate->rcapacity = read_sysfs_int(buf);
++			acpistate->percentage = (((float) acpistate->rcapacity)/acpiinfo->last_full_capacity) * 100;
++		}
++		if (strcmp(name,"current_now") == 0)
++		{
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			acpistate->prate = read_sysfs_int(buf);
++			if ( acpistate->prate < 0 )
++				acpistate->prate = 0;
++			if ( acpistate->prate > 0 )
++				acpistate->rtime = (((float) acpistate->rcapacity) / acpistate->prate) * 60;
++		}
++		if (strcmp(name,"voltage_now") == 0)
++		{
++			sprintf(buf,"%s/%s",batteries[battery], name);
++			acpistate->pvoltage = read_sysfs_int(buf);
++		}
++	}
++	closedir(sysfs);
++	return acpiinfo->present;
++}
++
+ int read_acpi_state(int battery)
+ {
+ #ifdef __linux__
++	if (acpi_sysfs)
++		return read_acpi_state_sysfs(battery);
++
+   FILE *acpi;
+   char *ptr;
+   char stat;
+
+=== modified file 'panel-plugin/libacpi.h'
+--- panel-plugin/libacpi.h	2007-09-03 14:54:36 +0000
++++ panel-plugin/libacpi.h	2007-09-03 15:09:41 +0000
+@@ -80,6 +80,8 @@
+ int batt_count;
+ /* temp buffer */
+ char buf[512];
++char buf2[512];
++int acpi_sysfs;
+ #else
+ extern int batt_count;
+ extern ACPIstate *acpistate;
+




More information about the Pkg-xfce-commits mailing list