summaryrefslogtreecommitdiff
path: root/apps
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
parentb288dda68504fc44d16bbc0d321166d291606a62 (diff)
downloadrockbox-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.c20
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;