diff options
| author | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-11-19 17:30:46 +0000 |
|---|---|---|
| committer | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-11-19 17:30:46 +0000 |
| commit | 2ff513237dbff5ed9bf534dba11504902a15b392 (patch) | |
| tree | daae722a108ea5067ba78ac8eec480e46a296839 /apps | |
| parent | cb62c9705421a57b8da60cd0032ac5ef1b0291ca (diff) | |
| download | rockbox-2ff513237dbff5ed9bf534dba11504902a15b392.zip rockbox-2ff513237dbff5ed9bf534dba11504902a15b392.tar.gz rockbox-2ff513237dbff5ed9bf534dba11504902a15b392.tar.bz2 rockbox-2ff513237dbff5ed9bf534dba11504902a15b392.tar.xz | |
Fix FS#8040 (Gather Runtime Data not working) the right way. Also a few cosmetic changes and comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15696 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/playback.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/apps/playback.c b/apps/playback.c index e136579..5b9f568 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1443,20 +1443,23 @@ long audio_filebufused(void) return (long) buf_used(); } +/* Update track info after successful a codec track change */ static void audio_update_trackinfo(void) { + /* Load the curent track's metadata into curtrack_id3 */ + CUR_TI->taginfo_ready = (CUR_TI->id3_hid >= 0); if (CUR_TI->id3_hid >= 0) copy_mp3entry(&curtrack_id3, bufgetid3(CUR_TI->id3_hid)); - CUR_TI->taginfo_ready = (CUR_TI->id3_hid >= 0); - int next_idx = (track_ridx + 1) & MAX_TRACK_MASK; - tracks[next_idx].taginfo_ready = (tracks[next_idx].id3_hid >= 0); - ci.filesize = CUR_TI->filesize; + /* Reset current position */ curtrack_id3.elapsed = 0; curtrack_id3.offset = 0; + + /* Update the codec API */ + ci.filesize = CUR_TI->filesize; ci.id3 = &curtrack_id3; ci.curpos = 0; ci.taginfo_ready = &CUR_TI->taginfo_ready; @@ -2298,6 +2301,14 @@ static void audio_finalise_track_change(void) wps_offset = 0; automatic_skip = false; } + + /* Copy the track back to the main buffer */ + if (prev_ti && prev_ti->id3_hid >= 0) + { + copy_mp3entry(bufgetid3(prev_ti->id3_hid), &prevtrack_id3); + } + + /* Invalidate prevtrack_id3 */ prevtrack_id3.path[0] = 0; if (prev_ti && prev_ti->audio_hid < 0) @@ -2308,6 +2319,7 @@ static void audio_finalise_track_change(void) if (track_changed_callback) track_changed_callback(&curtrack_id3); + track_changed = true; playlist_update_resume_info(audio_current_track()); } |