diff options
Diffstat (limited to 'src/playlist_control.c')
-rw-r--r-- | src/playlist_control.c | 10 |
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 |