From d4a82b8c2c4a5662ad437046e8b20199a655be40 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sat, 15 Feb 2020 20:49:49 +0000 Subject: added '--pl-next' and '--pl-prev' command line options git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9226 90c681e8-e032-0410-971d-27865f9a5e38 --- .../PlayListOption/playlistoption.cpp | 30 +++++++++++++++++++++- .../PlayListOption/playlistoption.h | 2 ++ src/qmmpui/playlistmanager.cpp | 5 ++++ src/qmmpui/playlistmanager.h | 4 +++ 4 files changed, 40 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp index b017b160a..2dc537284 100644 --- a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp +++ b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp @@ -34,7 +34,9 @@ void PlayListOption::registerOprions() registerOption(PL_LIST, "--pl-list", tr("List all available playlists")); registerOption(PL_DUMP, "--pl-dump", tr("Show playlist content"), QStringList() << "id"); registerOption(PL_PLAY, "--pl-play", tr("Play track in playlist "), QStringList() << "id" << "track"); - registerOption(PL_CLEAR, "--pl-clear", tr("Clear playlist"), QStringList() << "id"); + registerOption(PL_CLEAR, "--pl-clear", tr("Clear playlist"), QStringList() << "id"); + registerOption(PL_NEXT, "--pl-next", tr("Activate next playlist")); + registerOption(PL_PREV, "--pl-prev", tr("Activate previous playlist")); registerOption(PL_REPEATE_TOGGLE, "--pl-repeat-toggle", tr("Toggle playlist repeat")); registerOption(PL_SHUFFLE_TOGGLE, "--pl-shuffle-toggle", tr("Toggle playlist shuffle")); registerOption(PL_STATE, "--pl-state", tr("Show playlist options")); @@ -44,6 +46,8 @@ void PlayListOption::registerOprions() setOptionFlags(PL_DUMP, HiddenFromHelp); setOptionFlags(PL_PLAY, HiddenFromHelp); setOptionFlags(PL_CLEAR, HiddenFromHelp); + setOptionFlags(PL_NEXT, HiddenFromHelp); + setOptionFlags(PL_PREV, HiddenFromHelp); setOptionFlags(PL_REPEATE_TOGGLE, HiddenFromHelp); setOptionFlags(PL_SHUFFLE_TOGGLE, HiddenFromHelp); setOptionFlags(PL_STATE, HiddenFromHelp); @@ -75,6 +79,8 @@ QString PlayListOption::executeCommand(int id, const QStringList &args) << helpString(PL_DUMP) << helpString(PL_PLAY) << helpString(PL_CLEAR) + << helpString(PL_NEXT) + << helpString(PL_PREV) << helpString(PL_REPEATE_TOGGLE) << helpString(PL_SHUFFLE_TOGGLE) << helpString(PL_STATE); @@ -135,6 +141,28 @@ QString PlayListOption::executeCommand(int id, const QStringList &args) player->play(); } break; + case PL_NEXT: + { + bool playing = SoundCore::instance()->state() == Qmmp::Playing; + player->stop(); + pl_manager->selectPlayList(pl_manager->currentPlayList()); + pl_manager->selectNextPlayList(); + pl_manager->activateSelectedPlayList(); + if(playing) + player->play(); + } + break; + case PL_PREV: + { + bool playing = SoundCore::instance()->state() == Qmmp::Playing; + player->stop(); + pl_manager->selectPlayList(pl_manager->currentPlayList()); + pl_manager->selectPreviousPlayList(); + pl_manager->activateSelectedPlayList(); + if(playing) + player->play(); + } + break; case PL_CLEAR: { int id = args.isEmpty() ? pl_manager->currentPlayListIndex() : args.at(0).toInt() - 1; diff --git a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h index 60cf7c0b1..26cc5e195 100644 --- a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h +++ b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h @@ -48,6 +48,8 @@ private: PL_LIST, PL_DUMP, PL_PLAY, + PL_NEXT, + PL_PREV, PL_CLEAR, PL_REPEATE_TOGGLE, PL_SHUFFLE_TOGGLE, diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index 6029cf0f9..48480a299 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -168,6 +168,11 @@ void PlayListManager::activatePlayList(int index) activatePlayList(playListAt(index)); } +void PlayListManager::activateSelectedPlayList() +{ + activatePlayList(selectedPlayList()); +} + PlayListModel *PlayListManager::createPlayList(const QString &name) { PlayListModel *model = new PlayListModel (name.isEmpty() ? tr("Playlist") : name, this); diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h index 660d5ed14..7298b78a9 100644 --- a/src/qmmpui/playlistmanager.h +++ b/src/qmmpui/playlistmanager.h @@ -151,6 +151,10 @@ public slots: * Sets current playlist with index \b index. */ void activatePlayList(int index); + /*! + * Sets selected playlist as current. + */ + void activateSelectedPlayList(); /*! * Creates and selects new playlist with the given name \b name. */ -- cgit v1.2.3-13-gbd6f