diff options
author | Daniel Lange <DLange@git.local> | 2016-04-11 13:01:17 +0200 |
---|---|---|
committer | Daniel Lange <DLange@git.local> | 2016-04-11 13:01:17 +0200 |
commit | 8c82a38002ce09db2a0b83dab8b598cf1ab0596c (patch) | |
tree | 596b13ab61b4454e347ff476a84c14c2c9dc3441 /freebsd/Battery.c | |
parent | ff9409b1737627857eb47f64f536a3f66b6a09a4 (diff) | |
download | debian_htop-8c82a38002ce09db2a0b83dab8b598cf1ab0596c.tar.gz debian_htop-8c82a38002ce09db2a0b83dab8b598cf1ab0596c.tar.bz2 debian_htop-8c82a38002ce09db2a0b83dab8b598cf1ab0596c.zip |
Imported Upstream version 2.0.1upstream/2.0.1
Diffstat (limited to 'freebsd/Battery.c')
-rw-r--r-- | freebsd/Battery.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/freebsd/Battery.c b/freebsd/Battery.c index ab63aa1..b8c5e31 100644 --- a/freebsd/Battery.c +++ b/freebsd/Battery.c @@ -6,10 +6,20 @@ in the source distribution for its full text. */ #include "BatteryMeter.h" +#include <sys/sysctl.h> void Battery_getData(double* level, ACPresence* isOnAC) { - // TODO - *level = -1; - *isOnAC = AC_ERROR; -} + int life; + size_t life_len = sizeof(life); + if (sysctlbyname("hw.acpi.battery.life", &life, &life_len, NULL, 0) == -1) + *level = -1; + else + *level = life; + int acline; + size_t acline_len = sizeof(acline); + if (sysctlbyname("hw.acpi.acline", &acline, &acline_len, NULL, 0) == -1) + *isOnAC = AC_ERROR; + else + *isOnAC = acline == 0 ? AC_ABSENT : AC_PRESENT; +} |