-/*
- * Copyright (C) 2007-2014 Andre Noll <maan@tuebingen.mpg.de>
- *
- * Licensed under the GPL v2. For licencing details see COPYING.
- */
+/* Copyright (C) 2007 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
/** \file mm.c Paraslash's mood methods. */
#include <regex.h>
#include <fnmatch.h>
#include <osl.h>
+#include <lopsub.h>
#include "para.h"
#include "error.h"
#include "afs.h"
#include "mm.h"
+/** The comparators for numeric mood methods (year, bitrate, ...). */
#define MOOD_COMPARATORS \
MC(LESS, <) \
MC(LESS_OR_EQUAL, <=) \
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,
+/** Array of mood comparators represented as C strings ("<", "<=", ...). */
static const char *mood_comparators[] = {MOOD_COMPARATORS};
#undef MC
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,
{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}
};