mirror of https://github.com/xzeldon/htop.git
Improve battery meter support (thanks to Richard W.) Closes #3063541.
This commit is contained in:
parent
5fd1436a92
commit
3fcbcbfda6
|
@ -234,7 +234,6 @@ static double getProcBatData() {
|
|||
return 0;
|
||||
|
||||
double percent = totalFull > 0 ? ((double) totalRemain * 100) / (double) totalFull : 0;
|
||||
|
||||
return percent;
|
||||
}
|
||||
|
||||
|
@ -270,8 +269,27 @@ static double getSysBatData() {
|
|||
return 0;
|
||||
}
|
||||
|
||||
totalFull += parseUevent(file, "POWER_SUPPLY_ENERGY_FULL=");
|
||||
if ((totalFull += parseUevent(file, "POWER_SUPPLY_ENERGY_FULL="))) {
|
||||
totalRemain += parseUevent(file, "POWER_SUPPLY_ENERGY_NOW=");
|
||||
} else {
|
||||
//reset file pointer
|
||||
if (fseek(file, 0, SEEK_SET) < 0) {
|
||||
fclose(file);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//Some systems have it as CHARGE instead of ENERGY.
|
||||
if ((totalFull += parseUevent(file, "POWER_SUPPLY_CHARGE_FULL="))) {
|
||||
totalRemain += parseUevent(file, "POWER_SUPPLY_CHARGE_NOW=");
|
||||
} else {
|
||||
//reset file pointer
|
||||
if (fseek(file, 0, SEEK_SET) < 0) {
|
||||
fclose(file);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
|
@ -282,6 +300,7 @@ static double getSysBatData() {
|
|||
|
||||
static void BatteryMeter_setValues(Meter * this, char *buffer, int len) {
|
||||
double percent = getProcBatData();
|
||||
|
||||
if (percent == 0) {
|
||||
percent = getSysBatData();
|
||||
if (percent == 0) {
|
||||
|
|
Loading…
Reference in New Issue