aboutsummaryrefslogtreecommitdiff
path: root/src/playlist_list.c
Commit message (Collapse)AuthorAge
* 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.
* Merge branch 'v0.16.x'Max Kellermann2012-06-12
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/cmdline.c src/decoder/wildmidi_decoder_plugin.c src/gcc.h src/glib_compat.h src/input_stream.c src/output_list.c src/output_thread.c valgrind.suppressions
| * playlist_list: add _for_each() macrosMax Kellermann2012-06-12
| |
* | 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: 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: 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
| |
* | utils: move string_array_contains() to string_util.cMax Kellermann2010-12-23
|/
* playlist/rss: new playlist plugin for RSS feedsMax Kellermann2010-10-11
|
* eliminate g_error() usageThomas Jansen2010-09-25
| | | | | | | | | | | | | | 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.
* playlist_list: probe plugin without MIME attributesMax Kellermann2010-06-25
| | | | | If the MIME type of a stream contains a semicolon, remove it and the text after it to probe for a playlist plugin.
* playlist_list: moved input_stream.ready loop to calling functionMax Kellermann2010-06-25
| | | | | | 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".
* playlist_list: wait for input stream to become readyAaron Griffith2010-06-25
| | | | Fixes an assertion failure in the input_stream_seek() call.
* playlist_list: export playlist_suffix_supported()Max Kellermann2010-06-01
|
* playlist_list: playlist_list_open_path() returns input_streamMax Kellermann2010-06-01
| | | | | | | 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.
* playlist_list: move fallback g_uri_parse_scheme() to glib_compat.hMax Kellermann2010-06-01
|
* 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_list: wait for the input stream to become readyMax Kellermann2009-12-27
| | | | Without this, seeking may cause MPD to crash.
* playlist_list: use uri_get_suffix()Max Kellermann2009-12-26
|
* 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.
* playlist_list: support URI suffix matchMax Kellermann2009-12-16
| | | | When no plugin matches the URI scheme, try the file name suffix.
* playlist_list: check if open method is presentMax Kellermann2009-12-16
| | | | | Use open_uri() / open_stream() only after checking that they are implemented.
* 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.
* configure.ac: require GLib 2.12Max Kellermann2009-11-10
| | | | | | 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.
* utils: renamed stringFoundInStringArray()Max Kellermann2009-11-06
| | | | | No CamelCase. Use bool instead of int. Make both arguments mandatory.
* playlist_list: added function playlist_list_open_path()Max Kellermann2009-11-06
| | | | Added an interface for loading playlists from a local file.
* 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_list: rewind the stream before opening the playlistMax Kellermann2009-11-06
| | | | | | 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.
* playlist: new ASX playlist pluginMax Kellermann2009-10-21
| | | | Based on the XSPF playlist plugin.
* 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_list: pass configuration to playlist pluginsMax Kellermann2009-10-13
| | | | This patch completes the configuration support.
* playlist_list: initialize the "playlist" variableMax Kellermann2009-10-13
| | | | Prevent access on uninitialized variable if the plugin list is empty.
* 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.