X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mm.c;h=358783a193a2366fdf402506ffe3eb91a699b0d8;hp=ead20681f781427f1c1d27aec015bc64f79ff9e0;hb=ac9f8fc0b4a20b3ec1d205029ef61321174d15b6;hpb=a4eb244ecdf9aaa0f167b3c91d3e276bde99d681 diff --git a/mm.c b/mm.c index ead20681..358783a1 100644 --- a/mm.c +++ b/mm.c @@ -1,15 +1,11 @@ -/* - * Copyright (C) 2007-2009 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2007 Andre Noll , see file COPYING. */ /** \file mm.c Paraslash's mood methods. */ -#include #include #include #include +#include #include "para.h" #include "error.h" @@ -18,6 +14,7 @@ #include "afs.h" #include "mm.h" +/** The comparators for numeric mood methods (year, bitrate, ...). */ #define MOOD_COMPARATORS \ MC(LESS, <) \ MC(LESS_OR_EQUAL, <=) \ @@ -28,11 +25,15 @@ MC(GREATER, >) \ MC(GREATER_OR_EQUAL, >=) \ +/** Prefix mood comparator name with "_MC", example: MC_LESS. */ #define MC(a, b) MC_ ## a, +/** Each mood comparator is identified by an integer of this type. */ enum mood_comparator_id {MOOD_COMPARATORS NUM_MOOD_COMPARATORS}; #undef MC +/** Stringfied mood comparator, example: "<". */ #define MC(a, b) # b, -static const char const *mood_comparators[] = {MOOD_COMPARATORS}; +/** Array of mood comparators represented as C strings ("<", "<=", ...). */ +static const char *mood_comparators[] = {MOOD_COMPARATORS}; #undef MC static int parse_mood_comparator(const char *word) @@ -187,6 +188,22 @@ static int mm_channels_score_function(__a_unused const char *path, return mm_compare_num_score_function(afhi->channels, private); } +static int mm_image_id_score_function(__a_unused const char *path, + const struct afs_info *afsi, + __a_unused const struct afh_info *afhi, + const void *private) +{ + return mm_compare_num_score_function(afsi->image_id, private); +} + +static int mm_lyrics_id_score_function(__a_unused const char *path, + const struct afs_info *afsi, + __a_unused const struct afh_info *afhi, + const void *private) +{ + return mm_compare_num_score_function(afsi->lyrics_id, private); +} + static int mm_num_played_score_function(__a_unused const char *path, const struct afs_info *afsi, __a_unused const struct afh_info *afhi, @@ -204,7 +221,7 @@ struct mm_year_data { static int mm_year_parser(int argc, char **argv, void **private) { - int ret = -E_MOOD_SYNTAX; + int ret; struct mm_year_data *mmyd = para_malloc(sizeof(*mmyd)); time_t current_time; struct tm *gmt; @@ -352,5 +369,7 @@ const struct mood_method mood_methods[] = { {DEFINE_COMPARE_NUM_MOOD_METHOD(frequency)}, {DEFINE_COMPARE_NUM_MOOD_METHOD(channels)}, {DEFINE_COMPARE_NUM_MOOD_METHOD(num_played)}, + {DEFINE_COMPARE_NUM_MOOD_METHOD(image_id)}, + {DEFINE_COMPARE_NUM_MOOD_METHOD(lyrics_id)}, {.parser = NULL} };