aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-08-05playlist/lastfm: allocate the lastfm_playlist object at the endMax Kellermann1-15/+14
Simplify the error path, because the other allocations may fail.
2013-08-05playlist/m3u: allocate ExtM3uPlaylist with new/deleteMax Kellermann1-8/+9
2013-08-05playlist/extm3u: allocate ExtM3uPlaylist with new/deleteMax Kellermann1-10/+11
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann3-20/+20
2013-08-04PlaylistPlugin: pass config_param referenceMax Kellermann2-6/+5
2013-07-30tag: convert to C++Max Kellermann9-33/+30
2013-07-29tag_handler: convert to C++Max Kellermann1-1/+1
2013-07-29ape: convert to C++Max Kellermann1-4/+1
2013-07-28tag_id3: convert to C++Max Kellermann1-1/+1
2013-07-28song: convert header to C++Max Kellermann13-48/+48
2013-05-12text_input_stream: convert to classDenis Krjuchkov3-43/+38
2013-04-09string_util: convert to C++Max Kellermann1-1/+1
2013-04-09cue_parser: convert to C++Max Kellermann2-19/+17
2013-04-09playlist/cue: add constructor/destructorMax Kellermann1-11/+13
2013-04-08uri: convert to C++Max Kellermann2-2/+0
2013-01-29playlist/despotify: various code simplificationsMax Kellermann1-55/+31
2013-01-29playlist/memory: use std::forward_list instead of GSListMax Kellermann8-112/+45
2013-01-29playlist/{asx,rss,soundcloud,xspf}: merge code to MemoryPlaylistProviderMax Kellermann8-257/+162
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann4-16/+17
2013-01-27playlist/*: convert to C++Max Kellermann18-225/+260
2013-01-26input_stream: forward-declare the structMax Kellermann1-2/+1
Hide the definition from C code, to prepare the transition to C++.
2013-01-26tag_file: convert to C++Max Kellermann1-1/+1
2013-01-26playlist/*: convert to C++Max Kellermann7-42/+57
2013-01-21input,playlist/despotify: convert to C++Max Kellermann2-22/+28
2012-08-14input_stream, main: remove obsolete GLib version checksMax Kellermann1-2/+0
MPD requires GLib 2.16.
2012-07-10require GLib 2.16Max Kellermann2-2/+1
GLib 2.16 was released more than 4 years ago. Let's remove some cruft from the glib_compat.h header, and avoid new cruft to it.
2012-03-22playlist/soundcloud: libyajl2 uses size_t for string lengthsMax Kellermann1-2/+14
Fixes build failure on 64 bit.
2012-03-19playlist/soundcloud: support libyajl2Robert Vollmert1-5/+21
[mk: backwars compatibility and autoconf check]
2012-03-01playlist/soundcloud: use config_dup_block_string()Max Kellermann1-5/+3
2012-03-01A soundcloud playlist plugin.Robert Vollmert2-0/+447
Requires YAJL to build, and this doesn't include the necessary automake changes. Can be built using ./configure CFLAGS="-I/usr/include/yajl" LIBS="-lyajl" --enable-soundcloud Add the following to your config: playlist_plugin { name "soundcloud" enabled "true" apikey "c4c979fd6f241b5b30431d722af212e8" } Then you can stream from soundcloud using calls like: mpc load soundcloud://track/<track-id> mpc load soundcloud://playlist/<playlist-id> mpc load soundcloud://url/http://soundcloud.com/some/track/or/playlist For the last case, you can leave off the http:// or http://soundcloud.com/ .
2012-02-12playlist/flac: delete this obsolete pluginMax Kellermann2-196/+0
The FLAC playlist plugin has been superseded by the "embcue" playlist plugin, which can read the embedded CUE sheets of all formats.
2012-02-12playlist/embcue: ignore "FILE", always point to container song fileMax Kellermann1-2/+15
An embedded CUE sheet must always point to the song file it is contained in.
2012-02-12playlist/embcue: new plugin for reading embedded cue sheetsMax Kellermann2-0/+193
Parses CUE data from the "CUESHEET" tag. Needs further integration in the update thread.
2012-02-10cue_parser: new line based CUE sheet parserMax Kellermann1-61/+28
To replace libcue, the unmaintained and crashy library.
2011-09-16input_stream: non-blocking I/OMax Kellermann8-36/+30
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-04-12playlist: Despotify plugin: Correct init in daemon modeSimon Kagstrom1-1/+1
There is a global despotify session, so it should not be initialized until needed.
2011-03-31fix common misspellingsJonathan Neuschäfer1-1/+1
These fixes were mostly generated with `codespell' [0] and manually reviewed. [0] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
2011-03-29playlist: Add despotify playlist pluginSimon Kagstrom2-0/+241
For spotify playlists or tracks. Uses a spt uri, so with mpc you can add playlists with mpc load spt://spotify:user:simon.kagstrom:playlist:3SUwkOe5VbVHysZcidEZtH
2011-01-29copyright year 2011Max Kellermann18-18/+18
2010-12-23string_util: add function strchug_fast()Max Kellermann1-1/+2
Replace g_strchug() calls with a cheaper implementation.
2010-10-11playlist/rss: new playlist plugin for RSS feedsMax Kellermann2-0/+346
2010-06-25playlist/cue: last track ends at end of fileMax Kellermann1-3/+2
libcue's track_get_length() returns 0 for the last track, because that information is not available in the CUE sheet. This makes MPD quit playing the last track immediately. If we set "song.end_ms=0", MPD will play the track until the end of the song file, which is what we want.
2010-04-01cue: fix code styleOrivej Desh1-5/+4
2010-03-28cue: prepend pregap to the beginning of the trackOrivej Desh1-2/+13
.. rather then append to the end of the previous one Cuebreakpoints from the cuetools package has three modes of operation, and the default is to append pregap (INDEX 00) to the end of the previous track. This is the behavior most compliant to the existing cue files. Here is the patch which fixes the issue. I borrowed bits of implementation from cuebreakpoints. I assumed that the whole audio file must be covered by head-to-head going tracks, which is how hardware CD players probably work. In cue_tag I changed rounding from rounding up to rounding down because the thing in mpd which calculates actual track duration (and current position) rounds it down, and I didn't want to see in my playlist values different from whose in a now-playing progress bar. I've compared the resultant mpd behaviour with "mplayer -ss MM:SS.MS" where the time was supplied by cuebreakpoints and noticed that mplayer started each track a bit earlier then mpd, though this was the same before the patch.
2010-01-06playlist: added a FLAC playlist pluginMax Kellermann2-0/+195
This playlist plugin handles FLAC files with embedded CUE sheets.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann1-23/+21
Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute).
2009-12-31Update copyright notices.Avuton Olrich14-14/+14
2009-12-27playlist/cue: fill song.start_ms, .end_msMax Kellermann1-0/+3
This patch adds practical usefulness to the CUE playlist plugin.
2009-12-27playlist/cue: return the original song URIMax Kellermann1-10/+1
The caller should be responsible for building the absolute URI.
2009-12-16playlist: added CUE playlist pluginMax Kellermann2-0/+162
This plugin is the groundwork for MPD's future generic CUE sheet support. That's not complete yet, e.g. there is no way for a playlist plugin to address an arbitrary position within a music file.