#include "afh.h"
#include "afs.h"
#include "list.h"
-#include "ipc.h"
#include "mm.h"
-#include "sideband.h"
#include "mood.h"
-#include "sched.h"
/**
* Contains statistical data of the currently admissible audio files.
};
/*
- * Created from the mood definition by change_current_mood().
+ * Created from the mood definition by \ref change_current_mood().
*
* When a mood is opened, each line of its definition is investigated, and a
* corresponding mood item is produced. Each mood line starts with accept,
}
/* returns 1 if row admissible, 0 if not, negative on errors */
-static int compute_mood_score(const struct osl_row *aft_row, struct mood *m,
- long *result)
+static int row_is_admissible(const struct osl_row *aft_row, struct mood *m,
+ long *scorep)
{
struct mood_item *item;
int ret;
if (!m)
return -E_NO_MOOD;
ret = get_afsi_of_row(aft_row, &afsi);
- if (ret< 0)
+ if (ret < 0)
return ret;
ret = get_afhi_of_row(aft_row, &afhi);
- if (ret< 0)
+ if (ret < 0)
return ret;
ret = get_audio_file_path_of_row(aft_row, &path);
- if (ret< 0)
+ if (ret < 0)
return ret;
/* reject audio file if it matches any entry in the deny list */
list_for_each_entry(item, &m->deny_list, mood_item_node) {
}
if (score_arg_sum)
score /= score_arg_sum;
- *result = score;
+ *scorep = score;
return 1;
}
* <score> is either an integer or "random" which assigns a random score to
* all matching files
*/
-
static int parse_mood_line(char *mood_line, void *data)
{
struct mood_line_parser_data *mlpd = data;
ret = 1;
out:
free_argv(argv);
- if (ret >= 0)
- return ret;
- if (mi) {
+ if (mi && (ret < 0 || !mlpd->m)) { /* mi was not added to any list */
free(mi->parser_data);
free(mi);
}
int ret;
long score = 0;
- ret = compute_mood_score(aft_row, aa->m, &score);
+ ret = row_is_admissible(aft_row, aa->m, &score);
if (ret <= 0)
return ret;
if (statistics.num >= aa->size) {
return old_qd + delta * (sigma - 2 * old_sum / n - delta / n);
}
-static int update_afs_statistics(struct afs_info *old_afsi, struct afs_info *new_afsi)
+static int update_afs_statistics(struct afs_info *old_afsi,
+ struct afs_info *new_afsi)
{
unsigned n;
int ret = get_num_admissible_files(&n);
*
* \return Positive on success, negative on errors.
*
- * \sa score_delete().
+ * \sa \ref score_delete().
*/
static int mood_delete_audio_file(const struct osl_row *aft_row)
{
if (ret < 0)
return ret;
was_admissible = ret;
- ret = compute_mood_score(aft_row, current_mood, &score);
+ ret = row_is_admissible(aft_row, current_mood, &score);
if (ret < 0)
return ret;
is_admissible = (ret > 0);
* \return Positive on success, negative on errors. Loading the dummy mood
* always succeeds.
*
- * \sa struct admissible_file_info, struct admissible_array, struct
- * afs_info::last_played, mood_close().
+ * \sa struct \ref afs_info::last_played.
*/
int change_current_mood(const char *mood_name)
{
free(aa.array);
return ret;
}
+
/*
* Close and re-open the current mood.
*