From 616dc9d4659ca7486dfd252efeda0531766409cc Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 25 Apr 2009 14:08:31 +0200 Subject: playlist_control: use GTimer in previousSongInPlaylist() To determine whether to rewind the current song or to go to the previous song, use a GTimer instead of manually diffing time(NULL). --- src/playlist_control.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/playlist_control.c') 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 -- cgit v1.2.3