X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mm.c;h=d6f3573ce438564f0edbc4c0aafa1a9642470f3d;hp=4f76d40f306f1de0706617c04e27dd3281e7ff40;hb=33e57c3a92e4c105504832b4bb106273ffcdc2a7;hpb=35fb7de0ca7f871a6832d1041321d52af66fdf7b diff --git a/mm.c b/mm.c index 4f76d40f..d6f3573c 100644 --- a/mm.c +++ b/mm.c @@ -1,12 +1,11 @@ /* - * Copyright (C) 2007-2009 Andre Noll + * Copyright (C) 2007 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file mm.c Paraslash's mood methods. */ -#include #include #include #include @@ -18,6 +17,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 +28,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, -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 +191,14 @@ static int mm_channels_score_function(__a_unused const char *path, return mm_compare_num_score_function(afhi->channels, 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, + const void *private) +{ + return mm_compare_num_score_function(afsi->num_played, private); +} + struct mm_year_data { /** Comparator and year given at the mood line. */ struct mm_compare_num_data *cnd; @@ -196,7 +208,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; @@ -343,5 +355,6 @@ const struct mood_method mood_methods[] = { {DEFINE_COMPARE_NUM_MOOD_METHOD(bitrate)}, {DEFINE_COMPARE_NUM_MOOD_METHOD(frequency)}, {DEFINE_COMPARE_NUM_MOOD_METHOD(channels)}, + {DEFINE_COMPARE_NUM_MOOD_METHOD(num_played)}, {.parser = NULL} };