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/playback.c | |
parent | b288dda68504fc44d16bbc0d321166d291606a62 (diff) | |
download | rockbox-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.c | 20 |
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; |