diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-06-10 21:42:20 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-06-10 21:42:20 +0000 |
commit | 43255a7f63af65d88bbead4c0d6429ef2008ada8 (patch) | |
tree | eab9001afffd5a0e0e4a4ce064ab43fc510e2176 | |
parent | 3b1efb55883a2382d6971f947767a02b1ee28ea2 (diff) | |
download | mpd-43255a7f63af65d88bbead4c0d6429ef2008ada8.tar.gz mpd-43255a7f63af65d88bbead4c0d6429ef2008ada8.tar.xz mpd-43255a7f63af65d88bbead4c0d6429ef2008ada8.zip |
since stuff like vorbis streams report actual time into stream,
not time played, for previous add a hack where we record the difference
in time between previous presses
git-svn-id: https://svn.musicpd.org/mpd/trunk@1440 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | src/inputPlugins/ogg_plugin.c | 3 | ||||
-rw-r--r-- | src/playlist.c | 10 |
3 files changed, 8 insertions, 9 deletions
@@ -2,10 +2,6 @@ *) Fix charset errors so they don't goto stderr/out -*) compute time of vorbis from actual number of samples played - -*) remove previous hack for streams - Post-1.0 -------- 1) crosslink "list" stuff, for example, artists are crosslinked to alubms and diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c index c5197f132..b50ea5ea1 100644 --- a/src/inputPlugins/ogg_plugin.c +++ b/src/inputPlugins/ogg_plugin.c @@ -318,7 +318,8 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) sendDataToOutputBuffer(cb, inStream, dc, inStream->seekable, chunk, chunkpos, - ov_time_tell(&vf), + ov_pcm_tell(&vf)/ + dc->audioFormat.sampleRate, bitRate); if(dc->stop) break; diff --git a/src/playlist.c b/src/playlist.c index 31dc31fc5..a18f85dee 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -1165,14 +1165,16 @@ int setPlaylistRandomStatus(FILE * fp, int status) { } int previousSongInPlaylist(FILE * fp) { + static time_t lastTime = 0; + time_t diff = time(NULL) - lastTime; + + lastTime += diff; + if(playlist_state!=PLAYLIST_STATE_PLAY) return 0; syncPlaylistWithQueue(0); - if (getPlayerElapsedTime()>PLAYLIST_PREV_UNLESS_ELAPSED && - playlist.songs[playlist.order[playlist.current]]->type - != SONG_TYPE_URL) - { + if (diff && getPlayerElapsedTime() > PLAYLIST_PREV_UNLESS_ELAPSED) { return playPlaylistOrderNumber(fp,playlist.current); } else { |