summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2017-03-09 09:09:24 +0100
committerDominik Holland <dominik.holland@pelagicore.com>2017-03-09 12:52:28 +0000
commitf56e495a54a792c11bd06d67e6f8ab05510750ad (patch)
tree43ef08c8e0a29409ca4f615666e35259482f8754
parentdec02bc3f29d684acbdf37510f8d4516fc72a308 (diff)
downloadqtivi-f56e495a54a792c11bd06d67e6f8ab05510750ad.tar.gz
media_simulator: Emit changes for currentIndex and currentTrack in sync
Previously it could happen that the currentIndex was changed before the new track had been identified, which lead to problems. Change-Id: I6348b99973be24210b573ef7a70cedc44a409080 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
-rw-r--r--src/plugins/ivimedia/media_simulator/mediaplayerbackend.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/ivimedia/media_simulator/mediaplayerbackend.cpp b/src/plugins/ivimedia/media_simulator/mediaplayerbackend.cpp
index f8aef75..a36ef26 100644
--- a/src/plugins/ivimedia/media_simulator/mediaplayerbackend.cpp
+++ b/src/plugins/ivimedia/media_simulator/mediaplayerbackend.cpp
@@ -242,11 +242,18 @@ void MediaPlayerBackend::doSqlOperation(MediaPlayerBackend::OperationType type,
if (type == MediaPlayerBackend::Select) {
emit dataFetched(list, start, list.count() >= count);
} else if (type == MediaPlayerBackend::SetIndex) {
+ if (list.isEmpty()) {
+ qWarning() << "SIMULATION: Can't set index in an empty queue";
+ return;
+ }
+
QIviAudioTrackItem item = list.at(0).value<QIviAudioTrackItem>();
bool playing = m_player->state() == QMediaPlayer::PlayingState;
m_player->setMedia(item.url());
if (playing)
m_player->play();
+
+ emit currentIndexChanged(start);
emit currentTrackChanged(list.at(0));
} else if (type == MediaPlayerBackend::Insert && start <= m_currentIndex) {
// A new Item has been inserted before currentIndex
@@ -324,8 +331,6 @@ void MediaPlayerBackend::setCurrentIndex(int index)
&MediaPlayerBackend::doSqlOperation,
MediaPlayerBackend::SetIndex,
queries, m_currentIndex, 0);
-
- emit currentIndexChanged(m_currentIndex);
}
void MediaPlayerBackend::onStateChanged(QMediaPlayer::State state)