mirror of
https://github.com/aristocratos/btop.git
synced 2024-09-30 07:01:35 +02:00
battery
This commit is contained in:
parent
41ba986954
commit
81b63652bf
@ -297,9 +297,32 @@ namespace Cpu {
|
|||||||
auto get_battery() -> tuple<int, long, string> {
|
auto get_battery() -> tuple<int, long, string> {
|
||||||
if (not has_battery) return {0, 0, ""};
|
if (not has_battery) return {0, 0, ""};
|
||||||
|
|
||||||
uint32_t percent = -1;
|
|
||||||
long seconds = -1;
|
long seconds = -1;
|
||||||
|
uint32_t percent = -1;
|
||||||
|
size_t size = sizeof(percent);
|
||||||
string status = "discharging";
|
string status = "discharging";
|
||||||
|
if (sysctlbyname("hw.acpi.battery.life", &percent, &size, NULL, 0) < 0) {
|
||||||
|
Logger::warning("Could not get battery pct");
|
||||||
|
} else {
|
||||||
|
has_battery = true;
|
||||||
|
size_t size = sizeof(seconds);
|
||||||
|
if (sysctlbyname("hw.acpi.battery.time", &seconds, &size, NULL, 0) < 0) {
|
||||||
|
Logger::warning("Could not get battery seconds");
|
||||||
|
}
|
||||||
|
int state;
|
||||||
|
size = sizeof(state);
|
||||||
|
if (sysctlbyname("hw.acpi.battery.state", &state, &size, NULL, 0) < 0) {
|
||||||
|
Logger::warning("Could not get battery state");
|
||||||
|
} else {
|
||||||
|
if (state == 2) {
|
||||||
|
status = "charging";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (percent == 100) {
|
||||||
|
status = "full";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {percent, seconds, status};
|
return {percent, seconds, status};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user