From c4a33d828f6e7111b9fa4386b9916a8f4a7fb820 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 5 Apr 2016 00:44:42 +0200 Subject: [PATCH] mood.c: Improve log output for current mood. When a new mood is loaded, we print some information about the score table, like the number of admissible files, the average last_played and num_played values, and the empiric standard deviation of these quantities. However, since last_played is measured in seconds after the epoch, the reported numbers are rather large. This commit changes log_statistics() of mood.c to report the mean value and the standard deviation in number of days. Since loading a new mood happens not very frequently, let's increase the severity of these log messages from INFO to NOTICE. If the new mood has no admissible files we now log the message as a warning rather than with severity NOTICE. --- mood.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/mood.c b/mood.c index 83c3a574..940d72a1 100644 --- a/mood.c +++ b/mood.c @@ -19,6 +19,7 @@ #include "mm.h" #include "sideband.h" #include "mood.h" +#include "sched.h" /** * Contains statistical data of the currently admissible audio files. @@ -753,16 +754,27 @@ static int mood_update_audio_file(const struct osl_row *aft_row, static void log_statistics(void) { unsigned n = statistics.num; + int mean_days, sigma_days; + /* + * We can not use the "now" pointer from sched.c here because we are + * called before schedule(), which initializes "now". + */ + struct timeval rnow; + assert(current_mood); + PARA_NOTICE_LOG("loaded mood %s\n", current_mood->name? + current_mood->name : "(dummy)"); if (!n) { - PARA_NOTICE_LOG("no admissible files\n"); + PARA_WARNING_LOG("no admissible files\n"); return; } - PARA_INFO_LOG("last_played mean: %lli, last_played sigma: %llu\n", - (long long int)(statistics.last_played_sum / n), - (long long unsigned)int_sqrt(statistics.last_played_qd / n)); - PARA_INFO_LOG("num_played mean: %lli, num_played sigma: %llu\n", - (long long int)statistics.num_played_sum / n, + PARA_NOTICE_LOG("%u admissible files\n", statistics.num); + clock_get_realtime(&rnow); + mean_days = (rnow.tv_sec - statistics.last_played_sum / n) / 3600 / 24; + sigma_days = int_sqrt(statistics.last_played_qd / n) / 3600 / 24; + PARA_NOTICE_LOG("last_played mean/sigma: %d/%d days\n", mean_days, sigma_days); + PARA_NOTICE_LOG("num_played mean/sigma: %llu/%llu\n", + (long long unsigned)statistics.num_played_sum / n, (long long unsigned)int_sqrt(statistics.num_played_qd / n)); } @@ -829,15 +841,13 @@ int change_current_mood(const char *mood_name) ret = audio_file_loop(&aa, add_if_admissible); if (ret < 0) return ret; - log_statistics(); - PARA_INFO_LOG("%d admissible files\n", statistics.num); for (i = 0; i < statistics.num; i++) { struct admissible_file_info *a = aa.array + i; ret = add_to_score_table(a->aft_row, a->score); if (ret < 0) goto out; } - PARA_NOTICE_LOG("loaded mood %s\n", mood_name? mood_name : "(dummy)"); + log_statistics(); ret = statistics.num; out: free(aa.array); -- 2.39.5