#ifndef MPDCLIENT_H #define MPDCLIENT_H #include "libmpdclient.h" #include "playlist.h" #define MPD_VERSION_EQ(c,x,y,z) (c->connection->version[0] == x && \ c->connection->version[1] == y && \ c->connection->version[2] == z ) #define MPD_VERSION_LT(c,x,y,z) ( c->connection->version[0]connection->version[0]==x && c->connection->version[1]connection->version[0]==x && c->connection->version[1]==y && \ c->connection->version[2]> 8) typedef void (*mpdc_error_cb_t) (mpdclient_t *c, gint error, const gchar *msg); void mpdclient_install_error_callback(mpdclient_t *c, mpdc_error_cb_t cb); void mpdclient_remove_error_callback(mpdclient_t *c, mpdc_error_cb_t cb); /*** playlist functions **************************************************/ /* update the complete playlist */ gint mpdclient_playlist_update(struct mpdclient *c); /* get playlist changes */ gint mpdclient_playlist_update_changes(struct mpdclient *c); /*** mpdclient playlist callbacks *****************************************/ #define PLAYLIST_EVENT_UPDATED 0x01 #define PLAYLIST_EVENT_CLEAR 0x02 #define PLAYLIST_EVENT_DELETE 0x03 #define PLAYLIST_EVENT_ADD 0x04 #define PLAYLIST_EVENT_MOVE 0x05 typedef void (*mpdc_list_cb_t) (mpdclient_t *c, int event, gpointer data); /* install a playlist callback function */ void mpdclient_install_playlist_callback(mpdclient_t *c, mpdc_list_cb_t cb); /* remove a playlist callback function */ void mpdclient_remove_playlist_callback(mpdclient_t *c, mpdc_list_cb_t cb); /* issue a playlist callback */ void mpdclient_playlist_callback(mpdclient_t *c, int event, gpointer data); /*** filelist functions ***************************************************/ mpdclient_filelist_t *mpdclient_filelist_free(mpdclient_filelist_t *filelist); mpdclient_filelist_t *mpdclient_filelist_get(mpdclient_t *c, const gchar *path); mpdclient_filelist_t *mpdclient_filelist_search(mpdclient_t *c, int exact_match, int table, gchar *path); mpdclient_filelist_t *mpdclient_filelist_search_utf8(mpdclient_t *c, int exact_match, int table, gchar *path); mpdclient_filelist_t *mpdclient_filelist_update(mpdclient_t *c, mpdclient_filelist_t *flist); #define HIGHLIGHT (0x01) void mpdclient_filelist_set_flags(mpdclient_filelist_t *flist, struct mpd_song *song, guint flags); void mpdclient_filelist_clear_flags(mpdclient_filelist_t *flist); void mpdclient_filelist_clear_flags(mpdclient_filelist_t *flist); filelist_entry_t *mpdclient_filelist_find_song(mpdclient_filelist_t *flist, struct mpd_song *song); /* add all songs in filelist to the playlist */ int mpdclient_filelist_add_all(mpdclient_t *c, mpdclient_filelist_t *fl); /*** mpdclient browse callbacks ********************************************/ #define BROWSE_DB_UPDATED 0x01 #define BROWSE_PLAYLIST_SAVED 0x02 #define BROWSE_PLAYLIST_DELETED 0x03 /* install a playlist callback function */ void mpdclient_install_browse_callback(mpdclient_t *c, mpdc_list_cb_t cb); /* remove a playlist callback function */ void mpdclient_remove_browse_callback(mpdclient_t *c, mpdc_list_cb_t cb); /* issue a playlist callback */ void mpdclient_browse_callback(mpdclient_t *c, int event, gpointer data); /* sort by list-format */ gint compare_filelistentry_format(gconstpointer filelist_entry1, gconstpointer filelist_entry2); #endif