From a380d90b98e6f36f892d125ce8dea4a8ced9d801 Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Sat, 11 Jun 2005 18:05:16 +0000 Subject: Fixed MP3 forward seeking. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6679 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 5 ++--- apps/plugins/codecmpa.c | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'apps') diff --git a/apps/playback.c b/apps/playback.c index 028c4c90f7..245db3b4dc 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -137,7 +137,6 @@ struct track_info { volatile int available; bool taginfo_ready; int playlist_offset; - int elapsed_start; }; /* Track information (count in file buffer, read/write indexes for @@ -201,7 +200,6 @@ void codec_set_elapsed_callback(unsigned int value) #else latency = 0; #endif - value += cur_ti->elapsed_start; if (value < latency) { cur_ti->id3.elapsed = 0; } else if (value - latency > cur_ti->id3.elapsed @@ -673,7 +671,6 @@ bool audio_load_track(int offset, bool start_play, int peek_offset) lseek(fd, offset, SEEK_SET); tracks[track_widx].id3.offset = offset; mp3_set_elapsed(&tracks[track_widx].id3); - tracks[track_widx].elapsed_start = tracks[track_widx].id3.elapsed; tracks[track_widx].filepos = offset; tracks[track_widx].filerem = tracks[track_widx].filesize - offset; ci.curpos = offset; @@ -1038,6 +1035,8 @@ void audio_update_trackinfo(void) } ci.filesize = cur_ti->filesize; + cur_ti->id3.elapsed = 0; + cur_ti->id3.offset = 0; ci.id3 = (struct mp3entry *)&cur_ti->id3; ci.mp3data = (struct mp3info *)&cur_ti->mp3data; ci.curpos = 0; diff --git a/apps/plugins/codecmpa.c b/apps/plugins/codecmpa.c index bf6cf3f87d..86211df566 100644 --- a/apps/plugins/codecmpa.c +++ b/apps/plugins/codecmpa.c @@ -244,7 +244,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm) first = false; #endif - samplesdone = 0; first_frame = false; file_end = 0; OutputPtr = OutputBuffer; @@ -257,6 +256,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm) ci->advance_buffer(size); samplecount = ci->id3->length * (ci->id3->frequency / 100) / 10; + samplesdone = ci->id3->elapsed * (ci->id3->frequency / 100) / 10; /* rb->snprintf(buf2, sizeof(buf2), "sc: %d", samplecount); rb->splash(0, true, buf2); rb->snprintf(buf2, sizeof(buf2), "length: %d", ci->id3->length); -- cgit v1.2.3