diff options
-rw-r--r-- | src/filelist.c | 19 | ||||
-rw-r--r-- | src/filelist.h | 3 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/filelist.c b/src/filelist.c index 46137cd3b..415eec402 100644 --- a/src/filelist.c +++ b/src/filelist.c @@ -139,3 +139,22 @@ filelist_find_song(struct filelist *fl, const struct mpd_song *song) return NULL; } + +int +filelist_find_directory(struct filelist *filelist, const char *name) +{ + guint i; + + assert(name != NULL); + + for (i = 0; i < filelist_length(filelist); ++i) { + struct filelist_entry *entry = filelist_get(filelist, i); + mpd_InfoEntity *entity = entry->entity; + + if (entity && entity->type == MPD_INFO_ENTITY_TYPE_DIRECTORY && + strcmp(entity->info.directory->path, name) == 0) + return i; + } + + return -1; +} diff --git a/src/filelist.h b/src/filelist.h index 85e551fc3..d7d4dff88 100644 --- a/src/filelist.h +++ b/src/filelist.h @@ -76,4 +76,7 @@ filelist_sort(struct filelist *filelist, GCompareFunc compare_func); struct filelist_entry * filelist_find_song(struct filelist *flist, const struct mpd_song *song); +int +filelist_find_directory(struct filelist *filelist, const char *name); + #endif |