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.tar.gz rockbox-c53859388f5f71fca5caaaafe7b7d9e823df29db.zip |
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 05f0a163c8..22a4e1f79e 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -1047,7 +1047,11 @@ static void mpeg_thread(void) | |||
1047 | } | 1047 | } |
1048 | 1048 | ||
1049 | newpos = newpos & ~1; | 1049 | newpos = newpos & ~1; |
1050 | curpos = lseek(mpeg_file, 0, SEEK_CUR); | 1050 | |
1051 | if (mpeg_file >= 0) | ||
1052 | curpos = lseek(mpeg_file, 0, SEEK_CUR); | ||
1053 | else | ||
1054 | curpos = id3->filesize; | ||
1051 | 1055 | ||
1052 | if (num_tracks_in_memory() > 1) | 1056 | if (num_tracks_in_memory() > 1) |
1053 | { | 1057 | { |
@@ -1083,7 +1087,7 @@ static void mpeg_thread(void) | |||
1083 | unplayed_space_left = get_unplayed_space(); | 1087 | unplayed_space_left = get_unplayed_space(); |
1084 | unswapped_space_left = get_unswapped_space(); | 1088 | unswapped_space_left = get_unswapped_space(); |
1085 | 1089 | ||
1086 | if (unplayed_space_left < MPEG_LOW_WATER) | 1090 | if (mpeg_file>=0 && unplayed_space_left < MPEG_LOW_WATER) |
1087 | { | 1091 | { |
1088 | /* We need to load more data before starting */ | 1092 | /* We need to load more data before starting */ |
1089 | filling = true; | 1093 | filling = true; |
@@ -1112,7 +1116,11 @@ static void mpeg_thread(void) | |||
1112 | /* We have to reload the current track */ | 1116 | /* We have to reload the current track */ |
1113 | close(mpeg_file); | 1117 | close(mpeg_file); |
1114 | remove_all_non_current_tags(); | 1118 | remove_all_non_current_tags(); |
1119 | mpeg_file = -1; | ||
1120 | } | ||
1115 | 1121 | ||
1122 | if (mpeg_file < 0) | ||
1123 | { | ||
1116 | mpeg_file = open(id3->path, O_RDONLY); | 1124 | mpeg_file = open(id3->path, O_RDONLY); |
1117 | if (mpeg_file < 0) | 1125 | if (mpeg_file < 0) |
1118 | { | 1126 | { |