aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/scrobbler/scrobbler.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-06-03 17:47:49 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-06-03 17:47:49 +0000
commit920827d0600f57187f5b55891acb27733a24fed2 (patch)
tree4c3264b3891e309b8684ac3d20077ce36ff1362f /src/plugins/General/scrobbler/scrobbler.cpp
parent90adf28a2f593e40668ac4841774a8f6a2c3626f (diff)
downloadqmmp-920827d0600f57187f5b55891acb27733a24fed2.tar.gz
qmmp-920827d0600f57187f5b55891acb27733a24fed2.tar.bz2
qmmp-920827d0600f57187f5b55891acb27733a24fed2.zip
scrobbler: fixed some bugs
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6429 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/scrobbler/scrobbler.cpp')
-rw-r--r--src/plugins/General/scrobbler/scrobbler.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/plugins/General/scrobbler/scrobbler.cpp b/src/plugins/General/scrobbler/scrobbler.cpp
index c91f4faba..8b251f354 100644
--- a/src/plugins/General/scrobbler/scrobbler.cpp
+++ b/src/plugins/General/scrobbler/scrobbler.cpp
@@ -128,19 +128,20 @@ void Scrobbler::setState(Qmmp::State state)
if(state == Qmmp::Playing && m_previousState == Qmmp::Paused)
{
qDebug("Scrobbler[%s]: resuming from %d seconds played", qPrintable(m_name), m_elapsed / 1000);
- m_time->addMSecs(m_elapsed - m_time->elapsed());
+ m_time->restart();
}
else if(state == Qmmp::Paused)
{
- m_elapsed = m_time->elapsed();
+ m_elapsed += m_time->elapsed();
qDebug("Scrobbler[%s]: pausing after %d seconds played", qPrintable(m_name), m_elapsed / 1000);
-
}
else if(state == Qmmp::Stopped && !m_song.metaData().isEmpty())
{
- int elapsed = m_time->elapsed() / 1000;
- if(((elapsed > 240) || (elapsed > int(m_song.length()/2)))
- && (m_song.length() == 0 || m_song.length() > MIN_SONG_LENGTH))
+ if(m_previousState == Qmmp::Playing)
+ m_elapsed += m_time->elapsed();
+
+ m_elapsed /= 1000; //convert to seconds
+ if((m_elapsed > 240) || (m_elapsed > int(m_song.length()/2) && m_song.length() > MIN_SONG_LENGTH))
{
m_cachedSongs << m_song;
m_cache->save(m_cachedSongs);
@@ -161,9 +162,8 @@ void Scrobbler::updateMetaData()
if(!m_song.metaData().isEmpty() && m_song.metaData() != metadata)
{
- int elapsed = m_time->elapsed() / 1000;
- if(((elapsed > 240) || (elapsed > int(m_song.length()/2)))
- && (m_song.length() == 0 || m_song.length() > MIN_SONG_LENGTH))
+ int elapsed = (m_elapsed + m_time->elapsed()) / 1000;
+ if((elapsed > 240) || (elapsed > int(m_song.length()/2) && m_song.length() > MIN_SONG_LENGTH))
{
m_cachedSongs << m_song;
m_cache->save(m_cachedSongs);
@@ -177,9 +177,10 @@ void Scrobbler::updateMetaData()
{
m_song = SongInfo(metadata, m_core->totalTime()/1000);
m_song.setTimeStamp(QDateTime::currentDateTime().toTime_t());
- m_time->restart();
sendNotification(m_song);
}
+ m_time->restart();
+ m_elapsed = 0;
}
void Scrobbler::processResponse(QNetworkReply *reply)