Code

wreadln: moved code to insert_byte()
[ncmpc.git] / src / filelist.h
index 3b33eb44960fd75eb29fb6caf4d6222d0daf91c1..d7d4dff888ba107bbbccb76506ab86d355b216db 100644 (file)
@@ -33,20 +33,50 @@ typedef struct filelist {
        /* 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