| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
|
|
|
|
| |
This allows you to select controls with duplicate names.
|
|
|
|
|
| |
The doxygen invocation was misplaced: it was only defined when xmlto
is available.
|
|
|
|
|
|
| |
Database update was broken due to the dc.pipe!=NULL assertion. This
assertion is only valid while MPD decodes a song, not during database
update.
|
|
|
|
|
|
|
| |
libvorbis goes into a very long loop if we try to add data after a
flush was invoked by vorbis_analysis_wrote(0). This seems to be a
problem with the internal end-of-stream marker. Thus, we cannot reuse
the vorbis_dsp_state object.
|
|
|
|
|
|
|
| |
When the decoder thread has a pending command, send the STOP command
to cancel this command. Send STOP again if the decoder thread is
still running after that, just in case the decoder thread has executed
the previous command (which was overwritten).
|
|
|
|
|
| |
dc.pipe must be non-NULL while the decoder thread is running. Ensure
that with a load of assertions.
|
| |
|
|
|
|
|
| |
To determine whether to rewind the current song or to go to the
previous song, use a GTimer instead of manually diffing time(NULL).
|
|
|
|
|
|
| |
Using two different kinds of locks may result in a race condition with
a deadlock. The libpulse callbacks need no locks at all, because the
mainloop object can be assumed to be already locked.
|
|
|
|
|
| |
The old global settings "http_proxy_host", "http_proxy_port",
"http_proxy_user" and "http_proxy_password" continue to work.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
$(TAG_SRC) contains the names of all tag reader source files. Some of
these are required for test/run_decoder.
|
| |
|
| |
|
|
|
|
|
|
| |
When all audio outputs have been closed due to failures, pause the
playback instead of stopping it. This way, the user may resume
at the current position after the problem has been dealt with.
|
|
|
|
|
|
|
|
|
| |
When no audio outputs could be opened while seeking, leave MPD seeked
at that position and pause playback. The user may continue from this
point at any time, as soon as the audio outputs are fixed. The old
behaviour triggered an assertion failure: the failure wasn't passed
properly to the do_play() function, which attempted to play audio
chunks.
|
|
|
|
|
| |
spl_append_song() can crash when fopen() fails, because it attempts to
close the invalid file handle (NULL) in the error handler.
|
|
|
|
|
| |
Call snd_config_update_free_global() manually in our finish() method,
don't use atexit().
|
|
|
|
|
|
|
|
| |
snd_config_update_free_global() frees cached ALSA configuration. This
keeps valgrind a little bit more quiet. This patch moves the call
from the open() method into the finish() method, which seems more
natural: it allows the use of the config cache, and improves the
cleanup phase.
|
|
|
|
|
|
| |
This little program is used to test mixer plugins in an isolated
environment. This is ALSA-only currently, because we don't have a
real "plugin list" yet, and I'm too lazy to implement a switch.
|
|
|
|
|
| |
For non-global mixers (only "pulse" currently), close the mixer when
MPD playback is paused.
|
|
|
|
|
| |
This patch fixes a memory leak: the fifo_buffer object was not freed
when the client connection was closed.
|
|
|
|
|
| |
When no C++ compiler is found, let CXX fall back to $CC, and disable
all features which require C++.
|
|
|
|
| |
Set sidplay to "auto" by default, and enable it when it's found.
|
|
|
|
| |
We still can't use the pkg-config file because it requires libtool.
|
|
|
|
| |
Checks for features should be right next to its argument definition.
|
|
|
|
| |
This function checks whether a prerequisite for a feature was found.
|
|
|
|
|
|
| |
When MPD_AUTO_DISABLED prints a fatal error message, include the
feature name. This might be an important piece of information for the
user, just in case the preceding line doesn't tell him.
|
|
|
|
| |
Fail if the iso9660 plugin is enabled but not found.
|
|
|
|
| |
Fail if the zzip plugin is enabled but not found.
|
| |
|
|
|
|
|
| |
icy_server_metadata_string() is only called by
icy_server_metadata_page().
|
|
|
|
| |
Plain "bool" consumes only one byte instead of four.
|
|
|
|
| |
In HTTP, header names are case insensitive.
|
|
|
|
|
|
| |
[mk: folded with patch "Put icy related functions in extra source
files"; moved icy_server.c from HAVE_CURL to ENABLE_HTTPD_OUTPUT;
removed an unused variable]
|
|
|
|
|
|
| |
When a new song starts playing, send its tag (song->tag) to the music
pipe. This allows output plugins to render tags for all songs, not
only those with embedded tags understood by the decoder plugin.
|
| |
|
|
|
|
|
| |
Most of that was already implemented, and for other feature requests,
we have the bug tracker.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
A <varlistentry> was accidentally added before the
beginning of the intended <variablelist>
|
| |
|
| |
|
| |
|
| |
|
| |
|