diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2014-04-08 18:50:23 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-04-09 14:48:49 +0200 |
commit | a7b8872cd5de1908bb2daa08a32afb5bff879ac2 (patch) | |
tree | a80a7d96b6f652a4fe84b7c53c54fc83c6a7436f /src/imports/multimedia/qdeclarativeaudio.cpp | |
parent | f6e57f80a85f5341d2db074ca7c6ecd468b8ca7f (diff) | |
download | qtmultimedia-a7b8872cd5de1908bb2daa08a32afb5bff879ac2.tar.gz |
Fix some MediaPlayer properties returning wrong values.
Once the QML component is complete, don't cache any value anymore and
always ask the backend for the actual value.
Change-Id: I2c3ad55618e0532f713cfcc8258a70a1114fc975
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/imports/multimedia/qdeclarativeaudio.cpp')
-rw-r--r-- | src/imports/multimedia/qdeclarativeaudio.cpp | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/src/imports/multimedia/qdeclarativeaudio.cpp b/src/imports/multimedia/qdeclarativeaudio.cpp index 16828a4d1..37509b17e 100644 --- a/src/imports/multimedia/qdeclarativeaudio.cpp +++ b/src/imports/multimedia/qdeclarativeaudio.cpp @@ -290,15 +290,15 @@ void QDeclarativeAudio::setVolume(qreal volume) return; } - if (m_vol == volume) + if (this->volume() == volume) return; - m_vol = volume; - - if (m_complete) + if (m_complete) { m_player->setVolume(qRound(volume * 100)); - else + } else { + m_vol = volume; emit volumeChanged(); + } } bool QDeclarativeAudio::isMuted() const @@ -308,15 +308,15 @@ bool QDeclarativeAudio::isMuted() const void QDeclarativeAudio::setMuted(bool muted) { - if (m_muted == muted) + if (isMuted() == muted) return; - m_muted = muted; - - if (m_complete) + if (m_complete) { m_player->setMuted(muted); - else + } else { + m_muted = muted; emit mutedChanged(); + } } qreal QDeclarativeAudio::bufferProgress() const @@ -331,20 +331,20 @@ bool QDeclarativeAudio::isSeekable() const qreal QDeclarativeAudio::playbackRate() const { - return m_playbackRate; + return m_complete ? m_player->playbackRate() : m_playbackRate; } void QDeclarativeAudio::setPlaybackRate(qreal rate) { - if (m_playbackRate == rate) + if (playbackRate() == rate) return; - m_playbackRate = rate; - - if (m_complete) - m_player->setPlaybackRate(m_playbackRate); - else + if (m_complete) { + m_player->setPlaybackRate(rate); + } else { + m_playbackRate = rate; emit playbackRateChanged(); + } } QString QDeclarativeAudio::errorString() const @@ -426,12 +426,12 @@ void QDeclarativeAudio::seek(int position) if (this->position() == position) return; - m_position = position; - - if (m_complete) - m_player->setPosition(m_position); - else + if (m_complete) { + m_player->setPosition(position); + } else { + m_position = position; emit positionChanged(); + } } /*! |