diff options
| author | Hardeep Sidhu <dyp@pobox.com> | 2002-10-04 16:39:02 +0000 |
|---|---|---|
| committer | Hardeep Sidhu <dyp@pobox.com> | 2002-10-04 16:39:02 +0000 |
| commit | c53859388f5f71fca5caaaafe7b7d9e823df29db (patch) | |
| tree | 50e885cf438a75024ca6e208ce927e20c92468e9 /firmware/mpeg.c | |
| parent | f8e10b316dc789bcd9a2f436d2ede73d0f073ce5 (diff) | |
| download | rockbox-c53859388f5f71fca5caaaafe7b7d9e823df29db.zip rockbox-c53859388f5f71fca5caaaafe7b7d9e823df29db.tar.gz rockbox-c53859388f5f71fca5caaaafe7b7d9e823df29db.tar.bz2 rockbox-c53859388f5f71fca5caaaafe7b7d9e823df29db.tar.xz | |
When ffw/rew, correctly handle case where mpeg_file < 0 (eg. when playing last song of playlist with repeat off)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2505 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/mpeg.c')
| -rw-r--r-- | firmware/mpeg.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 05f0a16..22a4e1f 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -1047,7 +1047,11 @@ static void mpeg_thread(void) } newpos = newpos & ~1; - curpos = lseek(mpeg_file, 0, SEEK_CUR); + + if (mpeg_file >= 0) + curpos = lseek(mpeg_file, 0, SEEK_CUR); + else + curpos = id3->filesize; if (num_tracks_in_memory() > 1) { @@ -1083,7 +1087,7 @@ static void mpeg_thread(void) unplayed_space_left = get_unplayed_space(); unswapped_space_left = get_unswapped_space(); - if (unplayed_space_left < MPEG_LOW_WATER) + if (mpeg_file>=0 && unplayed_space_left < MPEG_LOW_WATER) { /* We need to load more data before starting */ filling = true; @@ -1112,7 +1116,11 @@ static void mpeg_thread(void) /* We have to reload the current track */ close(mpeg_file); remove_all_non_current_tags(); + mpeg_file = -1; + } + if (mpeg_file < 0) + { mpeg_file = open(id3->path, O_RDONLY); if (mpeg_file < 0) { |