diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2008-04-15 01:06:51 +0100 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2008-04-15 01:06:51 +0100 |
commit | e79f77ee055a7503e3e27e945933602d080ecd7b (patch) | |
tree | 683a2d446b45866646c7cf00c6710372dd5f2d48 /src/audio_out/audio_pulse_out.c | |
parent | f1925da5c80d4170425f6efb6ad68a2909074057 (diff) | |
parent | c440431caef75667ce807f49ec72e029d7e5037f (diff) | |
download | xine-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.c | 12 |
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 |