From c814062dfff650762231f287524172110bd22ad3 Mon Sep 17 00:00:00 2001 From: Ling Hu Date: Wed, 28 Sep 2011 12:15:51 +1000 Subject: Fix volume change error on mono stream for soundeffect(pulseaudio) (Cherry-picked from 663df44fc8563c548c26a7ae21927b09664c28f2) Change-Id: I005071bc1a8b2eae4d0660042fc8986d61804c47 Reviewed-by: Michael Goddard Reviewed-by: Michael Goddard --- src/multimedia/effects/qsoundeffect_pulse_p.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/multimedia') diff --git a/src/multimedia/effects/qsoundeffect_pulse_p.cpp b/src/multimedia/effects/qsoundeffect_pulse_p.cpp index 4570f8fd5..f2483a9ed 100644 --- a/src/multimedia/effects/qsoundeffect_pulse_p.cpp +++ b/src/multimedia/effects/qsoundeffect_pulse_p.cpp @@ -129,8 +129,9 @@ public: inline pa_cvolume * calcVolume(pa_cvolume *dest, int soundEffectVolume) { - dest->channels = 2; - dest->values[0] = dest->values[1] = m_vol * soundEffectVolume / 100; + pa_volume_t v = m_vol * soundEffectVolume / 100; + for (int i = 0; i < dest->channels; ++i) + dest->values[i] = v; return dest; } @@ -394,6 +395,7 @@ void QSoundEffectPrivate::updateVolume() return; PulseDaemonLocker locker; pa_cvolume volume; + volume.channels = m_pulseSpec.channels; pa_operation_unref(pa_context_set_sink_input_volume(daemon()->context(), m_sinkInputId, daemon()->calcVolume(&volume, m_volume), setvolume_callback, this)); Q_ASSERT(pa_cvolume_valid(&volume)); #ifdef QT_PA_DEBUG -- cgit v1.2.3