| libmpd-database.h | | libmpd-database.h | |
| | | | |
| skipping to change at line 303 | | skipping to change at line 303 | |
| void mpd_database_playlist_clear(MpdObj *mi,const char *path); | | void mpd_database_playlist_clear(MpdObj *mi,const char *path); | |
| | | | |
| /** | | /** | |
| * @param mi a #MpdObj | | * @param mi a #MpdObj | |
| * @param old a string, old playlist name | | * @param old a string, old playlist name | |
| * @param new a string, new playlist name | | * @param new a string, new playlist name | |
| * | | * | |
| * Renames a stored playlist | | * Renames a stored playlist | |
| * Needs mpd 0.13.0 | | * Needs mpd 0.13.0 | |
| */ | | */ | |
|
| void mpd_database_playlist_rename(MpdObj *mi, const char *old, const char *
c_new); | | void mpd_database_playlist_rename(MpdObj *mi, const char *old_name, const c
har *new_name); | |
| | | | |
| /** | | /** | |
| * @param mi a #MpdObj | | * @param mi a #MpdObj | |
| * @param playlist a string contains the path of the playlist | | * @param playlist a string contains the path of the playlist | |
| * @param old_pos integer representing old position | | * @param old_pos integer representing old position | |
| * @param new_pos integer representing the position to move old_pos to. | | * @param new_pos integer representing the position to move old_pos to. | |
| * | | * | |
| * Moves songs in a stored playlists | | * Moves songs in a stored playlists | |
| * Needs mpd 0.13.0 | | * Needs mpd 0.13.0 | |
| */ | | */ | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| libmpd-internal.h | | libmpd-internal.h | |
| | | | |
| skipping to change at line 21 | | skipping to change at line 21 | |
| union { | | union { | |
| struct { | | struct { | |
| int tag_type; | | int tag_type; | |
| char *tag; | | char *tag; | |
| }; | | }; | |
| char *directory; | | char *directory; | |
| char *playlist; /*is a path*/ | | char *playlist; /*is a path*/ | |
| mpd_Song *song; | | mpd_Song *song; | |
| mpd_OutputEntity *output_dev; /* from devices */ | | mpd_OutputEntity *output_dev; /* from devices */ | |
| }; | | }; | |
|
| | | void *userdata; | |
| | | void (*freefunc)(void *userdata); | |
| | | | |
| struct _MpdData_real *next; | | struct _MpdData_real *next; | |
| /* Previous MpdData in the list */ | | /* Previous MpdData in the list */ | |
| struct _MpdData_real *prev; | | struct _MpdData_real *prev; | |
| struct _MpdData_real *first; | | struct _MpdData_real *first; | |
| }MpdData_real; | | }MpdData_real; | |
| | | | |
| /* queue struct */ | | /* queue struct */ | |
| typedef struct _MpdQueue MpdQueue; | | typedef struct _MpdQueue MpdQueue; | |
| typedef struct _MpdServerState { | | typedef struct _MpdServerState { | |
| /* information needed to detect changes on mpd's side */ | | /* information needed to detect changes on mpd's side */ | |
| long long playlistid; | | long long playlistid; | |
|
| long long queueid; | | | |
| long long storedplaylistid; | | long long storedplaylistid; | |
| int songid; | | int songid; | |
| int songpos; | | int songpos; | |
| int state; | | int state; | |
| unsigned long dbUpdateTime; | | unsigned long dbUpdateTime; | |
| int updatingDb; | | int updatingDb; | |
| int random; | | int random; | |
| int repeat; | | int repeat; | |
| int volume; | | int volume; | |
| int xfade; | | int xfade; | |
| | | | |
| skipping to change at line 113 | | skipping to change at line 115 | |
| /* TODO: this is a temporary implementation, I want something nice w
ith commands that are and aren't allowed to use. | | /* TODO: this is a temporary implementation, I want something nice w
ith commands that are and aren't allowed to use. | |
| * so use commands and notcommands functions | | * so use commands and notcommands functions | |
| *TODO: Make a callback when a commando isn't allowed, so the client
application can actually offer the user to enter password | | *TODO: Make a callback when a commando isn't allowed, so the client
application can actually offer the user to enter password | |
| */ | | */ | |
| MpdCommand * commands; | | MpdCommand * commands; | |
| /** | | /** | |
| * tag type for a search | | * tag type for a search | |
| */ | | */ | |
| int search_type; | | int search_type; | |
| int search_field; | | int search_field; | |
|
| | | | |
| | | /** | |
| | | * For tracking changed outputs. | |
| | | * A hack for retarted mpd | |
| | | */ | |
| | | int num_outputs; | |
| | | int *output_states; | |
| | | | |
| }_MpdObj; | | }_MpdObj; | |
| | | | |
| typedef enum MpdQueueType { | | typedef enum MpdQueueType { | |
| MPD_QUEUE_ADD, | | MPD_QUEUE_ADD, | |
| MPD_QUEUE_LOAD, | | MPD_QUEUE_LOAD, | |
| MPD_QUEUE_DELETE_ID, | | MPD_QUEUE_DELETE_ID, | |
| MPD_QUEUE_DELETE_POS, | | MPD_QUEUE_DELETE_POS, | |
|
| MPD_QUEUE_COMMAND, /* abuse!!! */ | | MPD_QUEUE_COMMAND /* abuse!!! */ | |
| MPD_QUEUE_MPD_QUEUE_ADD, | | | |
| MPD_QUEUE_MPD_QUEUE_REMOVE | | | |
| } MpdQueueType; | | } MpdQueueType; | |
| | | | |
| typedef struct _MpdQueue { | | typedef struct _MpdQueue { | |
| struct _MpdQueue *next; | | struct _MpdQueue *next; | |
| struct _MpdQueue *prev; | | struct _MpdQueue *prev; | |
| struct _MpdQueue *first; | | struct _MpdQueue *first; | |
| | | | |
| /* what item to queue, (add/load/remove)*/ | | /* what item to queue, (add/load/remove)*/ | |
| int type; | | int type; | |
| /* for adding files/load playlist/adding streams */ | | /* for adding files/load playlist/adding streams */ | |
| char *path; | | char *path; | |
| /* for removing */ | | /* for removing */ | |
| int id; | | int id; | |
| }_MpdQueue; | | }_MpdQueue; | |
| | | | |
| /* Internal Queue struct functions */ | | /* Internal Queue struct functions */ | |
| MpdQueue * mpd_new_queue_struct (); | | MpdQueue * mpd_new_queue_struct (); | |
| void mpd_queue_get_next (MpdObj *mi); | | void mpd_queue_get_next (MpdObj *mi); | |
| | | | |
| /* Internal Data struct functions */ | | /* Internal Data struct functions */ | |
|
| inline MpdData * mpd_new_data_struct (void); | | MpdData * mpd_new_data_struct (void); | |
| inline MpdData * mpd_new_data_struct_append (MpdData * d | | MpdData * mpd_new_data_struct_append (MpdData * data); | |
| ata); | | MpdData * mpd_data_concatenate (MpdData * const fir | |
| inline MpdData * mpd_data_concatenate (MpdData * c | | st, MpdData * const second); | |
| onst first, MpdData * const second); | | MpdData * mpd_data_get_next_real (MpdData * const dat | |
| inline MpdData * mpd_data_get_next_real (MpdData * c | | a, int kill_list); | |
| onst data, int kill_list); | | | |
| /* more internal stuff*/ | | /* more internal stuff*/ | |
| | | | |
| /** | | /** | |
| * @param mi a #MpdObj | | * @param mi a #MpdObj | |
| * | | * | |
| * Checks if mpd_stats is availible, and updates when needed. | | * Checks if mpd_stats is availible, and updates when needed. | |
| * | | * | |
| * @returns a #MpdError | | * @returns a #MpdError | |
| */ | | */ | |
| int mpd_stats_check(MpdObj *mi); | | int mpd_stats_check(MpdObj *mi); | |
| | | | |
| skipping to change at line 177 | | skipping to change at line 185 | |
| int mpd_server_get_allowed_commands(MpdObj *mi); | | int mpd_server_get_allowed_commands(MpdObj *mi); | |
| typedef enum _MpdSearchType { | | typedef enum _MpdSearchType { | |
| MPD_SEARCH_TYPE_NONE, | | MPD_SEARCH_TYPE_NONE, | |
| MPD_SEARCH_TYPE_FIND, | | MPD_SEARCH_TYPE_FIND, | |
| MPD_SEARCH_TYPE_SEARCH, | | MPD_SEARCH_TYPE_SEARCH, | |
| MPD_SEARCH_TYPE_LIST, | | MPD_SEARCH_TYPE_LIST, | |
| MPD_SEARCH_TYPE_PLAYLIST_FIND, | | MPD_SEARCH_TYPE_PLAYLIST_FIND, | |
| MPD_SEARCH_TYPE_PLAYLIST_SEARCH, | | MPD_SEARCH_TYPE_PLAYLIST_SEARCH, | |
| MPD_SEARCH_TYPE_STATS | | MPD_SEARCH_TYPE_STATS | |
| }MpdSearchType; | | }MpdSearchType; | |
|
| | | int mpd_server_update_outputs(MpdObj *mi); | |
| #endif | | #endif | |
| | | | |
End of changes. 6 change blocks. |
| 11 lines changed or deleted | | 19 lines changed or added | |
|
| libmpd-playlist.h | | libmpd-playlist.h | |
| | | | |
| skipping to change at line 294 | | skipping to change at line 294 | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| /** \defgroup playlistqueue Playlist Queue | | /** \defgroup playlistqueue Playlist Queue | |
| * \ingroup Playlist | | * \ingroup Playlist | |
| * Allow control of MPD new queue system | | * Allow control of MPD new queue system | |
| */ | | */ | |
| /*@{*/ | | /*@{*/ | |
| | | | |
| /** | | /** | |
| * @param mi a #MpdObj | | * @param mi a #MpdObj | |
|
| * | | | |
| * Lists the playlist queue of mpd | | | |
| * | | | |
| * @returns a #MpdData list | | | |
| */ | | | |
| MpdData *mpd_playlist_get_mpd_queue(MpdObj *mi); | | | |
| | | | |
| /** | | | |
| * @param mi a #MpdObj | | | |
| * @param songid the id of the song to add | | * @param songid the id of the song to add | |
| * | | * | |
| * Add the song from the playlist with id id. | | * Add the song from the playlist with id id. | |
| * | | * | |
| * @returns a #MpdError | | * @returns a #MpdError | |
| */ | | */ | |
| int mpd_playlist_mpd_queue_add(MpdObj *mi, int songid); | | int mpd_playlist_mpd_queue_add(MpdObj *mi, int songid); | |
| | | | |
| /** | | /** | |
| * @param mi a #MpdObj | | * @param mi a #MpdObj | |
| * @param songpos the pos of the song to remove | | * @param songpos the pos of the song to remove | |
| * | | * | |
| * Removes the song from the queue at position pos | | * Removes the song from the queue at position pos | |
| * | | * | |
| * @returns a #MpdError | | * @returns a #MpdError | |
| */ | | */ | |
| int mpd_playlist_mpd_queue_remove(MpdObj *mi, int songpos); | | int mpd_playlist_mpd_queue_remove(MpdObj *mi, int songpos); | |
| | | | |
|
| /** | | | |
| * | | | |
| * @param mi a #MpdObj | | | |
| * @param id Add the song with id to the queue | | | |
| * | | | |
| * This only queues the add, use #mpd_playlist_queue_commit to actually com | | | |
| mit it. | | | |
| * | | | |
| * @returns a #MpdError | | | |
| */ | | | |
| int mpd_playlist_queue_mpd_queue_add(MpdObj *mi,int id); | | | |
| /** | | | |
| * @param mi a #MpdObj | | | |
| * @param pos the pos of the song to remove | | | |
| * | | | |
| * This only queues the remove, use #mpd_playlist_queue_commit to actually | | | |
| commit it. | | | |
| * | | | |
| * @returns a #MpdError | | | |
| */ | | | |
| int mpd_playlist_queue_mpd_queue_remove(MpdObj *mi,int pos); | | | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 2 change blocks. |
| 30 lines changed or deleted | | 0 lines changed or added | |
|
| libmpd.h | | libmpd.h | |
| | | | |
| skipping to change at line 41 | | skipping to change at line 41 | |
| #endif | | #endif | |
| | | | |
| #ifndef __MPD_LIB__ | | #ifndef __MPD_LIB__ | |
| #define __MPD_LIB__ | | #define __MPD_LIB__ | |
| #ifdef WIN32 | | #ifdef WIN32 | |
| #define __REGEX_IMPORT__ 1 | | #define __REGEX_IMPORT__ 1 | |
| #define __W32API_USE_DLLIMPORT__ 1 | | #define __W32API_USE_DLLIMPORT__ 1 | |
| #endif | | #endif | |
| | | | |
| #include "libmpdclient.h" | | #include "libmpdclient.h" | |
|
| #include <regex.h> | | | |
| | | | |
| #ifndef TRUE | | #ifndef TRUE | |
| /** Defined for readability: True is 1. */ | | /** Defined for readability: True is 1. */ | |
| #define TRUE 1 | | #define TRUE 1 | |
| #endif | | #endif | |
| | | | |
| #ifndef FALSE | | #ifndef FALSE | |
| /** Defined for readability: False is 0. */ | | /** Defined for readability: False is 0. */ | |
| #define FALSE 0 | | #define FALSE 0 | |
| #endif | | #endif | |
| | | | |
| skipping to change at line 154 | | skipping to change at line 153 | |
| }; | | }; | |
| /** a directory */ | | /** a directory */ | |
| char *directory; | | char *directory; | |
| /** a path to a playlist */ | | /** a path to a playlist */ | |
| char *playlist; | | char *playlist; | |
| /** a mpd_Song */ | | /** a mpd_Song */ | |
| mpd_Song *song; | | mpd_Song *song; | |
| /** an output device entity */ | | /** an output device entity */ | |
| mpd_OutputEntity *output_dev; | | mpd_OutputEntity *output_dev; | |
| }; | | }; | |
|
| | | | |
| | | void *userdata; | |
| | | void (*freefunc)(void *userdata); | |
| } MpdData; | | } MpdData; | |
| | | | |
| #include "libmpd-player.h" | | #include "libmpd-player.h" | |
| #include "libmpd-status.h" | | #include "libmpd-status.h" | |
| #include "libmpd-database.h" | | #include "libmpd-database.h" | |
| #include "libmpd-playlist.h" | | #include "libmpd-playlist.h" | |
| #include "libmpd-strfsong.h" | | #include "libmpd-strfsong.h" | |
| | | | |
| /** | | /** | |
| * mpd_new_default | | * mpd_new_default | |
| | | | |
| skipping to change at line 350 | | skipping to change at line 352 | |
| MPD_CST_AUDIO = 0x0800, | | MPD_CST_AUDIO = 0x0800, | |
| /** The state of the player has changed.*/ | | /** The state of the player has changed.*/ | |
| MPD_CST_STATE = 0x1000, | | MPD_CST_STATE = 0x1000, | |
| /** The permissions the client has, has changed.*/ | | /** The permissions the client has, has changed.*/ | |
| MPD_CST_PERMISSION = 0x2000, | | MPD_CST_PERMISSION = 0x2000, | |
| /** The bitrate of the playing song has changed. */ | | /** The bitrate of the playing song has changed. */ | |
| MPD_CST_BITRATE = 0x4000, | | MPD_CST_BITRATE = 0x4000, | |
| /** the audio format of the playing song changed.*/ | | /** the audio format of the playing song changed.*/ | |
| MPD_CST_AUDIOFORMAT = 0x8000, | | MPD_CST_AUDIOFORMAT = 0x8000, | |
| /** the queue has changed */ | | /** the queue has changed */ | |
|
| MPD_CST_QUEUE = 0x10000, | | | |
| /** the queue has changed */ | | | |
| MPD_CST_STORED_PLAYLIST = 0x20000, | | MPD_CST_STORED_PLAYLIST = 0x20000, | |
| /** server error */ | | /** server error */ | |
|
| MPD_CST_SERVER_ERROR = 0x30000 | | MPD_CST_SERVER_ERROR = 0x40000, | |
| | | /** output changed */ | |
| | | MPD_CST_OUTPUT = 0x80000 | |
| } ChangedStatusType; | | } ChangedStatusType; | |
| | | | |
| /* callback typedef's */ | | /* callback typedef's */ | |
| /** | | /** | |
| * @param mi a #MpdObj | | * @param mi a #MpdObj | |
| * @param what a #ChangedStatusType that determines what changed triggered
the signal. This is a bitmask. | | * @param what a #ChangedStatusType that determines what changed triggered
the signal. This is a bitmask. | |
| * @param userdata user data set when the signal handler was connected. | | * @param userdata user data set when the signal handler was connected. | |
| * | | * | |
| * Signal that get's called when the state of mpd changed. Look #ChangedSta
tusType to see the possible events. | | * Signal that get's called when the state of mpd changed. Look #ChangedSta
tusType to see the possible events. | |
| */ | | */ | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 6 lines changed or added | |
|
| libmpdclient.h | | libmpdclient.h | |
| | | | |
| skipping to change at line 176 | | skipping to change at line 176 | |
| /* 0-100, or MPD_STATUS_NO_VOLUME when there is no volume support */ | | /* 0-100, or MPD_STATUS_NO_VOLUME when there is no volume support */ | |
| int volume; | | int volume; | |
| /* 1 if repeat is on, 0 otherwise */ | | /* 1 if repeat is on, 0 otherwise */ | |
| int repeat; | | int repeat; | |
| /* 1 if random is on, 0 otherwise */ | | /* 1 if random is on, 0 otherwise */ | |
| int random; | | int random; | |
| /* playlist length */ | | /* playlist length */ | |
| int playlistLength; | | int playlistLength; | |
| /* playlist, use this to determine when the playlist has changed */ | | /* playlist, use this to determine when the playlist has changed */ | |
| long long playlist; | | long long playlist; | |
|
| /* playlistqueue, use this to determine when the queue has changed * | | | |
| / | | | |
| long long playlistqueue; | | | |
| /* The id, used to determine is one of the playlists are changed */ | | /* The id, used to determine is one of the playlists are changed */ | |
| long long storedplaylist; | | long long storedplaylist; | |
| /* use with MPD_STATUS_STATE_* to determine state of player */ | | /* use with MPD_STATUS_STATE_* to determine state of player */ | |
| int state; | | int state; | |
| /* crossfade setting in seconds */ | | /* crossfade setting in seconds */ | |
| int crossfade; | | int crossfade; | |
| /* if a song is currently selected (always the case when state is | | /* if a song is currently selected (always the case when state is | |
| * PLAY or PAUSE), this is the position of the currently | | * PLAY or PAUSE), this is the position of the currently | |
| * playing song in the playlist, beginning with 0 | | * playing song in the playlist, beginning with 0 | |
| */ | | */ | |
| | | | |
| skipping to change at line 671 | | skipping to change at line 669 | |
| | | | |
| void mpd_sendPlaylistAddCommand(mpd_Connection *connection, | | void mpd_sendPlaylistAddCommand(mpd_Connection *connection, | |
| char *playlist, char *path); | | char *playlist, char *path); | |
| | | | |
| void mpd_sendPlaylistMoveCommand(mpd_Connection *connection, | | void mpd_sendPlaylistMoveCommand(mpd_Connection *connection, | |
| char *playlist, int from, int to); | | char *playlist, int from, int to); | |
| | | | |
| void mpd_sendPlaylistDeleteCommand(mpd_Connection *connection, | | void mpd_sendPlaylistDeleteCommand(mpd_Connection *connection, | |
| char *playlist, int pos); | | char *playlist, int pos); | |
| | | | |
|
| /* | | | |
| * List the content of the queue | | | |
| */ | | | |
| void mpd_sendQueueInfoCommand(mpd_Connection * connection); | | | |
| | | | |
| /* | | | |
| * Dequeue a song from the queue | | | |
| * SongPos is the position in the queue | | | |
| */ | | | |
| void mpd_sendDequeueCommand(mpd_Connection * connection, int songPos); | | | |
| | | | |
| /* | | | |
| * Queue a song from the playlist | | | |
| * Id is the songid of the song to queue | | | |
| */ | | | |
| void mpd_sendQueueIdCommand(mpd_Connection * connection, int songId); | | | |
| void mpd_sendClearErrorCommand(mpd_Connection * connection); | | void mpd_sendClearErrorCommand(mpd_Connection * connection); | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 2 change blocks. |
| 19 lines changed or deleted | | 0 lines changed or added | |
|