summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--music.c16
-rw-r--r--music.h4
2 files changed, 17 insertions, 3 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);
}
diff --git a/music.h b/music.h
index d62da7a..d2a014b 100644
--- a/music.h
+++ b/music.h
@@ -27,7 +27,9 @@ gboolean music_scan_root();
struct directory *music_find_dir(const gchar *path);
struct file *music_find_file(const gchar *path);
void music_free();
-GSList *music_find_artist(const gchar *_name);
+GSList *music_find_artist(const gchar *name);
+GSList *music_find_title(const gchar *name);
+GSList *music_find_album(const gchar *name);
gchar *music_get_full_path(const gchar *path);
#endif