[Xfce4-commits] [panel-plugins/xfce4-battery-plugin] 03/07: Remove deprecated /proc/acpi support in favor of sysfs.

noreply at xfce.org noreply at xfce.org
Sun Dec 2 22:36:30 CET 2018


This is an automated email from the git hooks/post-receive script.

a   n   d   r   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository panel-plugins/xfce4-battery-plugin.

commit 023a0343b214385cc884471ea90bdee1f390d0c0
Author: John Lindgren <john at jlindgren.net>
Date:   Fri Nov 30 22:47:10 2018 -0500

    Remove deprecated /proc/acpi support in favor of sysfs.
---
 panel-plugin/libacpi.c | 364 +------------------------------------------------
 1 file changed, 7 insertions(+), 357 deletions(-)

diff --git a/panel-plugin/libacpi.c b/panel-plugin/libacpi.c
index efb5c9c..df05185 100644
--- a/panel-plugin/libacpi.c
+++ b/panel-plugin/libacpi.c
@@ -58,9 +58,6 @@ static int      acpifd;
 
 #include "libacpi.h"
 
-#define ACBASE "/proc/acpi/ac_adapter"
-
-
 static char batteries[MAXBATT][128];
 static char battinfo[MAXBATT][128];
 /* path to AC adapter because not all AC adapter are listed 
@@ -207,7 +204,7 @@ int check_acpi_sysfs(void)
 	if (sysfs == 0)
 	{
 	#ifdef DEBUG
-	  printf("DBG:No acpi support for sysfs. Trying procfs...\n");
+	  printf("DBG:No acpi support for sysfs.\n");
 	#endif
 	return 2;
 	}
@@ -245,7 +242,7 @@ int check_acpi_sysfs(void)
 	if ( batt_count == 0 )
 	{
 #ifdef DEBUG
-	  printf("DBG:No acpi support for sysfs. Trying procfs...\n");
+	  printf("DBG:No acpi support for sysfs.\n");
 #endif
 		acpi_sysfs = 0;
 		return 2;
@@ -277,63 +274,7 @@ fopen_glob(const char *name, const char *mode)
 int check_acpi(void)
 {
 #ifdef __linux__
-	if ( check_acpi_sysfs() == 0 )
-		return 0;
-#endif
-  DIR *battdir;
-  struct dirent *batt;
-  char *name;
-#ifdef __linux__
-  FILE *acpi;
-
-  if (!(acpi = fopen ("/proc/acpi/info", "r"))
-      && !(acpi = fopen ("/sys/module/acpi/parameters/acpica_version", "r")))
-  {
-#ifdef DEBUG
-	  printf("DBG:no acpi: /proc/acpi/info or "
-             "/sys/module/acpi/parameters/acpica_version not found!\n");
-#endif
-    return 1;
-  }
-
-  /* yep, all good */
-  fclose (acpi);
-
-  /* now enumerate batteries */
-  batt_count = 0;
-  battdir = opendir ("/proc/acpi/battery");
-  if (battdir == 0)
-  {
-#ifdef DEBUG
-	  printf("DBG:No battery. /proc/acpi/battery not found!\n");
-#endif
-    return 2;
-  }
-  while ((batt = readdir (battdir)))
-  {
-    name = batt->d_name;
-
-    /* skip . and .. */
-    if (!strncmp (".", name, 1) || !strncmp ("..", name, 2)) continue;
-
-    sprintf (batteries[batt_count], "/proc/acpi/battery/%s/state", name);
-    if (!(acpi = fopen (batteries[batt_count], "r"))) {
-       sprintf (batteries[batt_count], "/proc/acpi/battery/%s/status", name);
-    }
-    else fclose (acpi);
-
-    sprintf (battinfo[batt_count], "/proc/acpi/battery/%s/info", name);
-#ifdef DEBUG
-	  printf("DBG:battery number %d at:\n",batt_count);
-	  printf("DBG:info->%s\n",battinfo[batt_count]);
-	  printf("DBG:state->%s\n",batteries[batt_count]);
-	  printf("DBG:------------------------\n");
-#endif
-
-    batt_count++;
-  }
-  closedir (battdir);
-  return 0;
+  return check_acpi_sysfs();
 #else
 #ifdef HAVE_SYSCTL
   {
@@ -434,66 +375,7 @@ int read_acad_state_sysfs(void)
 int read_acad_state(void)
 {
 #ifdef __linux__
-	if (acpi_sysfs)
-		return read_acad_state_sysfs();
-  FILE *acpi;
-  char *ptr;
-  char stat;
-
-  char acpath[64];
-  char *name;
-  DIR  *acdir;
-  struct dirent *ac;
-
-  if (!(acdir=opendir(ACBASE))){
-    return -1;
-  }
-  while ((ac = readdir (acdir))){
-    name = ac->d_name;
-
-    /* skip . and .. */
-    if (name[0] == '.')
-      continue;
-
-    sprintf (acpath, "%s/%s/state", ACBASE, name);
-    if (access(acpath,R_OK)){
-      sprintf (acpath, "%s/%s/status", ACBASE, name);
-      if (access(acpath,R_OK)){
-	return -1;
-      }
-    }
-    break; //only one ac adapter supported
-  }
-  closedir(acdir);
-  acpi = fopen (acpath, "r");
-
-  fread (buf, 512, 1, acpi);
-  fclose (acpi);
-  if (!acadstate) acadstate=(ACADstate *)malloc(sizeof(ACADstate));
-
-  if ( (ptr = strstr(buf, "state:")) )
-  {
-    stat = *(ptr + 26);
-    if (stat == 'n') acadstate->state = 1;
-    if (stat == 'f')
-  	{
-	    acadstate->state = 0;
-	    return 0;
-  	}
-  }
-
-  if ( (ptr = strstr (buf, "Status:")) )
-  {
-    stat = *(ptr + 26);
-    if (stat == 'n') acadstate->state = 1;
-    if (stat == 'f')
-  	{
-	    acadstate->state = 0;
-	    return 0;
-	  }
-  }
-
-  return 1;
+  return acpi_sysfs ? read_acad_state_sysfs() : 0;
 #else
 #ifdef HAVE_SYSCTL
   static char buf[BUFSIZ];
@@ -594,121 +476,7 @@ int read_acpi_info(int battery)
 	  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]);
-#endif
-	  return 0;
-  }
-
-#ifdef DEBUG
-  {
-	  int jj= fread (buf, 1,512, acpi);
-	  printf("DBG:%d characters read from %s\n",jj,battinfo[battery]);
-  }
-#else
-  fread (buf, 1,512, acpi);
-#endif
-  fclose (acpi);
-
-  if (!acpiinfo) acpiinfo=(ACPIinfo *)malloc(sizeof(ACPIinfo));
-
-  if ((ptr = strstr (buf, "present:")) || (ptr = strstr (buf, "Present:")))
-  {
-#ifdef DEBUG
-	  printf("DBG:Battery present... and its called %s\n",battinfo[battery]);
-#endif
-    stat = *(ptr + 25);
-    if (stat == 'y')
-  	{
-	    acpiinfo->present = 1;
-  	  if ((ptr = strstr (buf, "design capacity:")) || (ptr = strstr (buf, "Design Capacity:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &temp);
-	      acpiinfo->design_capacity = temp;
-#ifdef DEBUG
-	  printf("DBG:design capacity:%d\n",temp);
-#endif
-	    }
-	    if ((ptr = strstr (buf, "last full capacity:")) || (ptr = strstr (buf, "Last Full Capacity:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &temp);
-	      acpiinfo->last_full_capacity = temp;
-#ifdef DEBUG
-	  printf("DBG:last full capacity:%d\n",temp);
-#endif
-	    }
-	    if ((ptr = strstr (buf, "battery technology:")) || (ptr = strstr (buf, "Battery Technology:")))
-	    {
-	      stat = *(ptr + 25);
-	      switch (stat)
-		    {
-		      case 'n':
-		        acpiinfo->battery_technology = 1;
-		        break;
-		      case 'r':
-		        acpiinfo->battery_technology = 0;
-		        break;
-		    }
-	    }
-	    if ((ptr = strstr (buf, "design voltage:")) || (ptr = strstr (buf, "Design Voltage:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &temp);
-	      acpiinfo->design_voltage = temp;
-#ifdef DEBUG
-	  printf("DBG:design voltage:%d\n",temp);
-#endif
-	    }
-	    if ((ptr = strstr (buf, "design capacity warning:")) || (ptr = strstr (buf, "Design Capacity Warning:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &temp);
-	      acpiinfo->design_capacity_warning = temp;
-#ifdef DEBUG
-	  printf("DBG:design capacity warning:%d\n",temp);
-#endif
-	    }
-  	  if ((ptr = strstr (buf, "design capacity low:")) || (ptr = strstr (buf, "Design Capacity Low:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &temp);
-	      acpiinfo->design_capacity_low = temp;
-#ifdef DEBUG
-	  printf("DBG:design capacity low:%d\n",temp);
-#endif
-	    }
-#ifdef DEBUG
-	  printf("DBG:ALL Battery information read...\n");
-#endif
-	  }
-    else /* Battery not present */
-	  {
-#ifdef DEBUG
-	  printf("DBG:Battery not present!... and its called %s\n",battinfo[battery]);
-#endif
-	    acpiinfo->present = 0;
-	    acpiinfo->design_capacity = 0;
-	    acpiinfo->last_full_capacity = 0;
-	    acpiinfo->battery_technology = 0;
-	    acpiinfo->design_voltage = 0;
-	    acpiinfo->design_capacity_warning = 0;
-	    acpiinfo->design_capacity_low = 0;
-	    return 0;
-	  }
-  }
-
-  return 1;
+  return acpi_sysfs ? read_acpi_info_sysfs(battery) : 0;
 #else
 #ifdef HAVE_SYSCTL
   static char buf[BUFSIZ];
@@ -837,112 +605,7 @@ int read_acpi_state_sysfs(int battery)
 int read_acpi_state(int battery)
 {
 #ifdef __linux__
-	if (acpi_sysfs)
-		return read_acpi_state_sysfs(battery);
-
-  FILE *acpi;
-  char *ptr;
-  char stat;
-
-  int percent = 100;		/* battery percentage */
-  int ptemp, rate, rtime = 0;
-
-  if (!(acpi = fopen (batteries[battery], "r"))) {
-#ifdef DEBUG
-	  printf("DBG:Could not open %s (%d)\n",batteries[battery],battery);
-#endif
-	  return 0;
-  }
-
-  fread (buf, 512, 1, acpi);
-  fclose (acpi);
-  if (!acpistate) acpistate=(ACPIstate *)malloc(sizeof(ACPIstate));
-
-  if ((ptr = strstr (buf, "present:")) || (ptr = strstr (buf, "Present:")))
-  {
-#ifdef DEBUG
-	  printf("DBG:Battery state present...\n");
-#endif
-    stat = *(ptr + 25);
-    if (stat == 'y')
-  	{
-	    acpistate->present = 1;
-	    if ((ptr = strstr (buf, "charging state:")) || (ptr = strstr (buf, "State:")))
-	    {
-	      stat = *(ptr + 25);
-	      switch (stat)
-		    {
-		      case 'd':
-		        acpistate->state = 1;
-		        break;
-		      case 'c':
-		        if (*(ptr + 33) == '/')
-		          acpistate->state = 0;
-		        else
-		          acpistate->state = 2;
-		        break;
-		      case 'u':
-		        acpistate->state = 3;
-		        break;
-		    }
-	    }
-	    /* This section of the code will calculate "percentage remaining"
-	     * using battery capacity, and the following formula
-	     * (acpi spec 3.9.2):
-	     *
-	     * percentage = (current_capacity / last_full_capacity) * 100;
-	     *
-	     */
-	    if ((ptr = strstr (buf, "remaining capacity:")) || (ptr = strstr (buf, "Remaining Capacity:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &ptemp);
-	      acpistate->rcapacity = ptemp;
-	      percent =	(float) ((float) ptemp / (float) acpiinfo->last_full_capacity) * 100;
-	      acpistate->percentage = percent;
-#ifdef DEBUG
-	  printf("DBG:remaining capacity:100 * %d/%d = %d\n",
-			  ptemp,acpiinfo->last_full_capacity,acpistate->percentage);
-#endif
-	    }
-	    if ((ptr = strstr (buf, "present rate:")) || (ptr = strstr (buf, "Present Rate:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &rate);
-
-	      /* if something wrong */
-	      if (rate <= 0) rate = 0;
-
-	      acpistate->prate = rate;
-
-	      /* time remaining in minutes */
-	      rtime = ((float) ((float) acpistate->rcapacity /
-				(float) acpistate->prate)) * 60;
-	      if (rtime <= 0) rtime = 0;
-
-				acpistate->rtime = rtime;
-	    }
-	    if ((ptr = strstr (buf, "present voltage:")) || (ptr = strstr (buf, "Battery Voltage:")))
-	    {
-	      ptr += 25;
-	      sscanf (ptr, "%d", &ptemp);
-	      acpistate->pvoltage = ptemp;
-	    }
-	  }
-    else /* Battery not present */
-	  {
-	    acpistate->present = 0;
-	    acpistate->state = UNKNOW;
-	    acpistate->prate = 0;
-	    acpistate->rcapacity = 0;
-	    acpistate->pvoltage = 0;
-	    acpistate->rtime = 0;
-	    acpistate->percentage = 0;
-	    return 0;
-	  }
-  }
-
-  return 1;
+  return acpi_sysfs ? read_acpi_state_sysfs(battery) : 0;
 #else
 #ifdef HAVE_SYSCTL
   char *string;
@@ -1052,23 +715,10 @@ const char *get_temperature(void)
 {
 #ifdef __linux__
   FILE *fp;
-  char *proc_temperature="/proc/acpi/thermal_zone/*/temperature";
   char *sys_temperature="/sys/class/thermal/thermal_zone*/temp";
   static char *p,*p2,line[256];
 
-  if ( (fp=fopen_glob(proc_temperature, "r")) != NULL )
-  {
-    fgets(line,255,fp);
-    fclose(fp);
-    p=strtok(line," ");
-    if (!p) return NULL;
-    p=p+strlen(p)+1;
-    while (p && *p ==' ') p++;
-    if (*p==0) return NULL;
-    if (strchr(p,'\n')) p=strtok(p,"\n");
-    return (const char *)p;
-  }
-  else if ( (fp=fopen_glob(sys_temperature, "r")) != NULL )
+  if ( (fp=fopen_glob(sys_temperature, "r")) != NULL )
   {
     fgets(line,255,fp);
     fclose(fp);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list