diff --git a/sdrbase/audio/audioinput.cpp b/sdrbase/audio/audioinput.cpp index 05b9b5dd6..40e188b66 100644 --- a/sdrbase/audio/audioinput.cpp +++ b/sdrbase/audio/audioinput.cpp @@ -26,6 +26,7 @@ AudioInput::AudioInput() : m_audioInput(0), m_audioUsageCount(0), m_onExit(false), + m_volume(0.5f), m_audioFifos() { } @@ -95,7 +96,7 @@ bool AudioInput::start(int device, int rate) } m_audioInput = new QAudioInput(devInfo, m_audioFormat); - m_audioInput->setVolume(0.2); // TODO: take it from global parameters + m_audioInput->setVolume(m_volume); QIODevice::open(QIODevice::ReadWrite); diff --git a/sdrbase/audio/audioinput.h b/sdrbase/audio/audioinput.h index 196ae0459..39e7ed40c 100644 --- a/sdrbase/audio/audioinput.h +++ b/sdrbase/audio/audioinput.h @@ -42,12 +42,14 @@ public: uint getRate() const { return m_audioFormat.sampleRate(); } void setOnExit(bool onExit) { m_onExit = onExit; } + void setVolume(float volume) { m_volume = volume; } private: QMutex m_mutex; QAudioInput* m_audioInput; uint m_audioUsageCount; bool m_onExit; + float m_volume; typedef std::list AudioFifos; AudioFifos m_audioFifos; diff --git a/sdrbase/dsp/dspengine.h b/sdrbase/dsp/dspengine.h index 3a9db7665..30955636f 100644 --- a/sdrbase/dsp/dspengine.h +++ b/sdrbase/dsp/dspengine.h @@ -55,6 +55,7 @@ public: void stopAudioInput(); void startAudioInputImmediate(); void stopAudioInputImmediate(); + void setAudioInputVolume(float volume) { m_audioInput.setVolume(volume); } DSPDeviceSourceEngine *getDeviceSourceEngineByIndex(uint deviceIndex) { return m_deviceSourceEngines[deviceIndex]; } DSPDeviceSourceEngine *getDeviceSourceEngineByUID(uint uid); diff --git a/sdrbase/mainwindow.cpp b/sdrbase/mainwindow.cpp index ec6b4c679..d548e2100 100644 --- a/sdrbase/mainwindow.cpp +++ b/sdrbase/mainwindow.cpp @@ -739,6 +739,7 @@ void MainWindow::on_action_Audio_triggered() { AudioDialog audioDialog(m_audioDeviceInfo, this); audioDialog.exec(); + m_dspEngine->setAudioInputVolume(m_audioDeviceInfo->getInputVolume()); } void MainWindow::on_action_My_Position_triggered()