summaryrefslogtreecommitdiff
path: root/firmware/mpeg.c
diff options
context:
space:
mode:
authorHardeep Sidhu <dyp@pobox.com>2002-10-04 16:39:02 +0000
committerHardeep Sidhu <dyp@pobox.com>2002-10-04 16:39:02 +0000
commitc53859388f5f71fca5caaaafe7b7d9e823df29db (patch)
tree50e885cf438a75024ca6e208ce927e20c92468e9 /firmware/mpeg.c
parentf8e10b316dc789bcd9a2f436d2ede73d0f073ce5 (diff)
downloadrockbox-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.c12
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)
{