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.
This commit is contained in:
Jon Lund Steffensen
2014-12-27 21:26:37 -05:00
parent 6ecbfe324f
commit 431780b851
+20 -2
View File
@@ -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);