aboutsummaryrefslogtreecommitdiff
path: root/src/playlist
Commit message (Collapse)AuthorAge
* playlist/despotify: various code simplificationsMax Kellermann2013-01-29
|
* playlist/memory: use std::forward_list instead of GSListMax Kellermann2013-01-29
|
* playlist/{asx,rss,soundcloud,xspf}: merge code to MemoryPlaylistProviderMax Kellermann2013-01-29
|
* DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann2013-01-27
|
* playlist/*: convert to C++Max Kellermann2013-01-27
|
* input_stream: forward-declare the structMax Kellermann2013-01-26
| | | | Hide the definition from C code, to prepare the transition to C++.
* tag_file: convert to C++Max Kellermann2013-01-26
|
* playlist/*: convert to C++Max Kellermann2013-01-26
|
* input,playlist/despotify: convert to C++Max Kellermann2013-01-21
|
* input_stream, main: remove obsolete GLib version checksMax Kellermann2012-08-14
| | | | MPD requires GLib 2.16.
* require GLib 2.16Max Kellermann2012-07-10
| | | | | 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.
* playlist/soundcloud: libyajl2 uses size_t for string lengthsMax Kellermann2012-03-22
| | | | Fixes build failure on 64 bit.
* playlist/soundcloud: support libyajl2Robert Vollmert2012-03-19
| | | | [mk: backwars compatibility and autoconf check]
* playlist/soundcloud: use config_dup_block_string()Max Kellermann2012-03-01
|
* A soundcloud playlist plugin.Robert Vollmert2012-03-01
| | | | | | | | | | | | | | | | | | | | | | | 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/ .
* playlist/flac: delete this obsolete pluginMax Kellermann2012-02-12
| | | | | The FLAC playlist plugin has been superseded by the "embcue" playlist plugin, which can read the embedded CUE sheets of all formats.
* playlist/embcue: ignore "FILE", always point to container song fileMax Kellermann2012-02-12
| | | | | An embedded CUE sheet must always point to the song file it is contained in.
* playlist/embcue: new plugin for reading embedded cue sheetsMax Kellermann2012-02-12
| | | | | Parses CUE data from the "CUESHEET" tag. Needs further integration in the update thread.
* cue_parser: new line based CUE sheet parserMax Kellermann2012-02-10
| | | | To replace libcue, the unmaintained and crashy library.
* input_stream: non-blocking I/OMax Kellermann2011-09-16
| | | | | | | | | 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.
* playlist: Despotify plugin: Correct init in daemon modeSimon Kagstrom2011-04-12
| | | | | There is a global despotify session, so it should not be initialized until needed.
* fix common misspellingsJonathan Neuschäfer2011-03-31
| | | | | | | These fixes were mostly generated with `codespell' [0] and manually reviewed. [0] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
* playlist: Add despotify playlist pluginSimon Kagstrom2011-03-29
| | | | | | | 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
* copyright year 2011Max Kellermann2011-01-29
|
* string_util: add function strchug_fast()Max Kellermann2010-12-23
| | | | Replace g_strchug() calls with a cheaper implementation.
* playlist/rss: new playlist plugin for RSS feedsMax Kellermann2010-10-11
|
* playlist/cue: last track ends at end of fileMax Kellermann2010-06-25
| | | | | | | | 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.
* cue: fix code styleOrivej Desh2010-04-01
|
* cue: prepend pregap to the beginning of the trackOrivej Desh2010-03-28
| | | | | | | | | | | | | | | | | | | | | | | .. 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.
* playlist: added a FLAC playlist pluginMax Kellermann2010-01-06
| | | | This playlist plugin handles FLAC files with embedded CUE sheets.
* input_stream: return allocated input_stream objectsMax Kellermann2010-01-01
| | | | | | | | 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).
* Update copyright notices.Avuton Olrich2009-12-31
|
* playlist/cue: fill song.start_ms, .end_msMax Kellermann2009-12-27
| | | | This patch adds practical usefulness to the CUE playlist plugin.
* playlist/cue: return the original song URIMax Kellermann2009-12-27
| | | | The caller should be responsible for building the absolute URI.
* playlist: added CUE playlist pluginMax Kellermann2009-12-16
| | | | | | 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.
* input_stream: return errors with GErrorMax Kellermann2009-12-15
|
* include config.h in all sourcesMax Kellermann2009-11-12
| | | | | | After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
* moved GLib compatibility code to glib_compat.hMax Kellermann2009-11-10
|
* playlist: added extm3u pluginMax Kellermann2009-11-06
| | | | | This new plugin parses extm3u files. Files without the "#EXTM3U" header are still parsed by the plain old "m3u" plugin.
* playlist/{m3u,pls}: removed URI checksMax Kellermann2009-11-06
| | | | The caller is responsible for verifying the song URI.
* playlist: new ASX playlist pluginMax Kellermann2009-10-21
| | | | Based on the XSPF playlist plugin.
* playlist/xspf: ignore text in root, playlist, tracklistMax Kellermann2009-10-21
| | | | Added a missing "break".
* Add PLS ParserQball Cow2009-10-15
|
* playlist: added plugin for last.fm radioMax Kellermann2009-10-13
| | | | | This plugin will replace the last.fm input plugin, once the playlist API is integrated into MPD.
* playlist: added XSPF pluginMax Kellermann2009-10-13
|
* playlist/m3u: added plugin nameMax Kellermann2009-10-13
|
* playlist_plugin: new plugin API for playlist parsersMax Kellermann2009-10-12
Based on this API, we will add parsers for EXTM3U, PLS, ASX, last.fm radio and others. There is no integration into the MPD core yet. Right now, we have a command line test program. This is work in progress.