| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| | |
Return early on error, save one level of indent.
|
| |
| |
| |
| |
| |
| | |
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".
|
| |
| |
| |
| |
| |
| | |
This buggy implementation failed to allow "..." sequences, because the
dot count was always zero. The usefulness of allowing "..." (or more
dots) is debatable, but since it's a valid file name, we allow it.
|
| |
| |
| |
| |
| |
| |
| |
| | |
libcue's track_get_length() returns 0 for the last track, because that
information is not available in the CUE sheet. This makes MPD quit
playing the last track immediately. If we set "song.end_ms=0", MPD
will play the track until the end of the song file, which is what we
want.
|
| | |
|
| |
| |
| |
| | |
Fixes an assertion failure in the input_stream_seek() call.
|
| |
| |
| |
| |
| |
| | |
I've attached a patch that will make file URIs work on operating systems
that provide the getpeereid() function call to check the user ID of the
peer connected to a UNIX domain socket.
|
| |
| |
| |
| |
| |
| | |
this greatly improves performance of commands that return a lot
of data, e.g. search results or recursive content of a directory,
while being connected to local mpd via tcp/ip socket.
|
| |
| |
| |
| | |
Workaround for an assertion failure.
|
| | |
|
| |
| |
| |
| |
| | |
Rename the function to playlist_song_started(), which gets only called
if the song has actually started.
|
| |
| |
| |
| | |
Race condition fix.
|
| |
| |
| |
| | |
Fixes a clang warning.
|
| |
| |
| |
| |
| |
| | |
libwrap support is in MPD but only for the control port. This patch
adds support for the http port. The code is copied from
src/client_new.c
|
| |
| |
| |
| | |
Print those files which can be handled by a playlist plugin.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
There is no useful return value here.
|
| | |
|
| |
| |
| |
| |
| | |
The return value of Player_LoadTitle() is allocated with malloc(), and
must be freed by the caller.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Added macros with better names: GME_BUFFER_FRAMES, GME_BUFFER_SAMPLES
(the former only used to calculate the latter).
|
| |
| |
| |
| | |
Move into enums.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Pass sizeof(buf) to decoder_data(), not the number of samples (which
is half the size). At the same time, pass GME_BUF_SIZE to gme_play()
- libgme really wants to get the number of samples, not the number of
stereo frames. Previously, this plugin had been using only the first
half of the buffer.
|
| |
| |
| |
| | |
Allocate the "tag" object after the file has been opened successfully.
|
| |
| |
| |
| |
| | |
Allocate the "tag" object after the file has been checked. That
removes one tag_free() call in an error handler.
|
| | |
|
| |
| |
| |
| | |
Allocate only one item on the stack.
|
| | |
|
| |
| |
| |
| | |
Reuse the function tag_name_parse_i().
|
| | |
|
| |
| |
| |
| | |
Reuse the function tag_name_parse_i().
|
| | |
|
| | |
|
| |
| |
| |
| | |
This allows tags in archive files.
|
| | |
|
| |
| |
| |
| | |
Initialize the ov_callbacks struct at compile time.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This is probably unsafe, and doesn't protect against symlink loops,
but we will eventually add this when we bring update*.c and inotify*.c
closer together.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This shouldn't really happen, but insane users might delete/rename the
music directory while MPD runs. What was even more insane was that
MPD crashed due to this. This is a workaround - there is currently
nothing useful we can do in this case; except maybe poll for the music
directory to reappear, but that's too much trouble for a user error.
|
| |
| |
| |
| |
| | |
I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it
might be better than nothing.
|
| |
| |
| |
| | |
Convert if/else/else/... to a loop.
|
| |
| |
| |
| |
| | |
The underlying library is named "libmp4ff". To reduce confusion,
rename the plugin to a more specific name.
|
| |
| |
| |
| | |
Allow code sharing.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I took these tag names from a MusePack sample file I got from a user.
These are not documented in the APE specification:
http://wiki.hydrogenaudio.org/index.php?title=APE_key
People seem to be using undocumented extensions to the specification
anyway, and the best we can do is attempt to support them.
|