From f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a Mon Sep 17 00:00:00 2001 From: Magnus Holmgren Date: Sun, 4 Jun 2006 15:04:03 +0000 Subject: Fix bug 5341: Resume in Wav and Flac doesn't start from the position where it was left off. Mark Arigo helped with the Flac fix. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10051 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/wav.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'apps/codecs/wav.c') diff --git a/apps/codecs/wav.c b/apps/codecs/wav.c index d9be0a3420..f83f1d1e58 100644 --- a/apps/codecs/wav.c +++ b/apps/codecs/wav.c @@ -410,11 +410,19 @@ next_track: } firstblockposn = 1024 - n; - ci->advance_buffer(firstblockposn); + + if (ci->id3->offset > (uint32_t) firstblockposn) { + /* Round down to previous block */ + uint32_t offset = ci->id3->offset - ci->id3->offset % blockalign; + + ci->advance_buffer(offset); + bytesdone = offset - firstblockposn; + } else { + ci->advance_buffer(firstblockposn); + bytesdone = 0; + } /* The main decoder loop */ - bytesdone = 0; - ci->set_elapsed(0); endofstream = 0; /* chunksize is computed so that one chunk is about 1/50s. * this make 4096 for 44.1kHz 16bits stereo. -- cgit v1.2.3