/*
- * Copyright (C) 2007-2014 Andre Noll <maan@tuebingen.mpg.de>
+ * Copyright (C) 2007 Andre Noll <maan@tuebingen.mpg.de>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
int64_t num_played_sum;
/** Sum of last played times over all admissible files. */
int64_t last_played_sum;
- /** Quadratic deviation of num played time. */
+ /** Quadratic deviation of num played count. */
int64_t num_played_qd;
/** Quadratic deviation of last played time. */
int64_t last_played_qd;
}
if (!*mood_name) /* ignore dummy row */
goto out;
- ret = para_printf(pb, "checking mood %s...\n", mood_name);
- if (ret < 0)
- goto out;
+ para_printf(pb, "checking mood %s...\n", mood_name);
ret = for_each_line(FELF_READ_ONLY, mood_def.data, mood_def.size,
parse_mood_line, &mlpd);
if (ret < 0)
*
* \param fd The afs socket.
* \param query Unused.
+ *
+ * \return Currently this function always returns zero.
*/
-void mood_check_callback(int fd, __a_unused const struct osl_object *query)
+int mood_check_callback(int fd, __a_unused const struct osl_object *query)
{
struct para_buffer pb = {
.max_size = shm_get_shmmax(),
.max_size_handler = afs_max_size_handler
};
- int ret = para_printf(&pb, "checking moods...\n");
- if (ret < 0)
- return;
+ para_printf(&pb, "checking moods...\n");
osl_rbtree_loop(moods_table, BLOBCOL_ID, &pb,
check_mood);
- if (pb.offset)
- pass_buffer_as_shm(fd, SBD_OUTPUT, pb.buf, pb.offset);
- free(pb.buf);
+ flush_and_free_pb(&pb);
+ return 0;
}
static int64_t normalized_value(int64_t x, int64_t n, int64_t sum, int64_t qd)
/**
* Structure used during mood_open().
*
- * At mood open time, we look at each file in the audio file table in order to
- * determine whether it is admissible. If a file happens to be admissible, its
- * mood score is computed by calling each relevant mood_score_function. Next,
- * we update the afs_statistics and add a struct admissible_file_info to a
- * temporary array.
+ * At mood open time we determine the set of admissible files for the given
+ * mood. The mood score of each admissible file is computed by adding up all
+ * mood item scores. Next, we update the afs statistics and append a struct
+ * admissible_file_info to a temporary array.
*
- * If all files have been processed that way, the final score of each
+ * When all files have been processed in this way, the final score of each
* admissible file is computed by adding the dynamic score (which depends on
- * the afs_statistics) to the mood score. Finally, all audio files in the
- * array are added to the score table and the admissible array is freed.
+ * the afs_statistics and the current time) to the mood score. Finally, all
+ * audio files in the temporary array are added to the score table and the
+ * array is freed.
*
* \sa mood_method, admissible_array.
*/