summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2010-11-20 19:13:12 +0000
committerHisham Muhammad <hisham@gobolinux.org>2010-11-20 19:13:12 +0000
commit3fcbcbfda65c04bc0ba801dedfdc793a98663e58 (patch)
tree5702e6c0de74d027096023c22dd44b5869601510
parent5fd1436a9240465a320194be5a69b93a62b542f7 (diff)
Improve battery meter support (thanks to Richard W.) Closes #3063541.
-rw-r--r--BatteryMeter.c25
-rw-r--r--ChangeLog2
2 files changed, 24 insertions, 3 deletions
diff --git a/BatteryMeter.c b/BatteryMeter.c
index 466a525a..36b90e7d 100644
--- a/BatteryMeter.c
+++ b/BatteryMeter.c
@@ -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=");
- totalRemain += parseUevent(file, "POWER_SUPPLY_ENERGY_NOW=");
+ 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) {
diff --git a/ChangeLog b/ChangeLog
index 74fa83b1..c5a86ca2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,6 +20,8 @@ What's new in version 0.9
(thanks to Pavol Rusnak)
* Add Bash/emacs style navigation keys
(thanks to Daniel Schuler)
+* Improve battery meter support
+ (thanks to Richard W.)
* Fix IO-wait color in "Black on White" scheme
What's new in version 0.8.3

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