summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-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) {