| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
No CamelCase. Use bool instead of int. Make both arguments
mandatory.
|
|
|
|
| |
Added an interface for loading playlists from a local file.
|
|
|
|
|
| |
This new plugin parses extm3u files. Files without the "#EXTM3U"
header are still parsed by the plain old "m3u" plugin.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Based on the XSPF playlist plugin.
|
| |
|
|
|
|
|
| |
This plugin will replace the last.fm input plugin, once the playlist
API is integrated into MPD.
|
| |
|
|
|
|
| |
This patch completes the configuration support.
|
|
|
|
| |
Prevent access on uninitialized variable if the plugin list is empty.
|
|
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.
|