- 17 Sep, 2011 2 commits
-
-
Max Kellermann authored
Provide _lock() and _unlock() to wrap all accesses from the mixer plugin.
-
Max Kellermann authored
Use these instead of exposing the internal roar_t struct.
-
- 31 Aug, 2011 1 commit
-
-
Max Kellermann authored
-
- 23 Aug, 2011 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 23 Mar, 2011 1 commit
-
-
Hans-Kristian Arntzen authored
Should fix build errors for Win32.
-
- 16 Mar, 2011 1 commit
-
-
Hans-Kristian Arntzen authored
-
- 09 Feb, 2011 1 commit
-
-
Thomas Jansen authored
Remove trailing whitespace found by this command: find -name '*.[ch]' | xargs grep "[[:space:]]$"
-
- 29 Jan, 2011 1 commit
-
-
Max Kellermann authored
-
- 28 Jan, 2011 1 commit
-
-
Dustin Puckett authored
Remote Audio Output Protocol (RAOP), for Apple devices.
-
- 08 Oct, 2010 1 commit
-
-
Denis Krjuchkov 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.
-
- 10 Nov, 2009 1 commit
-
-
Max Kellermann authored
Add a "mode" argument to open_cloexec() instead.
-
- 07 Nov, 2009 1 commit
-
-
Max Kellermann authored
Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
-
- 23 Oct, 2009 2 commits
-
-
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
It's possible to have a mixer implementation which does not explicitly need the methods open() and close().
-
- 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 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 06 Jul, 2009 1 commit
-
-
Max Kellermann authored
This mixer plugin may be used instead of the traditional global software mixer. It integrates with the "volume" filter plugin, and can control the software volume of an audio output which has no hardware mixer.
-
- 28 Apr, 2009 2 commits
-
-
Max Kellermann authored
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
-
Daniel Kahn Gillmor authored
This allows you to select controls with duplicate names.
-
- 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.
-
- 21 Apr, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 27 Mar, 2009 6 commits
-
-
Max Kellermann authored
Added an assertion in mixer_set_volume(). Removed the range checks from the ALSA and OSS plugins.
-
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.
-
- 26 Mar, 2009 6 commits
-
-
Max Kellermann authored
Use the same code style as the rest of MPD.
-
Max Kellermann authored
Don't initialize attributes which are only used in an open mixer. As long as nobody accesses them, their values are uninitialized and undefined.
-
Max Kellermann authored
The pm->volume attribute was allocated in pulse_mixer_init(), but is never freed. This leaks memory. Instead of adding the g_free() call to pulse_mixer_finish(), let's just make "volume" a static attribute of the pulse_mixer struct. That is easier to deal with.
-
Max Kellermann authored
When the MPD core knows that the pulse mixer is open, pm->mainloop and pm->context must be non-NULL.
-
Max Kellermann authored
The attributes "online" and "index" were not properly reinitialized after a close/open cycle.
-
Max Kellermann authored
Nobody needs to modify these strings. We can make them const, and convert config_dup_block_string() to config_get_block_string(). This also fixes memory leaks in the pulse mixer.
-