diff options
author | Yoann Lopes <yoann.lopes@qt.io> | 2016-05-19 16:38:11 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@qt.io> | 2016-06-03 21:12:02 +0000 |
commit | 838c12bce8d0d48ef50f485e6f611990742d7b8f (patch) | |
tree | 5260582241f92f586bcb11ad8ae84913ed5875f5 /examples/multimedia | |
parent | fe46759fc0a39418a3b5f32cf78a162c35a7aef7 (diff) |
Use new volume conversion API in examples.
Volumes sliders are now scaled cubically so that loudness changes
are perceived linearly.
Change-Id: Ibf00d6a97d872063d92457493417be5eb42f79ac
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'examples/multimedia')
-rw-r--r-- | examples/multimedia/audioinput/audioinput.cpp | 14 | ||||
-rw-r--r-- | examples/multimedia/audiooutput/audiooutput.cpp | 15 |
2 files changed, 23 insertions, 6 deletions
diff --git a/examples/multimedia/audioinput/audioinput.cpp b/examples/multimedia/audioinput/audioinput.cpp index fd73d4f16..da5966598 100644 --- a/examples/multimedia/audioinput/audioinput.cpp +++ b/examples/multimedia/audioinput/audioinput.cpp @@ -315,7 +315,10 @@ void InputTest::initializeAudio() void InputTest::createAudioInput() { m_audioInput = new QAudioInput(m_device, m_format, this); - m_volumeSlider->setValue(m_audioInput->volume() * 100); + qreal initialVolume = QAudio::convertVolume(m_audioInput->volume(), + QAudio::LinearVolumeScale, + QAudio::CubicVolumeScale); + m_volumeSlider->setValue(qRound(initialVolume * 100)); m_audioInfo->start(); m_audioInput->start(m_audioInfo); } @@ -386,6 +389,11 @@ void InputTest::deviceChanged(int index) void InputTest::sliderChanged(int value) { - if (m_audioInput) - m_audioInput->setVolume(qreal(value) / 100); + if (m_audioInput) { + qreal linearVolume = QAudio::convertVolume(value / qreal(100), + QAudio::CubicVolumeScale, + QAudio::LinearVolumeScale); + + m_audioInput->setVolume(linearVolume); + } } diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp index a00ffbb00..79e70bdc2 100644 --- a/examples/multimedia/audiooutput/audiooutput.cpp +++ b/examples/multimedia/audiooutput/audiooutput.cpp @@ -250,7 +250,11 @@ void AudioTest::createAudioOutput() m_audioOutput = new QAudioOutput(m_device, m_format, this); m_generator->start(); m_audioOutput->start(m_generator); - m_volumeSlider->setValue(int(m_audioOutput->volume()*100.0f)); + + qreal initialVolume = QAudio::convertVolume(m_audioOutput->volume(), + QAudio::LinearVolumeScale, + QAudio::CubicVolumeScale); + m_volumeSlider->setValue(qRound(initialVolume * 100)); } AudioTest::~AudioTest() @@ -270,8 +274,13 @@ void AudioTest::deviceChanged(int index) void AudioTest::volumeChanged(int value) { - if (m_audioOutput) - m_audioOutput->setVolume(qreal(value/100.0f)); + if (m_audioOutput) { + qreal linearVolume = QAudio::convertVolume(value / qreal(100), + QAudio::CubicVolumeScale, + QAudio::LinearVolumeScale); + + m_audioOutput->setVolume(linearVolume); + } } void AudioTest::pushTimerExpired() |