summaryrefslogtreecommitdiff
path: root/music.c
diff options
context:
space:
mode:
Diffstat (limited to 'music.c')
-rw-r--r--music.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/music.c b/music.c
index 0f6656a..f788266 100644
--- a/music.c
+++ b/music.c
@@ -191,15 +191,27 @@ static GSList *music_find_rec(struct directory *directory, const gchar *name, en
return list;
}
-GSList *music_find_artist(const gchar *_name) {
+static GSList *music_find(const gchar *_name, enum tag_type type) {
gchar *name = g_utf8_casefold(_name, strlen(_name));
- GSList *list = music_find_rec(music_root, name, TAG_TYPE_ARTIST);
+ GSList *list = music_find_rec(music_root, name, type);
g_free(name);
return list;
}
+GSList *music_find_artist(const gchar *name) {
+ return music_find(name, TAG_TYPE_ARTIST);
+}
+
+GSList *music_find_title(const gchar *name) {
+ return music_find(name, TAG_TYPE_TITLE);
+}
+
+GSList *music_find_album(const gchar *name) {
+ return music_find(name, TAG_TYPE_ALBUM);
+}
+
gchar *music_get_full_path(const gchar *path) {
return g_build_filename(music_root->path, path, NULL);
}