From: Martin Mares Date: Wed, 18 Aug 2010 23:42:35 +0000 (+0200) Subject: osd-batt: Warn on important status changes, too X-Git-Tag: v1.1~6 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=ed178bba7ac525fe06a15771b146b7fee2e9b3fd;p=osdd.git osd-batt: Warn on important status changes, too This way, the user knows whenever he accidentally loses his AC power or when the battery is full. --- diff --git a/osd-batt.c b/osd-batt.c index 56bf5b9..ace3a87 100644 --- a/osd-batt.c +++ b/osd-batt.c @@ -22,6 +22,9 @@ static int charge_time, discharge_time; static int ac_online; static unsigned int present_mask, charge_mask, discharge_mask; +static unsigned int last_charge_mask, last_discharge_mask; +static int last_ac_online = -1; + static char *parse_line(char *line) { char *t = strchr(line, '\n'); @@ -204,8 +207,16 @@ static void show(void) static void show_if_warn(void) { - if (discharge_mask && discharge_time < warn_threshold) + if (discharge_mask && discharge_time < warn_threshold || + last_ac_online >= 0 && ( + charge_mask != last_charge_mask || + discharge_mask != last_discharge_mask || + ac_online != last_ac_online)) show(); + + last_charge_mask = charge_mask; + last_discharge_mask = discharge_mask; + last_ac_online = ac_online; } static void NONRET