#ifndef MPDCLIENT_H #define MPDCLIENT_H #include "libmpdclient.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 **************************************************/ /* free a playlist */ gint mpdclient_playlist_free(mpdclient_playlist_t *playlist); /* update the complete playlist */ gint mpdclient_playlist_update(mpdclient_t *c); /* get playlist changes */ gint mpdclient_playlist_update_changes(mpdclient_t *c); GList *playlist_lookup(mpdclient_t *c, gint id); mpd_Song *playlist_lookup_song(mpdclient_t *c, gint id); mpd_Song *playlist_get_song(mpdclient_t *c, gint index); gint playlist_get_index(mpdclient_t *c, mpd_Song *song); gint playlist_get_index_from_id(mpdclient_t *c, gint id); gint playlist_get_index_from_file(mpdclient_t *c, gchar *filename); /*** 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, 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, 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