diff options
| author | Miika Pekkarinen <miipekk@ihme.org> | 2005-07-10 08:46:12 +0000 |
|---|---|---|
| committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-07-10 08:46:12 +0000 |
| commit | 527ce403eac0d0eda8a48f9dc124bc2f66a68b32 (patch) | |
| tree | 3f0768f4ede3bec5810871b6dfe24b417f09ef95 /apps | |
| parent | b288dda68504fc44d16bbc0d321166d291606a62 (diff) | |
| download | rockbox-527ce403eac0d0eda8a48f9dc124bc2f66a68b32.zip rockbox-527ce403eac0d0eda8a48f9dc124bc2f66a68b32.tar.gz rockbox-527ce403eac0d0eda8a48f9dc124bc2f66a68b32.tar.bz2 rockbox-527ce403eac0d0eda8a48f9dc124bc2f66a68b32.tar.xz | |
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')
| -rw-r--r-- | apps/playback.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/apps/playback.c b/apps/playback.c index fb96592..c145e05 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -831,6 +831,16 @@ bool read_next_metadata(void) int next_track; int status; + next_track = track_widx; + if (tracks[track_widx].taginfo_ready) + next_track++; + + if (next_track >= MAX_TRACK) + next_track -= MAX_TRACK; + + if (tracks[next_track].taginfo_ready) + return true; + trackname = playlist_peek(last_peek_offset); if (!trackname) return false; @@ -838,11 +848,7 @@ bool read_next_metadata(void) fd = open(trackname, O_RDONLY); if (fd < 0) return false; - - next_track = track_ridx + 1; - if (next_track >= MAX_TRACK) - next_track -= MAX_TRACK; - + /* Start buffer refilling also because we need to spin-up the disk. */ filling = true; status = get_metadata(&tracks[next_track],fd,trackname,v1first); @@ -1187,8 +1193,8 @@ void audio_check_buffer(void) if (audio_load_track(0, false, last_peek_offset)) { last_peek_offset++; } else if (tracks[track_widx].filerem == 0 || fill_bytesleft == 0) { - if (audio_next_track() == NULL) - read_next_metadata(); + /* Read next unbuffered track's metadata as necessary. */ + read_next_metadata(); generate_postbuffer_events(); filling = false; |