summaryrefslogtreecommitdiff
path: root/apps/playback.c
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-07-10 08:46:12 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-07-10 08:46:12 +0000
commit527ce403eac0d0eda8a48f9dc124bc2f66a68b32 (patch)
tree3f0768f4ede3bec5810871b6dfe24b417f09ef95 /apps/playback.c
parentb288dda68504fc44d16bbc0d321166d291606a62 (diff)
downloadrockbox-527ce403eac0d0eda8a48f9dc124bc2f66a68b32.tar.gz
rockbox-527ce403eac0d0eda8a48f9dc124bc2f66a68b32.zip
The previous commit did not fix the metadata reading correctly. Now it
should have been fixed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7092 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
-rw-r--r--apps/playback.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/apps/playback.c b/apps/playback.c
index fb96592511..c145e0589b 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -831,6 +831,16 @@ bool read_next_metadata(void)
831 int next_track; 831 int next_track;
832 int status; 832 int status;
833 833
834 next_track = track_widx;
835 if (tracks[track_widx].taginfo_ready)
836 next_track++;
837
838 if (next_track >= MAX_TRACK)
839 next_track -= MAX_TRACK;
840
841 if (tracks[next_track].taginfo_ready)
842 return true;
843
834 trackname = playlist_peek(last_peek_offset); 844 trackname = playlist_peek(last_peek_offset);
835 if (!trackname) 845 if (!trackname)
836 return false; 846 return false;
@@ -838,11 +848,7 @@ bool read_next_metadata(void)
838 fd = open(trackname, O_RDONLY); 848 fd = open(trackname, O_RDONLY);
839 if (fd < 0) 849 if (fd < 0)
840 return false; 850 return false;
841 851
842 next_track = track_ridx + 1;
843 if (next_track >= MAX_TRACK)
844 next_track -= MAX_TRACK;
845
846 /* Start buffer refilling also because we need to spin-up the disk. */ 852 /* Start buffer refilling also because we need to spin-up the disk. */
847 filling = true; 853 filling = true;
848 status = get_metadata(&tracks[next_track],fd,trackname,v1first); 854 status = get_metadata(&tracks[next_track],fd,trackname,v1first);
@@ -1187,8 +1193,8 @@ void audio_check_buffer(void)
1187 if (audio_load_track(0, false, last_peek_offset)) { 1193 if (audio_load_track(0, false, last_peek_offset)) {
1188 last_peek_offset++; 1194 last_peek_offset++;
1189 } else if (tracks[track_widx].filerem == 0 || fill_bytesleft == 0) { 1195 } else if (tracks[track_widx].filerem == 0 || fill_bytesleft == 0) {
1190 if (audio_next_track() == NULL) 1196 /* Read next unbuffered track's metadata as necessary. */
1191 read_next_metadata(); 1197 read_next_metadata();
1192 1198
1193 generate_postbuffer_events(); 1199 generate_postbuffer_events();
1194 filling = false; 1200 filling = false;