aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-03-13 06:07:55 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-03-13 06:07:55 +0000
commitf40982fd580349e325c406666c2a754deb9f7ece (patch)
tree62f8fbb6614b7400b201b4e15f6c757cb1db2dc0 /src/plugins
parent987c0931a38e195f39cdc1f5f833f3a570ca7f12 (diff)
downloadqmmp-f40982fd580349e325c406666c2a754deb9f7ece.tar.gz
qmmp-f40982fd580349e325c406666c2a754deb9f7ece.tar.bz2
qmmp-f40982fd580349e325c406666c2a754deb9f7ece.zip
scrobbler: added pause handling (libre.fm part)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3310 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/General/scrobbler/librefmscrobbler.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/plugins/General/scrobbler/librefmscrobbler.cpp b/src/plugins/General/scrobbler/librefmscrobbler.cpp
index c4e624697..7ececc155 100644
--- a/src/plugins/General/scrobbler/librefmscrobbler.cpp
+++ b/src/plugins/General/scrobbler/librefmscrobbler.cpp
@@ -82,17 +82,24 @@ LibrefmScrobbler::~LibrefmScrobbler()
void LibrefmScrobbler::setState(Qmmp::State state)
{
+ static Qmmp::State previousState = state;
+ static int elapsed = 0;
switch ((uint) state)
{
case Qmmp::Playing:
- m_start_ts = QDateTime::currentDateTime().toTime_t();
- m_time->restart();
+ if (previousState != Qmmp::Paused)
+ {
+ m_start_ts = QDateTime::currentDateTime().toTime_t();
+ m_time->restart();
+ elapsed = 0;
+ }
if (!isReady() && !m_handshakeReply)
handshake();
break;
case Qmmp::Stopped:
+ elapsed += m_time->elapsed();
if (!m_song.metaData().isEmpty()
- && ((m_time->elapsed ()/1000 > 240) || (m_time->elapsed ()/1000 > int(m_song.length()/2)))
+ && ((elapsed/1000 > 240) || (elapsed/1000 > int(m_song.length()/2)))
&& (m_song.length() > MIN_SONG_LENGTH))
{
m_song.setTimeStamp(m_start_ts);
@@ -106,6 +113,10 @@ void LibrefmScrobbler::setState(Qmmp::State state)
if (isReady() && !m_submitReply)
submit();
break;
+ case Qmmp::Paused:
+ elapsed += m_time->restart();
+ qDebug("LibrefmScrobbler: pausing after %d seconds played", elapsed / 1000);
+ break;
default:
;
}