- 29 Oct, 2009 4 commits
-
-
Max Kellermann authored
drain() is the opposite of cancel(): it waits until all data in the buffer has finished playing. Instead of implicitly draining in the close() method like the ALSA plugin has been doing it forever, let the output thread decide whether to drain or to cancel.
-
Max Kellermann authored
The recovery is for nothing if we get CLOSE afterwards. Let's not recover in the cancel() method, and let the next play() call sort it out.
-
Max Kellermann authored
Don't call filter_close() right after ao_close().
-
Max Kellermann authored
This variable was uninitialized and led to crashes.
-
- 28 Oct, 2009 1 commit
-
-
Max Kellermann authored
libavformat gives us the song artist in the "author" field. Since we use av_metadata_conv(), we don't need to check for "artist".
-
- 27 Oct, 2009 1 commit
-
-
Alam Arias authored
-
- 26 Oct, 2009 2 commits
-
-
Viliam Mateicka authored
-
Viliam Mateicka authored
-
- 24 Oct, 2009 2 commits
-
-
Viliam Mateicka authored
-
Viliam Mateicka authored
-
- 23 Oct, 2009 7 commits
-
-
Max Kellermann authored
Don't connect to JACK before MPD has daemonized.
-
Max Kellermann authored
Don't connect to PulseAudio before MPD has daemonized.
-
Max Kellermann authored
With these methods, an output plugin can allocate some global resources only if it is actually enabled. The method enable() is called after daemonization, which allows for more sophisticated resource allocation during that method.
-
Max Kellermann authored
Don't let the mixer plugin "override" the libpulse callbacks. Instead, add a "mixer" attribute to the pulse_output struct, and call the mixer on all interesting events.
-
Max Kellermann authored
A mixer is useful enough if it can be read. Setting it may be found unavailable at runtime.
-
Max Kellermann authored
If the method get_volume() returns -1 and no error object is set, then the volume is currently unavailable, but the mixer should not be closed immediately.
-
Max Kellermann authored
It's possible to have a mixer implementation which does not explicitly need the methods open() and close().
-
- 22 Oct, 2009 6 commits
-
-
Max Kellermann authored
Moved the check from pulse_mixer_open() to pulse_mixer_update().
-
Max Kellermann authored
-
Max Kellermann authored
Don't clutter the top directory with *.o files.
-
Max Kellermann authored
There's no point in clearing the audio format before exiting.
-
Max Kellermann authored
This way, the function call in the main() function does not need another pair of #ifdef/#endif.
-
SF Markus Elfring authored
-
- 21 Oct, 2009 16 commits
-
-
Max Kellermann authored
Based on the XSPF playlist plugin.
-
Max Kellermann authored
Added a missing "break".
-
Max Kellermann authored
An asterisk means that this attribute should not be enforced, and stays whatever it used to be. This way, some configuration values work like masks.
-
Max Kellermann authored
-
Max Kellermann authored
This allows more sophisticated audio format selection.
-
Max Kellermann authored
It's a double pointer.
-
Max Kellermann authored
The value is always non-NULL.
-
Max Kellermann authored
-
Max Kellermann authored
.. and keep up the JACK connection while MPD runs. Allocate the ring buffers on the first open, and free them at MPD exit.
-
Max Kellermann authored
JACK doesn't need cancel() because it won't do much anyway. Buffers are small.
-
Max Kellermann authored
It's a double pointer.
-
Max Kellermann authored
Don't disconnect from JACK during pause.
-
Max Kellermann authored
-
Max Kellermann authored
This is a complete rewrite of the PulseAudio output plugin. It uses the asynchronous API, which gives us more control over everything. Additionally, it connects to the PulseAudio server on startup, and keeps this connection up while MPD runs. During pause, instead of closing the stream, it enables "cork".
-
Max Kellermann authored
This allows the mixer object to access its associated audio output object.
-
Max Kellermann authored
Flush the hardware volume cache, and send the MIXER idle event. This allows mixer plugins to detect volume changes.
-
- 20 Oct, 2009 1 commit
-
-
Max Kellermann authored
-