diff options
author | Michael Stapelberg <stapelberg@users.noreply.github.com> | 2015-10-09 09:11:03 -0700 |
---|---|---|
committer | Michael Stapelberg <stapelberg@users.noreply.github.com> | 2015-10-09 09:11:03 -0700 |
commit | c582090cbc56e3d03ea599181cb425f968c5d47e (patch) | |
tree | 7c2522eb3ac8a690a47b8b97fdedcc26b66ce70a | |
parent | 974f95702efbf1ae15882777d191c7fde99bfb9b (diff) | |
parent | 5e33d9fe748efc8df49c123fe01d486b04c20f57 (diff) |
Merge pull request #70 from bsdjhb/freebsd_battery
Properly detect the battery charging status under FreeBSD.
-rw-r--r-- | src/print_battery_info.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/print_battery_info.c b/src/print_battery_info.c index f65090a..90db4bb 100644 --- a/src/print_battery_info.c +++ b/src/print_battery_info.c @@ -12,6 +12,7 @@ #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) #include <sys/types.h> #include <sys/sysctl.h> +#include <dev/acpica/acpiio.h> #endif #if defined(__OpenBSD__) @@ -236,7 +237,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char state = sysctl_rslt; if (state == 0 && present_rate == 100) status = CS_FULL; - else if (state == 0 && present_rate < 100) + else if ((state & ACPI_BATT_STAT_CHARGING) && present_rate < 100) status = CS_CHARGING; else status = CS_DISCHARGING; @@ -248,7 +249,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char (void)snprintf(percentagebuf, sizeof(percentagebuf), "%02d%s", present_rate, pct_mark); - if (state == 1) { + if (state == ACPI_BATT_STAT_DISCHARG) { int hours, minutes; minutes = remaining; hours = minutes / 60; |