aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-03-30implemented the 'consume' modeRomain Bignon1-0/+5
Consume mode removes each song played
2009-03-27renamed smartstop to single and changed behaviorRomain Bignon1-2/+2
When single mode is enabled, after current song it stops playback, or it replay same song if repeat mode is activated.
2009-03-27implements the smartstop featureRomain Bignon1-0/+5
The smartstop feature is a way to tell mpd to stop playing after current song. This patche provides: - 'state' command returns 'smartstop' state (1 or 0) - 'smartstop' can activate or not the smartstop state - when song is terminated, mpd stops playing and smartstop is set to 0
2009-03-26queue/playlist/command: move rangeJeffrey Middleton1-1/+1
The move command now accepts a range for the first argument, in the same form as other range commands, e.g. move 15:17 3. The first song in the range is placed at the destination position. Note that as with other range commands, the range is inclusive on the left only; this example would move only songs 15 and 16, not 17. [mk: fixed signed/unsigned warnings; use G_MAXUINT instead of UINT_MAX]
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-02-13added the shufflerange commandRomain Bignon1-1/+1
This command shuffles a range of songs.
2009-02-09playlist: provide information about "next song"Vladimir S Eremin1-0/+2
In random mode, this patch allows clients to see the "next song" in the queue.
2009-02-04playlist: pass const playlist pointersMax Kellermann1-9/+6
Pass constant playlist objects to functions which do not modify it.
2009-02-04playlist: renamed global "playlist" variable to "g_playlist"Max Kellermann1-32/+66
Export the "g_playlist" variable, and pass it to all playlist functions. This way, we can split playlist.c easier into separate parts. The code which initializes the singleton variable is moved to playlist_global.c.
2009-01-25playlist: moved savePlaylist() and loadPlaylsit() to playlist_save.cMax Kellermann1-2/+0
2009-01-25stored_playlist: moved configuration variables from playlist.cMax Kellermann1-4/+0
Don't declare and export variables specific to stored playlists in playlist.c/playlist.h.
2009-01-24playlist: removed locate functions to queue_print.cMax Kellermann1-11/+0
Now playlist.c does not contain any protocol specific code anymore.
2009-01-24locate: renamed LocateTagItem to "struct locate_item"Max Kellermann1-3/+3
No CamelCase and no typedefs.
2009-01-24command: use queue_print_*()Max Kellermann1-19/+0
Replaced several wrapper functions from playlist.c, and make command.c use the queue print functions directly.
2009-01-24playlist: added playlist_get_queue()Max Kellermann1-0/+6
To allow code outside playlist.c to access the "queue" object, provide a function which returns a const pointer.
2009-01-24playlist: renamed the Playlist typedef to "struct playlist"Max Kellermann1-2/+2
No typedefs.
2009-01-24playlist: moved stopOnError and errorCount into struct playlistMax Kellermann1-0/+14
Moved the 2 remaining global variables into the playlist struct.
2009-01-23playlist: moved PlaylistInfo() to playlist_print.cMax Kellermann1-2/+0
PlaylistInfo() (notice the capital 'P') sends a stored playlist to the client. Move it to a separate library, where all the code which glues the playlist and the MPD protocol together will live.
2009-01-23playlist: pass const pointers to search functionsMax Kellermann1-4/+6
The LocateTagItem objects are not modified.
2009-01-23playlist: added source commentsMax Kellermann1-1/+4
The playlist.c source is currently quite hard to understand. I have managed to wrap my head around it, and this patch attempts to explain it to the next guy.
2009-01-23playlist: removed stopOnError flag from playPlaylist()Max Kellermann1-2/+2
All callers pass false. Don't bother to collect that parameter.
2009-01-23playlist: replaced playlist_state with flag playlist.playingMax Kellermann1-0/+6
There were only two possible states: STOP and PLAY. The code looks a lot easier if we use a bool instead. Move the variable into the playlist struct.
2009-01-23playlist: documented struct membersMax Kellermann1-0/+13
Added several comments.
2009-01-22playlist: moved code to queue.cMax Kellermann1-10/+3
Attempt to untie the playlist.c knot: moved the playlist storage code to queue.c, struct queue.
2009-01-21command: don't restart player in the "status" commandMax Kellermann1-2/+0
Don't attempt to restart the player if it was stopped, but there were still songs left on the playlist. This looks like it has been a workaround for a bug which has been fixed long time ago.
2009-01-20event_pipe: added "TAG" eventMax Kellermann1-5/+0
The "TAG" event is emitted by the player thread when the current song's tag has changed. Split this event from "PLAYLIST" and make it a separate callback, which is more efficient.
2009-01-18mapper: make the playlist directory optionalMax Kellermann1-1/+2
2009-01-10playlist: pass unsigned integers to playlistInfo()Max Kellermann1-1/+10
A song index cannot be negative. Also require the second parameter to be valid.
2009-01-10command: playlistinfo now uses a range argument rather than just a song idThomas Jansen1-1/+1
Loosely based on a patch provided by lesion in bug #1766. The playlistinfo command can now retrieve ranges of the playlist. The new argument indicates which entry is the last one that will be displayed. The number of displayed entries may be smaller than expected if the end of the playlist is reached. Previous usage: playlistinfo [start] New usage: playlistinfo [start[:end]]
2009-01-04playlist: log errors during loadPlaylist()Max Kellermann1-1/+1
Don't call command_error() if loading a song from the playlist fails. This may result in assertion failures, since command_error() may be called more than once.
2008-12-30command: don't allow adding local files on WIN32Max Kellermann1-0/+2
There are no unix sockets on WIN32, and therefore no authentication. WIN32 might have similar capabilities, but until we implement them, disable that MPD feature.
2008-11-11playlist: track song metadata changesMax Kellermann1-0/+5
When the tag of the current song changes (e.g. a new tag was sent in the stream), update the playlist, so clients pick up the new tag.
2008-10-31path: moved playlist_dir to mapper.cMax Kellermann1-1/+0
Added the function map_spl_utf8_to_fs() which replaces utf8_to_fs_playlist_path().
2008-10-31added prefix to header macrosMax Kellermann1-2/+2
"LOG_H" is a macro which is also used by ffmpeg/log.h. This is ffmpeg's fault, because short macros should be reserved for applications, but since it's always a good idea to choose prefixed macro names, even for applications, we are going to do that in MPD.
2008-10-23stored_playlist: renamed and moved spl_delete() to stored_playlist.cMax Kellermann1-2/+0
The function deletePlaylist() shouldn't be in playlist.c.
2008-10-23playlist: unsigned integersMax Kellermann1-18/+18
There are some integers which have a "magic" -1 value which means "undefined" or "nothing". All others can be converted to unsigned, since they must not contain a negative number.
2008-10-22stored_playlist: moved functions from playlist.cMax Kellermann1-4/+0
The two functions clearStoredPlaylist() and addToStoredPlaylist() don't belong into playlist.c. clearStoredPlaylist() was a wrapper for spl_clear(), and is converted into a CPP macro for now.
2008-10-15playlist: added support for adding songs not in the music databaseMax Kellermann1-0/+8
Clients which have authenticated via unix socket may add local files to the MPD playlist, provided that they own the file.
2008-10-08use the "bool" data type instead of "int"Max Kellermann1-7/+8
"bool" should be used in C99 programs for boolean values.
2008-10-08song: converted typedef Song to struct songMax Kellermann1-3/+9
Again, a data type which can be forward-declared.
2008-09-29switch to C99 types, part IIMax Kellermann1-4/+4
Do full C99 integer type conversion in all modules which were not touched by Eric's merged patch.
2008-09-29playlist: deleteASongFromPlaylist takes a const Song *Eric Wong1-1/+1
We don't change the song pointer there, either.
2008-09-07playlist: don't pass "fd" to showPlaylist(), playlistChangesPosId()Max Kellermann1-2/+2
Pass the client struct instead of the raw file descriptor.
2008-09-07playlist: pass struct client to loadPlaylist()Max Kellermann1-1/+1
The function loadPlaylist() wants to report incremental errors to the client, for this reason we cannot remove its protocol dependency right now. Instead, make it use the client struct instead of the raw file descriptor.
2008-09-07pass "struct client" to dbUtils.c, song.c, tag_print.cMax Kellermann1-6/+8
Don't pass the raw file descriptor around. This migration patch is rather large, because all of the sources have inter dependencies - we have to change all of them at the same time.
2008-09-07playlist: don't pass "fd" to storedPlaylist.c functionsMax Kellermann1-5/+3
Return an "enum playlist_result" value instead of calling commandError() in storedPlaylist.c.
2008-09-07playlist: don't pass "fd" to playlist.c functionsMax Kellermann1-19/+29
The playlist library shouldn't talk to the client if possible. Introduce the "enum playlist_result" type which the caller (i.e. command.c) may use to generate an error message.
2008-09-07playlist: showPlaylist() and shufflePlaylist() cannot failMax Kellermann1-2/+2
Make them both return void.
2008-09-07playlist: moved "repeat" and "random" value checks to command.cMax Kellermann1-2/+2
Client's input values should be validated by the command implementation, and the core libraries shouldn't talk to the client directly if possible. Thus, setPlaylistRepeatStatus() and setPlaylistRandomStatus() don't get the file descriptor, and cannot fail (return void).
2008-09-07playlist: added is_valid_playlist_name()Max Kellermann1-0/+2
The function valid_playlist_name() checks the name, but it insists on reporting an eventual error to the client. The new function is_valid_playlist_name() is more generic: it just returns a boolean, and does not care what the caller will use it for. The old function valid_playlist_name() will be removed later.