diff options
-rw-r--r-- | src/plugins/pulseaudio/qaudioinput_pulse.cpp | 5 | ||||
-rw-r--r-- | src/plugins/pulseaudio/qaudioinput_pulse.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/pulseaudio/qaudioinput_pulse.cpp b/src/plugins/pulseaudio/qaudioinput_pulse.cpp index 1a34d594d..77b438ff9 100644 --- a/src/plugins/pulseaudio/qaudioinput_pulse.cpp +++ b/src/plugins/pulseaudio/qaudioinput_pulse.cpp @@ -150,6 +150,7 @@ QPulseAudioInput::QPulseAudioInput(const QByteArray &device) , m_errorState(QAudio::NoError) , m_deviceState(QAudio::StoppedState) , m_volume(qreal(1.0f)) + , m_customVolumeRequired(false) , m_pullMode(true) , m_opened(false) , m_bytesAvailable(0) @@ -355,7 +356,8 @@ bool QPulseAudioInput::open() if (actualBufferAttr->tlength != (uint32_t)-1) m_bufferSize = actualBufferAttr->tlength; - setPulseVolume(); + if (m_customVolumeRequired) + setPulseVolume(); pulseEngine->unlock(); @@ -568,6 +570,7 @@ void QPulseAudioInput::setVolume(qreal vol) if (vol >= 0.0 && vol <= 1.0) { QPulseAudioEngine *pulseEngine = QPulseAudioEngine::instance(); pulseEngine->lock(); + m_customVolumeRequired = true; if (!qFuzzyCompare(m_volume, vol)) { m_volume = vol; if (m_opened) { diff --git a/src/plugins/pulseaudio/qaudioinput_pulse.h b/src/plugins/pulseaudio/qaudioinput_pulse.h index b7f7e7f10..971c8d74b 100644 --- a/src/plugins/pulseaudio/qaudioinput_pulse.h +++ b/src/plugins/pulseaudio/qaudioinput_pulse.h @@ -100,6 +100,7 @@ public: QAudio::Error m_errorState; QAudio::State m_deviceState; qreal m_volume; + bool m_customVolumeRequired; pa_cvolume m_chVolume; private slots: |