| Commit message (Collapse) | Author | Files | Lines |
|
Replaces g_uri_parse_scheme().
|
|
|
|
|
|
Decouple some more from GLib.
|
|
|
|
|
|
Prepare to migrate away from GLib. Currently, we're still using GLib
as a backend.
|
|
|
|
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.
|
|
Migrate the remaining callers to FatalError().
|
|
Replaces struct playlist_provider.
|
|
Use only ConfigData.hxx in plugin sources to reduce header
dependencies.
|
|
|
|
Replaces GLib's GError.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hide the definition from C code, to prepare the transition to C++.
|
|
|
|
|
|
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.
|
|
|
|
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/ .
|
|
The FLAC playlist plugin has been superseded by the "embcue" playlist
plugin, which can read the embedded CUE sheets of all formats.
|
|
Parses CUE data from the "CUESHEET" tag. Needs further integration in
the update thread.
|
|
To replace libcue, the unmaintained and crashy library.
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
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.
|
|
If the MIME type of a stream contains a semicolon, remove it and the
text after it to probe for a playlist plugin.
|
|
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".
|
|
Fixes an assertion failure in the input_stream_seek() call.
|
|
|
|
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.
|
|
|
|
This playlist plugin handles FLAC files with embedded CUE sheets.
|
|
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).
|
|
|
|
Without this, seeking may cause MPD to crash.
|
|
|
|
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.
|
|
When no plugin matches the URI scheme, try the file name suffix.
|
|
Use open_uri() / open_stream() only after checking that they are
implemented.
|
|
|