New audio devices dialog and handling: use variable global input volume

This commit is contained in:
f4exb 2017-01-06 15:28:01 +01:00
parent d8bcfb1360
commit 49fba5b103
4 changed files with 6 additions and 1 deletions

View File

@ -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);

View File

@ -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<AudioFifo*> AudioFifos;
AudioFifos m_audioFifos;

View File

@ -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);

View File

@ -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()