aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/mediaplayer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-03-02 19:13:55 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-03-02 19:13:55 +0000
commitffef9491700965c061f4bdb7dd61c125d2eb2bf9 (patch)
treee1f08a8187996e57943c692a33d7af6b540e37a6 /src/qmmpui/mediaplayer.cpp
parent402f1a35b2cbe029381fd94a2b538beb4323e3f6 (diff)
downloadqmmp-ffef9491700965c061f4bdb7dd61c125d2eb2bf9.tar.gz
qmmp-ffef9491700965c061f4bdb7dd61c125d2eb2bf9.tar.bz2
qmmp-ffef9491700965c061f4bdb7dd61c125d2eb2bf9.zip
added possibility to skip invalid tracks (Fixes issue 400) (Fixes issue
413) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2079 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/mediaplayer.cpp')
-rw-r--r--src/qmmpui/mediaplayer.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/qmmpui/mediaplayer.cpp b/src/qmmpui/mediaplayer.cpp
index 721a71ae8..ea45c2b78 100644
--- a/src/qmmpui/mediaplayer.cpp
+++ b/src/qmmpui/mediaplayer.cpp
@@ -62,6 +62,7 @@ void MediaPlayer::initialize(SoundCore *core, PlayListManager *pl_manager)
m_noPlaylistAdvance = false;
connect(m_core, SIGNAL(nextTrackRequest()), SLOT(updateNextUrl()));
connect(m_core, SIGNAL(finished()), SLOT(playNext()));
+ connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(processState(Qmmp::State)));
}
PlayListManager *MediaPlayer::playListManager()
@@ -103,7 +104,7 @@ void MediaPlayer::play(qint64 offset)
return;
}
- if (!m_core->play(s, false, offset))
+ /*if (!m_core->play(s, false, offset))
{
//find out the reason why playback failed
switch ((int) m_core->state())
@@ -139,7 +140,10 @@ void MediaPlayer::play(qint64 offset)
}
}
else
- m_skips = 0;
+ m_skips = 0;*/
+
+ m_core->play(s, false, offset);
+ m_skips = 0;
}
void MediaPlayer::stop()
@@ -245,3 +249,26 @@ void MediaPlayer::updateNextUrl()
qDebug("MediaPlayer: next track state: unknown");
}
+
+void MediaPlayer::processState(Qmmp::State state)
+{
+ switch ((int) state)
+ {
+ case Qmmp::NormalError:
+ stop();
+ //playNext();
+ if (m_skips < MAX_SKIPS)
+ {
+ //stop();
+ //qWarning("MediaPlayer: skip limit exceeded");
+ playNext();
+ m_skips++;
+ }
+ break;
+ case Qmmp::FatalError:
+ stop();
+ break;
+ default:
+ m_skips = 0;
+ }
+}