diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2016-06-03 17:47:49 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2016-06-03 17:47:49 +0000 |
| commit | 920827d0600f57187f5b55891acb27733a24fed2 (patch) | |
| tree | 4c3264b3891e309b8684ac3d20077ce36ff1362f /src | |
| parent | 90adf28a2f593e40668ac4841774a8f6a2c3626f (diff) | |
| download | qmmp-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')
| -rw-r--r-- | src/plugins/General/scrobbler/scrobbler.cpp | 21 |
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) |
