summaryrefslogtreecommitdiff
path: root/src/audio_out/audio_pulse_out.c
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2008-04-15 01:06:51 +0100
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2008-04-15 01:06:51 +0100
commite79f77ee055a7503e3e27e945933602d080ecd7b (patch)
tree683a2d446b45866646c7cf00c6710372dd5f2d48 /src/audio_out/audio_pulse_out.c
parentf1925da5c80d4170425f6efb6ad68a2909074057 (diff)
parentc440431caef75667ce807f49ec72e029d7e5037f (diff)
downloadxine-lib-e79f77ee055a7503e3e27e945933602d080ecd7b.tar.gz
xine-lib-e79f77ee055a7503e3e27e945933602d080ecd7b.tar.bz2
Merge from 1.1.
--HG-- rename : debian/libxine1.install => debian/libxine2.install rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c
Diffstat (limited to 'src/audio_out/audio_pulse_out.c')
-rw-r--r--src/audio_out/audio_pulse_out.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/audio_out/audio_pulse_out.c b/src/audio_out/audio_pulse_out.c
index 9a1620e45..0c7790749 100644
--- a/src/audio_out/audio_pulse_out.c
+++ b/src/audio_out/audio_pulse_out.c
@@ -669,9 +669,15 @@ static int ao_pulse_set_property (ao_driver_t *this_gen, int property, int value
o = pa_context_set_sink_input_mute(this->context, pa_stream_get_index(this->stream),
value, __xine_pa_context_success_callback, this);
#else
- /* FIXME: breaks (volume=0 after unmuting) unless the volume is
- * adjusted first (due to swvolume not being initialised properly)
- */
+ /* Get the current volume, so we can restore it properly. */
+ o = pa_context_get_sink_input_info(this->context, pa_stream_get_index(this->stream),
+ __xine_pa_sink_info_callback, this);
+
+ if (o) {
+ wait_for_operation(this, o);
+ pa_operation_unref(o);
+ }
+
if ( value )
pa_cvolume_mute(&this->cvolume, pa_stream_get_sample_spec(this->stream)->channels);
else