From b3476e4757d2bfe0529808779a04a98010f96516 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 21 Nov 2020 09:41:35 +0100 Subject: [PATCH] Audio output device: added volume control --- sdrbase/audio/audiooutputdevice.cpp | 11 +++++++++++ sdrbase/audio/audiooutputdevice.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/sdrbase/audio/audiooutputdevice.cpp b/sdrbase/audio/audiooutputdevice.cpp index 6c9770990..72e591d67 100644 --- a/sdrbase/audio/audiooutputdevice.cpp +++ b/sdrbase/audio/audiooutputdevice.cpp @@ -33,6 +33,7 @@ AudioOutputDevice::AudioOutputDevice() : m_udpChannelCodec(UDPCodecL16), m_audioUsageCount(0), m_onExit(false), + m_volume(1.0), m_audioFifos() { } @@ -114,6 +115,7 @@ bool AudioOutputDevice::start(int device, int rate) m_audioOutput = new QAudioOutput(devInfo, m_audioFormat); m_audioNetSink = new AudioNetSink(0, m_audioFormat.sampleRate(), false); + m_audioOutput->setVolume(m_volume); QIODevice::open(QIODevice::ReadOnly); @@ -341,3 +343,12 @@ qint64 AudioOutputDevice::writeData(const char* data, qint64 len) Q_UNUSED(len); return 0; } + +void AudioOutputDevice::setVolume(float volume) +{ + m_volume = volume; + + if (m_audioOutput) { + m_audioOutput->setVolume(m_volume); + } +} diff --git a/sdrbase/audio/audiooutputdevice.h b/sdrbase/audio/audiooutputdevice.h index fca55f0d1..13417dce1 100644 --- a/sdrbase/audio/audiooutputdevice.h +++ b/sdrbase/audio/audiooutputdevice.h @@ -71,6 +71,7 @@ public: void setUdpChannelMode(UDPChannelMode udpChannelMode); void setUdpChannelFormat(UDPChannelCodec udpChannelCodec, bool stereo, int sampleRate); void setUdpDecimation(uint32_t decimation); + void setVolume(float volume); private: QMutex m_mutex; @@ -81,6 +82,7 @@ private: UDPChannelCodec m_udpChannelCodec; uint m_audioUsageCount; bool m_onExit; + float m_volume; std::list m_audioFifos; std::vector m_mixBuffer;