diff options
Diffstat (limited to 'src/qmmpui/mediaplayer.cpp')
| -rw-r--r-- | src/qmmpui/mediaplayer.cpp | 28 |
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) |
