]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
mood.c: Improve log output for current mood.
authorAndre Noll <maan@tuebingen.mpg.de>
Mon, 4 Apr 2016 22:44:42 +0000 (00:44 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 31 Jul 2016 14:54:52 +0000 (16:54 +0200)
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

diff --git a/mood.c b/mood.c
index 83c3a574a53c5658afe43a296ae2de9f2c368873..940d72a17f9cbeb1d8dec42ea26cd9a821f9cbb3 100644 (file)
--- a/mood.c
+++ b/mood.c
@@ -19,6 +19,7 @@
 #include "mm.h"
 #include "sideband.h"
 #include "mood.h"
 #include "mm.h"
 #include "sideband.h"
 #include "mood.h"
+#include "sched.h"
 
 /**
  * Contains statistical data of the currently admissible audio files.
 
 /**
  * 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;
 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) {
        if (!n) {
-               PARA_NOTICE_LOG("no admissible files\n");
+               PARA_WARNING_LOG("no admissible files\n");
                return;
        }
                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));
 }
 
                (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;
        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;
        }
        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);
        ret = statistics.num;
 out:
        free(aa.array);