aboutsummaryrefslogtreecommitdiffstats
path: root/src/PlaylistRegistry.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-08-04PlaylistPlugin: pass config_param referenceMax Kellermann1-5/+7
2013-04-09string_util: convert to C++Max Kellermann1-2/+1
2013-04-08uri: convert to C++Max Kellermann1-4/+1
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann1-4/+4
2013-01-27playlist/*: convert to C++Max Kellermann1-8/+8
2013-01-26input_stream: forward-declare the structMax Kellermann1-8/+9
Hide the definition from C code, to prepare the transition to C++.
2013-01-26playlist/*: convert to C++Max Kellermann1-5/+9
2013-01-21input,playlist/despotify: convert to C++Max Kellermann1-1/+1
2012-07-10require GLib 2.16Max Kellermann1-1/+0
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-06-12playlist_list: add _for_each() macrosMax Kellermann1-18/+13
2012-03-01A soundcloud playlist plugin.Robert Vollmert1-0/+4
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 Kellermann1-4/+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: new plugin for reading embedded cue sheetsMax Kellermann1-0/+2
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-2/+0
To replace libcue, the unmaintained and crashy library.
2011-09-16input_stream: non-blocking I/OMax Kellermann1-28/+17
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-03-29playlist: Add despotify playlist pluginSimon Kagstrom1-0/+4
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 Kellermann1-1/+1
2010-12-23utils: move string_array_contains() to string_util.cMax Kellermann1-1/+1
2010-10-11playlist/rss: new playlist plugin for RSS feedsMax Kellermann1-0/+2
2010-09-25eliminate g_error() usageThomas Jansen1-1/+2
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header file 'mpd_error.h'. This macro uses g_critical() to print the error message and then exits gracefully in contrast to g_error() which would internally call abort() to produce a core dump. The macro name is distinctive and allows to find all places with dubious error handling. The long-term goal is to get rid of MPD_ERROR() altogether. To facilitate the eventual removal of this macro it was added in a new header file rather than to an existing header file. This fixes #2995 and #3007.
2010-06-25playlist_list: probe plugin without MIME attributesMax Kellermann1-3/+23
If the MIME type of a stream contains a semicolon, remove it and the text after it to probe for a playlist plugin.
2010-06-25playlist_list: moved input_stream.ready loop to calling functionMax Kellermann1-22/+11
Merged both loops into playlist_list_open_stream(). This is needed because playlist_list_open_stream() needs to know the MIME type, which is only known after the stream has become "ready".
2010-06-25playlist_list: wait for input stream to become readyAaron Griffith1-0/+22
Fixes an assertion failure in the input_stream_seek() call.
2010-06-01playlist_list: export playlist_suffix_supported()Max Kellermann1-1/+1
2010-06-01playlist_list: playlist_list_open_path() returns input_streamMax Kellermann1-2/+4
Memory leak fix. The input_stream object passed to playlist_list_open_stream_suffix() must be closed by the caller - this however never happens in playlist_list_open_path(), because it does not return it to the caller.
2010-06-01playlist_list: move fallback g_uri_parse_scheme() to glib_compat.hMax Kellermann1-14/+1
2010-01-06playlist: added a FLAC playlist pluginMax Kellermann1-0/+4
This playlist plugin handles FLAC files with embedded CUE sheets.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann1-2/+4
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 Olrich1-1/+1
2009-12-27playlist_list: wait for the input stream to become readyMax Kellermann1-0/+10
Without this, seeking may cause MPD to crash.
2009-12-26playlist_list: use uri_get_suffix()Max Kellermann1-4/+2
2009-12-16playlist: added CUE playlist pluginMax Kellermann1-0/+4
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.
2009-12-16playlist_list: support URI suffix matchMax Kellermann1-2/+54
When no plugin matches the URI scheme, try the file name suffix.
2009-12-16playlist_list: check if open method is presentMax Kellermann1-2/+6
Use open_uri() / open_stream() only after checking that they are implemented.
2009-12-15input_stream: return errors with GErrorMax Kellermann1-4/+13
2009-11-12include config.h in all sourcesMax Kellermann1-1/+1
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.
2009-11-10configure.ac: require GLib 2.12Max Kellermann1-0/+12
Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
2009-11-06utils: renamed stringFoundInStringArray()Max Kellermann1-7/+8
No CamelCase. Use bool instead of int. Make both arguments mandatory.
2009-11-06playlist_list: added function playlist_list_open_path()Max Kellermann1-0/+36
Added an interface for loading playlists from a local file.
2009-11-06playlist: added extm3u pluginMax Kellermann1-0/+2
This new plugin parses extm3u files. Files without the "#EXTM3U" header are still parsed by the plain old "m3u" plugin.
2009-11-06playlist_list: rewind the stream before opening the playlistMax Kellermann1-0/+9
If one plugin has failed to open the playlist, it may have consumed a part of the stream already. This may lead to a failure in all following plugins. Fix: rewind the stream before each open() call.
2009-10-21playlist: new ASX playlist pluginMax Kellermann1-0/+2
Based on the XSPF playlist plugin.
2009-10-15Add PLS ParserQball Cow1-0/+2
2009-10-13playlist: added plugin for last.fm radioMax Kellermann1-0/+5
This plugin will replace the last.fm input plugin, once the playlist API is integrated into MPD.
2009-10-13playlist: added XSPF pluginMax Kellermann1-0/+2
2009-10-13playlist_list: pass configuration to playlist pluginsMax Kellermann1-2/+40
This patch completes the configuration support.
2009-10-13playlist_list: initialize the "playlist" variableMax Kellermann1-1/+1
Prevent access on uninitialized variable if the plugin list is empty.
2009-10-12playlist_plugin: new plugin API for playlist parsersMax Kellermann1-0/+146
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.