aboutsummaryrefslogtreecommitdiffstats
path: root/freebsd/Battery.c
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-04-11 13:01:17 +0200
committerDaniel Lange <DLange@git.local>2016-04-11 13:01:17 +0200
commit8c82a38002ce09db2a0b83dab8b598cf1ab0596c (patch)
tree596b13ab61b4454e347ff476a84c14c2c9dc3441 /freebsd/Battery.c
parentff9409b1737627857eb47f64f536a3f66b6a09a4 (diff)
downloaddebian_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.c18
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;
+}

© 2014-2024 Faster IT GmbH | imprint | privacy policy