diff --git a/src/filelist.h b/src/filelist.h
index 3b33eb44960fd75eb29fb6caf4d6222d0daf91c1..d7d4dff888ba107bbbccb76506ab86d355b216db 100644 (file)
--- a/src/filelist.h
+++ b/src/filelist.h
/* path */
gchar *path;
- /* list length */
- guint length;
-
- /* true if the list is updated */
- gboolean updated;
-
/* the list */
- GList *list;
+ GPtrArray *entries;
} mpdclient_filelist_t;
+struct filelist *
+filelist_new(const char *path);
+
void
filelist_free(struct filelist *filelist);
+static inline guint
+filelist_length(const struct filelist *filelist)
+{
+ return filelist->entries->len;
+}
+
+static inline gboolean
+filelist_is_empty(const struct filelist *filelist)
+{
+ return filelist_length(filelist) == 0;
+}
+
+static inline struct filelist_entry *
+filelist_get(const struct filelist *filelist, guint i)
+{
+ return g_ptr_array_index(filelist->entries, i);
+}
+
+struct filelist_entry *
+filelist_append(struct filelist *filelist, struct mpd_InfoEntity *entity);
+
+struct filelist_entry *
+filelist_prepend(struct filelist *filelist, struct mpd_InfoEntity *entity);
+
+void
+filelist_move(struct filelist *filelist, struct filelist *from);
+
+void
+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