aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist_control.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/playlist_control.c')
-rw-r--r--src/playlist_control.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/playlist_control.c b/src/playlist_control.c
index 4f51345c3..f1702149a 100644
--- a/src/playlist_control.c
+++ b/src/playlist_control.c
@@ -185,15 +185,11 @@ nextSongInPlaylist(struct playlist *playlist)
void previousSongInPlaylist(struct playlist *playlist)
{
- static time_t lastTime;
- time_t diff = time(NULL) - lastTime;
-
- lastTime += diff;
-
if (!playlist->playing)
return;
- if (diff && getPlayerElapsedTime() > PLAYLIST_PREV_UNLESS_ELAPSED) {
+ if (g_timer_elapsed(playlist->prev_elapsed, NULL) >= 1.0 &&
+ getPlayerElapsedTime() > PLAYLIST_PREV_UNLESS_ELAPSED) {
/* re-start playing the current song (just like the
"prev" button on CD players) */
@@ -213,6 +209,8 @@ void previousSongInPlaylist(struct playlist *playlist)
playPlaylistOrderNumber(playlist, playlist->current);
}
}
+
+ g_timer_start(playlist->prev_elapsed);
}
enum playlist_result