diff options
Diffstat (limited to 'hardinfo2/arch')
| -rw-r--r-- | hardinfo2/arch/linux/common/battery.h | 34 | 
1 files changed, 33 insertions, 1 deletions
| diff --git a/hardinfo2/arch/linux/common/battery.h b/hardinfo2/arch/linux/common/battery.h index 8be133ee..7b47fa90 100644 --- a/hardinfo2/arch/linux/common/battery.h +++ b/hardinfo2/arch/linux/common/battery.h @@ -17,7 +17,7 @@   */  static void -__scan_battery(void) +__scan_battery_acpi(void)  {      gchar *acpi_path; @@ -125,5 +125,37 @@ __scan_battery(void)      }      g_free(acpi_path); +} + +static void +__scan_battery_apm(void) +{ +    FILE *procapm; +    int percentage; +    char trash[10]; +     +    procapm = fopen("/proc/apm", "r"); +    if (!procapm) +        return; + +    fscanf(procapm, "%s %s %s %s %s %s %d%%", +           trash, trash, trash, trash, trash, trash, &percentage); +    fclose(procapm); + +    battery_list = g_strdup_printf("%s\n[Battery (APM)]\n" +                                   "Charge=%d%%\n", +                                   battery_list, +                                   percentage); +} + +static void +__scan_battery(void) +{ +    if (battery_list) { +      g_free(battery_list); +    } +    battery_list = g_strdup(""); +    __scan_battery_acpi(); +    __scan_battery_apm();  } | 
