aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist/PlaylistRegistry.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-10-26playlist/flac: re-add the pluginMax Kellermann1-0/+4
This reverts commit d7d9dbd2c2798b6ff39acb07a3bed38b6f99e283 by reimplementing it with the current MPD API. 3 years ago, I was wrong about the "embcue" plugin being able to replace this one, because "embcue" reads a tag named "CUESHEET", while this plugin reads the "CUESHEET" FLAC metablock. There's an important difference between those two!
2015-01-21config/Param: split block-specific attributes to new struct ConfigBlockMax Kellermann1-3/+3
The old struct config_param remains only for top-level string options.
2015-01-21config/Option: convert to strictly-typed enumMax Kellermann1-3/+3
2015-01-21ConfigData: move struct config_param to Param.hxxMax Kellermann1-1/+1
2015-01-01Copyright year 2015Max Kellermann1-1/+1
2014-12-08configure.ac: add option to disable CUEMax Kellermann1-0/+2
2014-12-04playlist/pls: custom INI parserMax Kellermann1-3/+0
Don't use GLib.
2014-11-21configure.ac: add macro MPD_ENABLE_AUTO_PKGMax Kellermann1-1/+1
Simplify the definition of many build options.
2014-11-01Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann1-3/+6
Use the new uri_get_suffix() overload that removes the query string.
2014-05-12InputStream: "protect" attributesMax Kellermann1-1/+1
2014-02-18PlaylistRegistry: disable the "pls" plugin without GLibMax Kellermann1-0/+3
2014-02-07Playlist{Any,Registry,Mapper}: move functions to PlaylistStream.cxxMax Kellermann1-31/+1
2014-02-07playlist/CloseSongEnumerator: new wrapper classMax Kellermann1-3/+3
Simplifies a lot of code, because we don't need to return both the SongEnumerator and the InputStream.
2014-01-24ConfigGlobal: add config_find_block()Max Kellermann1-28/+2
Merge duplicate code.
2014-01-24Input*: move to input/Max Kellermann1-1/+1
2014-01-24Config*: move to config/Max Kellermann1-2/+2
2014-01-23playlist/*: move to playlist/plugins/Max Kellermann1-10/+10
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-09playlist/{asx,rss,xspf}: use Expat instead of GLib to parse XMLMax Kellermann1-1/+3
2013-12-29InputStream: add static method OpenReady()Max Kellermann1-7/+3
Merge some duplicate code.
2013-12-15UriUtil: add function uri_get_scheme()Max Kellermann1-7/+3
Replaces g_uri_parse_scheme().
2013-10-23input_stream: rename struct to InputStreamMax Kellermann1-14/+13
2013-10-23InputStream: add method Rewind()Max Kellermann1-3/+2
2013-10-17InputStream: use int64_t instead of goffsetMax Kellermann1-0/+2
Decouple some more from GLib.
2013-10-15PlaylistRegistry: use std::string for temporary allocationMax Kellermann1-4/+2
2013-10-15Util/Macros: replacement for GLib's G_N_ELEMENTS()Max Kellermann1-2/+6
2013-10-02Log: new logging library APIMax Kellermann1-1/+2
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-10-02Playlist*: use nullptr instead of NULLMax Kellermann1-52/+52
2013-09-28playlist/lastfm: remove defunct Last.fm supportMax Kellermann1-4/+0
This plugin has been defunct ever since Last.fm changed their protocol. Since there is no volunteer willing to fix the plugin, I'm removing it now.
2013-09-05mpd_error.h: remove obsolete headerMax Kellermann1-3/+3
Migrate the remaining callers to FatalError().
2013-09-05PlaylistPlugin: add interface SongEnumeratorMax Kellermann1-25/+17
Replaces struct playlist_provider.
2013-09-05conf.h: remove obsolete headerMax Kellermann1-1/+2
Use only ConfigData.hxx in plugin sources to reduce header dependencies.
2013-09-05InputLegacy: move functions to the input_stream classMax Kellermann1-10/+8
2013-09-04util/Error: new error passing libraryMax Kellermann1-9/+9
Replaces GLib's GError.
2013-09-03input_stream.h: rename to InputLegacy.hxxMax Kellermann1-1/+1
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.