summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Bryant <bryant@rockbox.org>2005-06-30 06:09:59 +0000
committerDave Bryant <bryant@rockbox.org>2005-06-30 06:09:59 +0000
commit1983738ea11e3b8706bab5a1e8efe5ee947bfa4f (patch)
tree294f68fe3925d47a2b006a31b98ef2f6c35c967e
parentbc9a378c4f25dccbf3cc3937357a31298f2cf845 (diff)
downloadrockbox-1983738ea11e3b8706bab5a1e8efe5ee947bfa4f.tar.gz
rockbox-1983738ea11e3b8706bab5a1e8efe5ee947bfa4f.zip
Not sure if this is the right way to make "resume" work correctly for WavPack,
but it seems to work and if it's wrong it should only affect WavPack... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6938 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/wavpack.c4
-rw-r--r--apps/playback.c9
2 files changed, 12 insertions, 1 deletions
diff --git a/apps/codecs/wavpack.c b/apps/codecs/wavpack.c
index 0da8a89027..39b8514fe5 100644
--- a/apps/codecs/wavpack.c
+++ b/apps/codecs/wavpack.c
@@ -33,7 +33,9 @@ static long temp_buffer [BUFFER_SIZE] IDATA_ATTR;
33 33
34static long read_callback (void *buffer, long bytes) 34static long read_callback (void *buffer, long bytes)
35{ 35{
36 return ci->read_filebuf (buffer, bytes); 36 long retval = ci->read_filebuf (buffer, bytes);
37 ci->id3->offset = ci->curpos;
38 return retval;
37} 39}
38 40
39#ifndef SIMULATOR 41#ifndef SIMULATOR
diff --git a/apps/playback.c b/apps/playback.c
index a89441f02a..8b4cc6eab6 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -811,6 +811,15 @@ bool audio_load_track(int offset, bool start_play, int peek_offset)
811 ci.curpos = offset; 811 ci.curpos = offset;
812 tracks[track_widx].start_pos = offset; 812 tracks[track_widx].start_pos = offset;
813 } 813 }
814 else if (tracks[track_widx].id3.codectype==AFMT_WAVPACK) {
815 lseek(fd, offset, SEEK_SET);
816 tracks[track_widx].id3.offset = offset;
817 tracks[track_widx].id3.elapsed = tracks[track_widx].id3.length / 2;
818 tracks[track_widx].filepos = offset;
819 tracks[track_widx].filerem = tracks[track_widx].filesize - offset;
820 ci.curpos = offset;
821 tracks[track_widx].start_pos = offset;
822 }
814 } 823 }
815 824
816 if (start_play) { 825 if (start_play) {