diff options
author | Yoshihisa Uchida <uchida@rockbox.org> | 2010-03-22 10:02:05 +0000 |
---|---|---|
committer | Yoshihisa Uchida <uchida@rockbox.org> | 2010-03-22 10:02:05 +0000 |
commit | 7a3822c8b03a5438a1bcfd6e38c0e6860dda3348 (patch) | |
tree | e50740c7f0ccd6aff1aac0e292a000ac7ef6be14 /apps/codecs/libpcm/dvi_adpcm.c | |
parent | 20fccd84897352478c3306e41ca0fab0a5f4c65e (diff) | |
download | rockbox-7a3822c8b03a5438a1bcfd6e38c0e6860dda3348.tar.gz rockbox-7a3822c8b03a5438a1bcfd6e38c0e6860dda3348.zip |
fix bug: WAV file playback does not resume (FS#11077)
Not only WAV but also Sun audio, SMAF, vox and WAV64 can resume.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25289 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libpcm/dvi_adpcm.c')
-rw-r--r-- | apps/codecs/libpcm/dvi_adpcm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/apps/codecs/libpcm/dvi_adpcm.c b/apps/codecs/libpcm/dvi_adpcm.c index 2784b21786..2e702ca394 100644 --- a/apps/codecs/libpcm/dvi_adpcm.c +++ b/apps/codecs/libpcm/dvi_adpcm.c | |||
@@ -54,12 +54,14 @@ static bool set_format(struct pcm_format *format) | |||
54 | return true; | 54 | return true; |
55 | } | 55 | } |
56 | 56 | ||
57 | static struct pcm_pos *get_seek_pos(long seek_time, | 57 | static struct pcm_pos *get_seek_pos(uint32_t seek_val, int seek_mode, |
58 | uint8_t *(*read_buffer)(size_t *realsize)) | 58 | uint8_t *(*read_buffer)(size_t *realsize)) |
59 | { | 59 | { |
60 | static struct pcm_pos newpos; | 60 | static struct pcm_pos newpos; |
61 | uint32_t newblock = ((uint64_t)seek_time * ci->id3->frequency) | 61 | uint32_t newblock = (seek_mode == PCM_SEEK_TIME) ? |
62 | / (1000LL * fmt->samplesperblock); | 62 | ((uint64_t)seek_val * ci->id3->frequency / 1000LL) |
63 | / fmt->samplesperblock : | ||
64 | seek_val / fmt->blockalign; | ||
63 | 65 | ||
64 | (void)read_buffer; | 66 | (void)read_buffer; |
65 | newpos.pos = newblock * fmt->blockalign; | 67 | newpos.pos = newblock * fmt->blockalign; |