summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2014-04-08 18:50:23 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-09 14:48:49 +0200
commita7b8872cd5de1908bb2daa08a32afb5bff879ac2 (patch)
treea80a7d96b6f652a4fe84b7c53c54fc83c6a7436f
parentf6e57f80a85f5341d2db074ca7c6ecd468b8ca7f (diff)
downloadqtmultimedia-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>
-rw-r--r--src/imports/multimedia/qdeclarativeaudio.cpp44
-rw-r--r--tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp2
2 files changed, 23 insertions, 23 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();
+ }
}
/*!
diff --git a/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp b/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp
index 57f820b54..fb946d760 100644
--- a/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp
+++ b/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp
@@ -777,7 +777,7 @@ void tst_QDeclarativeAudio::playbackRate()
audio.setPlaybackRate(2.0);
QCOMPARE(audio.playbackRate(), qreal(2.0));
QCOMPARE(provider.playerControl()->playbackRate(), qreal(2.0));
- QCOMPARE(spy.count(), 3);
+ QCOMPARE(spy.count(), 2);
}
void tst_QDeclarativeAudio::status()