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