aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-19 17:45:50 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-19 17:45:50 +0000
commitc8f1c3d7a85f2c73d338401433e96a46941e7d37 (patch)
tree8a4b4bb25fe1b860a94491cb52be03407c45a28e /src
parent0ab7b051e4731dd0c2bb2e7769781bef74a81759 (diff)
downloadqmmp-c8f1c3d7a85f2c73d338401433e96a46941e7d37.tar.gz
qmmp-c8f1c3d7a85f2c73d338401433e96a46941e7d37.tar.bz2
qmmp-c8f1c3d7a85f2c73d338401433e96a46941e7d37.zip
playlist transition implementation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9231 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/qmmpui/mediaplayer.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/qmmpui/mediaplayer.cpp b/src/qmmpui/mediaplayer.cpp
index f6db0a0ec..d6f2d9975 100644
--- a/src/qmmpui/mediaplayer.cpp
+++ b/src/qmmpui/mediaplayer.cpp
@@ -133,7 +133,25 @@ void MediaPlayer::playNext()
}
if (!m_pl_manager->currentPlayList()->next())
{
- stop();
+ if(!m_settings->isPlayListTransitionEnabled())
+ {
+ stop();
+ return;
+ }
+ //next playlist
+ int index = m_pl_manager->currentPlayListIndex() + 1;
+ PlayListModel *nextPlayList = index < m_pl_manager->count() ? m_pl_manager->playListAt(index) : nullptr;
+ PlayListTrack *nextTrack = nextPlayList ? nextPlayList->currentTrack() : nullptr;
+ if(nextTrack)
+ {
+ m_pl_manager->selectPlayList(nextPlayList);
+ m_pl_manager->activatePlayList(nextPlayList);
+ play();
+ }
+ else
+ {
+ stop();
+ }
return;
}
play();
@@ -148,6 +166,13 @@ void MediaPlayer::updateNextUrl()
else if(!m_settings->isNoPlayListAdvance())
track = m_pl_manager->currentPlayList()->nextTrack();
+ if(!track && m_settings->isPlayListTransitionEnabled())
+ {
+ int index = m_pl_manager->currentPlayListIndex() + 1;
+ PlayListModel *nextPlayList = index < m_pl_manager->count() ? m_pl_manager->playListAt(index) : nullptr;
+ track = nextPlayList ? nextPlayList->currentTrack() : nullptr;
+ }
+
if(track)
{
bool ok = m_core->play(track->path(), true);