diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-19 17:45:50 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-19 17:45:50 +0000 |
| commit | c8f1c3d7a85f2c73d338401433e96a46941e7d37 (patch) | |
| tree | 8a4b4bb25fe1b860a94491cb52be03407c45a28e | |
| parent | 0ab7b051e4731dd0c2bb2e7769781bef74a81759 (diff) | |
| download | qmmp-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
| -rw-r--r-- | src/qmmpui/mediaplayer.cpp | 27 |
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); |
