diff options
author | Christian Strømme <christian.stromme@digia.com> | 2013-11-25 14:17:51 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-28 14:12:22 +0100 |
commit | 0fd995ac8b58b460f0740699cee9a221a66f6b56 (patch) | |
tree | e06e560fb8329c7d1726c1c97f6384e1e2567fd6 /src/multimedia/audio | |
parent | 1cf737648b2c5cf9636e6be814b4879b67d7e0a0 (diff) |
Don't use integers to describe volume internally in QSoundEffect.
The public api takes floating point values and so does most of the back-
ends. Conversion should be done in the back-ends that expect other value
types to avoid unnecessary float -> int -> float conversions.
Change-Id: I0ee1bfbe350f985294c20f897ffa3bd55288b4c9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Diffstat (limited to 'src/multimedia/audio')
-rw-r--r-- | src/multimedia/audio/qsoundeffect.cpp | 10 | ||||
-rw-r--r-- | src/multimedia/audio/qsoundeffect_pulse_p.cpp | 8 | ||||
-rw-r--r-- | src/multimedia/audio/qsoundeffect_pulse_p.h | 6 | ||||
-rw-r--r-- | src/multimedia/audio/qsoundeffect_qaudio_p.cpp | 14 | ||||
-rw-r--r-- | src/multimedia/audio/qsoundeffect_qaudio_p.h | 6 |
5 files changed, 22 insertions, 22 deletions
diff --git a/src/multimedia/audio/qsoundeffect.cpp b/src/multimedia/audio/qsoundeffect.cpp index 437d3a4e6..cd7a9ad5d 100644 --- a/src/multimedia/audio/qsoundeffect.cpp +++ b/src/multimedia/audio/qsoundeffect.cpp @@ -265,7 +265,7 @@ int QSoundEffect::loopsRemaining() const */ qreal QSoundEffect::volume() const { - return qreal(d->volume()) / 100; + return d->volume(); } /*! @@ -273,15 +273,15 @@ qreal QSoundEffect::volume() const */ void QSoundEffect::setVolume(qreal volume) { - if (volume < 0 || volume > 1) { + if (volume < qreal(0.0) || volume > qreal(1.0)) { qWarning("SoundEffect: volume should be between 0.0 and 1.0"); return; } - int iVolume = qRound(volume * 100); - if (d->volume() == iVolume) + + if (qFuzzyCompare(d->volume(), volume)) return; - d->setVolume(iVolume); + d->setVolume(volume); } /*! diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp index 328a3b0b3..8bac6c998 100644 --- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp +++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp @@ -382,7 +382,7 @@ QSoundEffectPrivate::QSoundEffectPrivate(QObject* parent): m_muted(false), m_playQueued(false), m_stopping(false), - m_volume(100), + m_volume(1.0), m_loopCount(1), m_runningCount(0), m_reloadCategory(false), @@ -517,12 +517,12 @@ void QSoundEffectPrivate::setLoopCount(int loopCount) m_loopCount = loopCount; } -int QSoundEffectPrivate::volume() const +qreal QSoundEffectPrivate::volume() const { return m_volume; } -void QSoundEffectPrivate::setVolume(int volume) +void QSoundEffectPrivate::setVolume(qreal volume) { m_volume = volume; emit volumeChanged(); @@ -537,7 +537,7 @@ void QSoundEffectPrivate::updateVolume() pa_cvolume volume; volume.channels = m_pulseSpec.channels; if (pulseDaemon()->context()) - pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, m_volume), setvolume_callback, m_ref->getRef())); + pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, qRound(m_volume * 100)), setvolume_callback, m_ref->getRef())); Q_ASSERT(pa_cvolume_valid(&volume)); #ifdef QT_PA_DEBUG qDebug() << this << "updateVolume =" << pa_cvolume_max(&volume); diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.h b/src/multimedia/audio/qsoundeffect_pulse_p.h index 4dc58f0b6..042679180 100644 --- a/src/multimedia/audio/qsoundeffect_pulse_p.h +++ b/src/multimedia/audio/qsoundeffect_pulse_p.h @@ -80,8 +80,8 @@ public: int loopCount() const; int loopsRemaining() const; void setLoopCount(int loopCount); - int volume() const; - void setVolume(int volume); + qreal volume() const; + void setVolume(qreal volume); bool isMuted() const; void setMuted(bool muted); bool isLoaded() const; @@ -153,7 +153,7 @@ private: bool m_muted; bool m_playQueued; bool m_stopping; - int m_volume; + qreal m_volume; int m_loopCount; int m_runningCount; QUrl m_source; diff --git a/src/multimedia/audio/qsoundeffect_qaudio_p.cpp b/src/multimedia/audio/qsoundeffect_qaudio_p.cpp index 2de1b0067..aed8a7aea 100644 --- a/src/multimedia/audio/qsoundeffect_qaudio_p.cpp +++ b/src/multimedia/audio/qsoundeffect_qaudio_p.cpp @@ -175,20 +175,20 @@ void QSoundEffectPrivate::setLoopCount(int loopCount) d->m_runningCount = loopCount; } -int QSoundEffectPrivate::volume() const +qreal QSoundEffectPrivate::volume() const { if (d->m_audioOutput && !d->m_muted) - return d->m_audioOutput->volume()*100.0f; + return d->m_audioOutput->volume(); return d->m_volume; } -void QSoundEffectPrivate::setVolume(int volume) +void QSoundEffectPrivate::setVolume(qreal volume) { d->m_volume = volume; if (d->m_audioOutput && !d->m_muted) - d->m_audioOutput->setVolume(volume/100.0f); + d->m_audioOutput->setVolume(volume); emit volumeChanged(); } @@ -203,7 +203,7 @@ void QSoundEffectPrivate::setMuted(bool muted) if (muted && d->m_audioOutput) d->m_audioOutput->setVolume(0); else if (!muted && d->m_audioOutput && d->m_muted) - d->m_audioOutput->setVolume(d->m_volume/100.0f); + d->m_audioOutput->setVolume(d->m_volume); d->m_muted = muted; emit mutedChanged(); @@ -314,7 +314,7 @@ PrivateSoundSource::PrivateSoundSource(QSoundEffectPrivate* s): m_audioOutput(0), m_sample(0), m_muted(false), - m_volume(100), + m_volume(1.0), m_sampleReady(false), m_offset(0) { @@ -337,7 +337,7 @@ void PrivateSoundSource::sampleReady() m_audioOutput = new QAudioOutput(m_sample->format()); connect(m_audioOutput,SIGNAL(stateChanged(QAudio::State)), this, SLOT(stateChanged(QAudio::State))); if (!m_muted) - m_audioOutput->setVolume(m_volume/100.0f); + m_audioOutput->setVolume(m_volume); else m_audioOutput->setVolume(0); } diff --git a/src/multimedia/audio/qsoundeffect_qaudio_p.h b/src/multimedia/audio/qsoundeffect_qaudio_p.h index 8dfd7826a..c1762672d 100644 --- a/src/multimedia/audio/qsoundeffect_qaudio_p.h +++ b/src/multimedia/audio/qsoundeffect_qaudio_p.h @@ -88,7 +88,7 @@ private: QAudioOutput *m_audioOutput; QSample *m_sample; bool m_muted; - int m_volume; + qreal m_volume; bool m_sampleReady; qint64 m_offset; QString m_category; @@ -113,8 +113,8 @@ public: int loopCount() const; int loopsRemaining() const; void setLoopCount(int loopCount); - int volume() const; - void setVolume(int volume); + qreal volume() const; + void setVolume(qreal volume); bool isMuted() const; void setMuted(bool muted); bool isLoaded() const; |