X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mood.c;h=940d72a17f9cbeb1d8dec42ea26cd9a821f9cbb3;hp=83c3a574a53c5658afe43a296ae2de9f2c368873;hb=698178774b857a8959fe70e360ae6ff755eacf8e;hpb=c2396d21b32adec8a94bdae47d66bdc492779775 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);