aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/mediaplayer.cpp28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/qmmpui/mediaplayer.cpp b/src/qmmpui/mediaplayer.cpp
index 04bddf6a2..c4dc178e0 100644
--- a/src/qmmpui/mediaplayer.cpp
+++ b/src/qmmpui/mediaplayer.cpp
@@ -22,6 +22,8 @@
#include <QString>
#include <QTranslator>
#include <QLocale>
+#include <qmmp/statechangedevent.h>
+#include <qmmp/metadatachangedevent.h>
#include "playlistitem.h"
#include "mediaplayer.h"
@@ -115,32 +117,18 @@ void MediaPlayer::stop()
void MediaPlayer::next()
{
- if (!m_pl_manager->currentPlayList()->next())
- {
- stop();
- return;
- }
- if (m_core->state() != Qmmp::Stopped)
- {
- stop();
+ bool playNext = m_core->state() != Qmmp::Stopped;
+ stop();
+ if (m_pl_manager->currentPlayList()->next() && playNext)
play();
- }
}
void MediaPlayer::previous()
{
- if (!m_pl_manager->currentPlayList()->previous())
- {
- stop();
- return;
- }
-
- if (m_core->state() != Qmmp::Stopped)
- {
- if (m_core->state() == Qmmp::Paused)
- stop();
+ bool playNext = m_core->state() != Qmmp::Stopped;
+ stop();
+ if (m_pl_manager->currentPlayList()->next() && playNext)
play();
- }
}
void MediaPlayer::setRepeatable(bool r)