improve elapsed time handling

this also throws away hack that was used to count elapsed
time locally while polling mpd, it's not needed anymore.
This commit is contained in:
Andrzej Rybczak
2009-10-30 20:04:47 +01:00
parent b6059e2255
commit 0a95aebd7c
3 changed files with 12 additions and 23 deletions

View File

@@ -217,22 +217,13 @@ void Connection::UpdateStatus()
if (supportsIdle)
{
// sync local elapsed time counter with mpd
unsigned old_elapsed = itsElapsed;
itsElapsed = mpd_status_get_elapsed_time(itsCurrentStatus);
itsChanges.ElapsedTime = itsElapsed != old_elapsed;
time(&itsElapsedTimer[0]);
}
else
{
time(&itsElapsedTimer[0]);
if (itsElapsedTimer[0] > itsElapsedTimer[1])
{
unsigned mpd_elapsed = mpd_status_get_elapsed_time(itsCurrentStatus);
if (itsElapsed < mpd_elapsed-2 || itsElapsed+1 > mpd_elapsed)
itsElapsed = mpd_elapsed;
else if (Mpd.GetState() == psPlay)
++itsElapsed;
time(&itsElapsedTimer[1]);
}
}
itsElapsed = mpd_status_get_elapsed_time(itsCurrentStatus);
if (!itsOldStatus)
{
@@ -267,6 +258,9 @@ void Connection::UpdateStatus()
itsChanges.Playlist = mpd_status_get_queue_version(itsOldStatus)
!= mpd_status_get_queue_version(itsCurrentStatus);
itsChanges.ElapsedTime = mpd_status_get_elapsed_time(itsOldStatus)
!= mpd_status_get_elapsed_time(itsCurrentStatus);
itsChanges.Database = mpd_status_get_update_id(itsOldStatus)
&& !mpd_status_get_update_id(itsCurrentStatus);
@@ -291,9 +285,6 @@ void Connection::UpdateStatus()
itsChanges.SongID = mpd_status_get_song_id(itsOldStatus)
!= mpd_status_get_song_id(itsCurrentStatus);
itsChanges.ElapsedTime = mpd_status_get_elapsed_time(itsOldStatus)
!= mpd_status_get_elapsed_time(itsCurrentStatus);
itsChanges.Crossfade = mpd_status_get_crossfade(itsOldStatus)
!= mpd_status_get_crossfade(itsCurrentStatus);