X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mood.c;h=a98f68b2e44c997843148a0400d84d3ba02710be;hp=a2525a78d627b789697253fcfe5b565ba8ef9fbe;hb=74a8dbbc3e501680865a8bc96a991297de6438d5;hpb=36ec2a43a7d9c085f16544e282a439cdbaec1e00 diff --git a/mood.c b/mood.c index a2525a78..a98f68b2 100644 --- a/mood.c +++ b/mood.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2014 Andre Noll + * Copyright (C) 2007 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -30,7 +30,7 @@ struct afs_statistics { 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; @@ -416,9 +416,7 @@ static int check_mood(struct osl_row *mood_row, void *data) } 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) @@ -434,8 +432,10 @@ out: * * \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(), @@ -446,14 +446,11 @@ void mood_check_callback(int fd, __a_unused const struct osl_object *query) .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) @@ -535,16 +532,16 @@ static int del_afs_statistics(const struct osl_row *row) /** * 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. */