/*
* A Simple Battery Status Display via OSD
*
- * (c) 2007--2012 Martin Mares <mj@ucw.cz>
+ * (c) 2007--2015 Martin Mares <mj@ucw.cz>
*/
#undef DEBUG
return atoi(buf);
}
+static int sys_read_int_variant(char *attr1, char *attr2, int default_value)
+{
+ char buf[BUFSIZE];
+ if (sys_read(buf, attr1) && buf[0] ||
+ sys_read(buf, attr2) && buf[0])
+ return atoi(buf);
+ else
+ return default_value;
+}
+
static void parse_ac(void)
{
ac_online = sys_read_int("online", 0);
char status[BUFSIZE];
int charging = sys_read(status, "status") && !strcmp(status, "Charging");
- int charge_full = sys_read_int("charge_full", 0);
- int charge_now = sys_read_int("charge_now", 0);
- int current_now = sys_read_int("current_now", 0);
+ int charge_full = sys_read_int_variant("energy_full", "charge_full", 0);
+ int charge_now = sys_read_int_variant("energy_now", "charge_now", 0);
+ int current_now = sys_read_int_variant("power_now", "current_now", 0);
present_mask |= 1 << batt_id;
total_now += charge_now;