aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/plugins/PulseOutputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-21config/Param: split block-specific attributes to new struct ConfigBlockMax Kellermann1-10/+10
The old struct config_param remains only for top-level string options.
2015-01-04output/pulse: add wrapper for pa_threaded_mainloop_signal()Max Kellermann1-7/+11
2015-01-04output/pulse: convert to classMax Kellermann1-1/+3
2015-01-04output/pulse: move more code into the structMax Kellermann1-75/+148
2015-01-04output/pulse: use AudioOutputWrapper::Init()Max Kellermann1-9/+7
2015-01-01Copyright year 2015Max Kellermann1-1/+1
2014-12-30output/pulse: move code into the structMax Kellermann1-284/+297
2014-12-29output/pulse: move initialization to constructorMax Kellermann1-5/+3
2014-12-29output/pulse: remove unnecessary initializationMax Kellermann1-2/+0
2014-12-29{mixer,output}/pulse: move code to LogPulseError()Max Kellermann1-6/+4
2014-12-29output/pulse: move SetError() to lib/pulse/Error.cxxMax Kellermann1-21/+17
2014-12-29{mixer,output}/pulse: use a common Domain instanceMax Kellermann1-12/+10
2014-10-25Set pulseaudio channel map to WAVE-EXSteven Newbury1-1/+5
Pulseaudio expects clients to specify their channel-map if the default (ALSA) map does not route the audio to the expected speakers. Many Google results suggest dealing with this by re-routing the audio channels with the appropriate ALSA plugin, but this will then simply break any clients which expect the default ALSA mapping. Virtually all media files and codecs, certainly flac, dca, a52, and of course anything based on Microsoft's WAVEFORMAT_EXTENSIBLE specification, assume the layout in the table here: http://en.wikipedia.org/wiki/Surround_sound#Standard_speaker_channels Fortunately, pulseaudio directly addresses this with a built-in channel map for WAVE-EX which can be set automatically in the stream sample-spec.
2014-09-05output/pulse: simplify _wait_for_operation()Max Kellermann1-6/+3
Eliminate the duplicate pa_operation_get_state() call.
2014-03-04PulseOutputPlugin: set icon namePete Beardmore1-0/+1
2014-02-24output/pulse: use setenv() instead of g_setenv()Max Kellermann1-3/+2
There is no advantage in using g_setenv().
2014-02-24output/pulse: remove bogus g_free() callMax Kellermann1-2/+0
2014-02-06mixer/Plugin: pass AudioOutput reference to init()Max Kellermann1-34/+30
Passing a void pointer is unsafe.
2014-01-29output: move functions into the AudioOutput structMax Kellermann1-1/+1
2014-01-29AudioOutput: pass plugin to constructorMax Kellermann1-1/+4
Make it "const".
2014-01-28AudioOutput: add constructor and destructorMax Kellermann1-1/+0
2014-01-28output: rename struct audio_output to AudioOutputMax Kellermann1-11/+11
2014-01-28OutputPlugin: rename struct audio_output_plugin to AudioOutputPluginMax Kellermann1-1/+1
2014-01-24Mixer*: move to mixer/Max Kellermann1-2/+2
2014-01-23output/*: move to output/plugins/Max Kellermann1-1/+1
2014-01-13copyright year 2014Max Kellermann1-1/+1
2013-10-02Log: new logging library APIMax Kellermann1-6/+9
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-04util/Error: new error passing libraryMax Kellermann1-87/+65
Replaces GLib's GError.
2013-09-04output/pulse: require libpulse 0.9.16Max Kellermann1-51/+3
Remove all #ifdefs. Old versions of libpulse are not being tested, and thus I'm removing support.
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-4/+4
2013-08-04OutputPlugin: pass config_param referenceMax Kellermann1-6/+6
2013-08-03audio_format: convert to C++Max Kellermann1-4/+4
2013-07-30output_api: convert to C++Max Kellermann1-1/+1
2013-04-16mixer/Pulse: convert to a classMax Kellermann1-4/+3
2013-04-16output/Pulse: convert to C++Max Kellermann1-147/+149
2013-02-22mixer_plugin: convert to C++Max Kellermann1-1/+1
2013-01-09mixer/{alsa,pulse}: convert to C++Max Kellermann1-1/+1
2012-08-14output/pulse: implement method delay()Max Kellermann1-7/+21
Reduce command latency while paused.
2012-08-14output/pulse: simplify _wait_stream()Max Kellermann1-55/+16
One large loop and only one pa_stream_get_state() call.
2011-09-19output_plugin: the plugin allocates the audio_output objectMax Kellermann1-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.
2011-09-17output/pulse: don't expose internal struct in public headerMax Kellermann1-0/+43
Provide _lock() and _unlock() to wrap all accesses from the mixer plugin.
2011-09-17output/pulse: move code to _setup_stream()Max Kellermann1-15/+36
2011-09-17output/pulse: improve lockingMax Kellermann1-11/+11
Always lock the main loop when operating on PULSE objects. Document this.
2011-09-16input/curl, output/pulse: fix "unused local variable" warningsMax Kellermann1-1/+2
2011-08-31output/pulse: reset callbacks before closing stream/contextMax Kellermann1-0/+10
Fixes assertion failure when a stream callback is invoked too late after a format change.
2011-08-31output/pulse: add function _delete_stream()Max Kellermann1-5/+16
Merge common code.
2011-08-31output/pulse: use _delete_context()Max Kellermann1-16/+15
Eliminate duplicate code.
2011-08-23output/pulse: fix deadlock when the stream was suspendedMax Kellermann1-0/+31
Check if the stream is suspended; wake up the main loop when it becomes suspended.
2011-08-23output/pulse: add assertionsMax Kellermann1-0/+30
2011-08-23output/pulse: return 0 on errorMax Kellermann1-1/+1
Not a bool.