From ed178bba7ac525fe06a15771b146b7fee2e9b3fd Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Thu, 19 Aug 2010 01:42:35 +0200 Subject: [PATCH 1/1] 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. --- osd-batt.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 -- 2.39.2