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
commitadefe52ce2ad43c442c0b40bfe637e238e454246 (patch)
tree1be4d43e90ea340992e3068c1348196a6e4b145c /freebsd/Battery.c
parent0063095c92e95190a0376ad245509345e5b690ed (diff)
parent8c82a38002ce09db2a0b83dab8b598cf1ab0596c (diff)
downloaddebian_htop-adefe52ce2ad43c442c0b40bfe637e238e454246.tar.gz
debian_htop-adefe52ce2ad43c442c0b40bfe637e238e454246.tar.bz2
debian_htop-adefe52ce2ad43c442c0b40bfe637e238e454246.zip
Merge tag 'upstream/2.0.1'
Upstream version 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