From 431780b851fe7eac9c00ffb29ed5f1eaf02ec565 Mon Sep 17 00:00:00 2001 From: Jon Lund Steffensen Date: Sat, 27 Dec 2014 21:01:23 -0500 Subject: redshift: Be less verbose when color values did not change This keeps a copy of the previous color_setting_t in the loop so that we can avoid printing the color temperature and brightness if they did not change. --- src/redshift.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/redshift.c b/src/redshift.c index 1c8723c..00bf9f9 100644 --- a/src/redshift.c +++ b/src/redshift.c @@ -1370,6 +1370,12 @@ main(int argc, char *argv[]) printf("Status: %s\n", "Enabled"); } + /* Save previous colors so we can avoid + printing status updates if the values + did not change. */ + color_setting_t prev_interp = + { -1, { NAN, NAN, NAN }, NAN }; + /* Continuously adjust color temperature */ int done = 0; int disabled = 0; @@ -1471,8 +1477,16 @@ main(int argc, char *argv[]) if (done && !short_trans_delta) break; if (verbose) { - printf(_("Color temperature: %uK\n"), interp.temperature); - printf(_("Brightness: %.2f\n"), interp.brightness); + if (interp.temperature != + prev_interp.temperature) { + printf(_("Color temperature: %uK\n"), + interp.temperature); + } + if (interp.brightness != + prev_interp.brightness) { + printf(_("Brightness: %.2f\n"), + interp.brightness); + } } /* Adjust temperature */ @@ -1486,6 +1500,10 @@ main(int argc, char *argv[]) } } + /* Save temperature as previous */ + memcpy(&prev_interp, &interp, + sizeof(color_setting_t)); + /* Sleep for 5 seconds or 0.1 second. */ #ifndef _WIN32 if (short_trans_delta) usleep(SLEEP_DURATION_SHORT*1000); -- cgit v1.2.3-70-g09d2