diff options
author | Dominik Holland <dominik.holland@pelagicore.com> | 2017-03-09 09:09:24 +0100 |
---|---|---|
committer | Dominik Holland <dominik.holland@pelagicore.com> | 2017-03-09 12:52:28 +0000 |
commit | f56e495a54a792c11bd06d67e6f8ab05510750ad (patch) | |
tree | 43ef08c8e0a29409ca4f615666e35259482f8754 | |
parent | dec02bc3f29d684acbdf37510f8d4516fc72a308 (diff) | |
download | qtivi-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.cpp | 9 |
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) |