doc: Remove superfluous comment already described in footnotes.
[mpd-mk.git] / src / locate.h
blobd0bdfa1363622493eec2fb6d10a1920f57dbb91f
1 /*
2 * Copyright (C) 2003-2009 The Music Player Daemon Project
3 * http://www.musicpd.org
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #ifndef MPD_LOCATE_H
21 #define MPD_LOCATE_H
23 #include <stdint.h>
24 #include <stdbool.h>
26 #define LOCATE_TAG_FILE_TYPE TAG_NUM_OF_ITEM_TYPES+10
27 #define LOCATE_TAG_ANY_TYPE TAG_NUM_OF_ITEM_TYPES+20
29 struct song;
31 /* struct used for search, find, list queries */
32 struct locate_item {
33 int8_t tag;
34 /* what we are looking for */
35 char *needle;
38 /**
39 * An array of struct locate_item objects.
41 struct locate_item_list {
42 /** number of items */
43 unsigned length;
45 /** this is a variable length array */
46 struct locate_item items[1];
49 int
50 locate_parse_type(const char *str);
52 /* returns NULL if not a known type */
53 struct locate_item *
54 locate_item_new(const char *type_string, const char *needle);
56 /**
57 * Allocates a new struct locate_item_list, and initializes all
58 * members with zero bytes.
60 struct locate_item_list *
61 locate_item_list_new(unsigned length);
63 /* return number of items or -1 on error */
64 struct locate_item_list *
65 locate_item_list_parse(char *argv[], int argc);
67 /**
68 * Duplicate the struct locate_item_list object and convert all
69 * needles with g_utf8_casefold().
71 struct locate_item_list *
72 locate_item_list_casefold(const struct locate_item_list *list);
74 void
75 locate_item_list_free(struct locate_item_list *list);
77 void
78 locate_item_free(struct locate_item *item);
80 bool
81 locate_song_search(const struct song *song,
82 const struct locate_item_list *criteria);
84 bool
85 locate_song_match(const struct song *song,
86 const struct locate_item_list *criteria);
88 #endif