- 05 Mar, 2014 1 commit
-
-
Pete Beardmore authored
-fixes regression introduced by: '8d6fedf8 [PATCH] Mixer: add class MixerListener' -listener.OnMixerVolumeChanged() called GetVolume() which attempted to acquire the lock but as per 'pa_threaded_mainloop_lock()' documentation: This function may not be called inside the event loop thread. Events that are dispatched from the event loop thread are executed with this lock held -this patch seperates the underlying action of GetVolume() into a new GetVolumeInternal() function, to be called only when the lock is already held, as is the case for the listener.OnMixerVolumeChanged() call
-
- 19 Feb, 2014 1 commit
-
-
Max Kellermann authored
Use a listener interface instead of GlobalEvents.
-
- 06 Feb, 2014 2 commits
-
-
Max Kellermann authored
Passing a void pointer is unsafe.
-
Max Kellermann authored
-
- 05 Feb, 2014 1 commit
-
-
Max Kellermann authored
-
- 04 Feb, 2014 1 commit
-
-
Max Kellermann authored
-
- 24 Jan, 2014 1 commit
-
-
Max Kellermann authored
-
- 23 Jan, 2014 1 commit
-
-
Max Kellermann authored
-
- 13 Jan, 2014 1 commit
-
-
Max Kellermann authored
-
- 28 Nov, 2013 1 commit
-
-
Max Kellermann authored
-
- 28 Oct, 2013 1 commit
-
-
Max Kellermann authored
-
- 15 Oct, 2013 1 commit
-
-
Max Kellermann authored
-
- 02 Oct, 2013 1 commit
-
-
Max Kellermann authored
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
-
- 05 Sep, 2013 1 commit
-
-
Max Kellermann authored
Use only ConfigData.hxx in plugin sources to reduce header dependencies.
-
- 04 Sep, 2013 1 commit
-
-
Max Kellermann authored
Replaces GLib's GError.
-
- 04 Aug, 2013 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 16 Apr, 2013 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 22 Feb, 2013 1 commit
-
-
Max Kellermann authored
-
- 09 Jan, 2013 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 17 Sep, 2011 1 commit
-
-
Max Kellermann authored
Provide _lock() and _unlock() to wrap all accesses from the mixer plugin.
-
- 29 Jan, 2011 1 commit
-
-
Max Kellermann authored
-
- 01 Jan, 2010 1 commit
-
-
Avuton Olrich authored
-
- 12 Nov, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 23 Oct, 2009 1 commit
-
-
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.
-
- 22 Oct, 2009 1 commit
-
-
Max Kellermann authored
Moved the check from pulse_mixer_open() to pulse_mixer_update().
-
- 21 Oct, 2009 2 commits
-
-
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.
-
- 20 Oct, 2009 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 25 Apr, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 27 Mar, 2009 5 commits
-
-
Max Kellermann authored
There are numerous race conditions between the libpulse thread (pulse_mixer.c callbacks) and the rest of MPD. Protect the volatile attributes of the pulse_mixer struct with a mutex to fix that.
-
Max Kellermann authored
Eliminate one indent level. Also remove several debug useless debug messages.
-
Max Kellermann authored
Those parameters are used after all.
-
Max Kellermann authored
Don't mess with pulse_mixer.volume for setting the volume. This variable should only be used to transfer the current volume from sink_input_vol() to pulse_mixer_get_volume().
-
Max Kellermann authored
The pa_context_get_sink_input_info() function is asynchronous, and after it returns, libpulse does not guarantee that the operation has completed yet; in fact, it is not likely. Explicitly wait for the operation to complete. The code for the new pulse_wait_for_operation() function was inspired by mplayer and xine code.
-