aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/pulse_output_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* output/pulse: implement method delay()Max Kellermann2012-08-141-7/+21
| | | | Reduce command latency while paused.
* output/pulse: simplify _wait_stream()Max Kellermann2012-08-141-55/+16
| | | | One large loop and only one pa_stream_get_state() call.
* output_plugin: the plugin allocates the audio_output objectMax Kellermann2011-09-191-23/+30
| | | | | | Pass audio_output objects around instead of void pointers. This will give some more control to the plugin, and prepares for non-blocking audio outputs.
* Merge branch 'v0.16.x'Max Kellermann2011-09-171-11/+11
|\
| * output/pulse: improve lockingMax Kellermann2011-09-171-11/+11
| | | | | | | | | | Always lock the main loop when operating on PULSE objects. Document this.
* | output/pulse: don't expose internal struct in public headerMax Kellermann2011-09-171-0/+43
| | | | | | | | | | Provide _lock() and _unlock() to wrap all accesses from the mixer plugin.
* | output/pulse: move code to _setup_stream()Max Kellermann2011-09-171-15/+36
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-161-1/+2
|\|
| * input/curl, output/pulse: fix "unused local variable" warningsMax Kellermann2011-09-161-1/+2
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-011-21/+41
|\| | | | | | | | | | | Conflicts: configure.ac src/output_control.c
| * output/pulse: reset callbacks before closing stream/contextMax Kellermann2011-08-311-0/+10
| | | | | | | | | | Fixes assertion failure when a stream callback is invoked too late after a format change.
| * output/pulse: add function _delete_stream()Max Kellermann2011-08-311-5/+16
| | | | | | | | Merge common code.
| * output/pulse: use _delete_context()Max Kellermann2011-08-311-16/+15
| | | | | | | | Eliminate duplicate code.
* | Merge branch 'v0.16.x'Max Kellermann2011-08-241-2/+65
|\|
| * output/pulse: fix deadlock when the stream was suspendedMax Kellermann2011-08-231-0/+31
| | | | | | | | | | Check if the stream is suspended; wake up the main loop when it becomes suspended.
| * output/pulse: add assertionsMax Kellermann2011-08-231-0/+30
| |
| * output/pulse: return 0 on errorMax Kellermann2011-08-231-1/+1
| | | | | | | | Not a bool.
| * pulse/output: fix deadlock when resuming the streamMax Kellermann2011-08-231-1/+3
| | | | | | | | Unlock the mainloop in all code paths.
* | copyright year 2011Max Kellermann2011-01-291-1/+1
|/
* output/pulse: clear the "mainloop" attribute on errorMax Kellermann2010-01-171-2/+3
| | | | | | | | When enabling the pulse device fails, clear po->mainloop after pa_threaded_mainloop_free() has finished. This is important for the assertions. Two wrong g_free() calls were also removed.
* Update copyright notices.Avuton Olrich2009-12-311-1/+1
|
* audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-021-1/+1
| | | | | | This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
* include config.h in all sourcesMax Kellermann2009-11-121-0/+1
| | | | | | 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.
* output/pulse: initialize pulse_output.mixerMax Kellermann2009-10-291-0/+1
| | | | This variable was uninitialized and led to crashes.
* output/pulse: implement methods enable()/disable()Max Kellermann2009-10-231-9/+35
| | | | Don't connect to PulseAudio before MPD has daemonized.
* output_plugin: added methods enable() and disable()Max Kellermann2009-10-231-0/+2
| | | | | | | 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.
* output/pulse: call mixer on state changesMax Kellermann2009-10-231-1/+104
| | | | | | 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.
* pulse: code rewrite using the asynchronous libpulse APIMax Kellermann2009-10-211-73/+581
| | | | | | | | 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".
* output/pulse: renamed context to "Music Player Daemon"Max Kellermann2009-10-201-1/+1
| | | | This looks nicer in the PulseAudio manager than just "mpd".
* pulse: renamed source filesMax Kellermann2009-10-201-0/+183