1
0
Fork 0
forked from len0rd/rockbox

Fixed id3 array being updated too early

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1194 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Björn Stenberg 2002-06-26 12:05:06 +00:00
parent 28859c52d5
commit 200d226a7c

View file

@ -281,15 +281,18 @@ void DEI3(void)
DTCR3 = last_dma_chunk_size & 0xffff;
SAR3 = (unsigned int)mp3buf + mp3buf_read;
/* will we move across the track boundary? */
if (( mp3buf_read <= id3tags[0].mempos ) &&
( (mp3buf_read + last_dma_chunk_size) > id3tags[0].mempos )) {
/* shift array so index 0 is current track */
int i;
for (i=0; i<last_tag-1; i++)
id3tags[i] = id3tags[i+1];
if ( last_tag )
/* several tracks loaded? */
if ( last_tag>1 ) {
/* will we move across the track boundary? */
if (( mp3buf_read <= id3tags[1].mempos ) &&
((mp3buf_read+last_dma_chunk_size) > id3tags[1].mempos )) {
/* shift array so index 0 is current track */
int i;
for (i=0; i<last_tag-1; i++)
id3tags[i] = id3tags[i+1];
last_tag--;
DEBUGF("Track change\n");
}
}
}
else
@ -379,11 +382,9 @@ static void mpeg_thread(void)
/* grab id3 tag of new file and
remember where in memory it starts */
if ( last_tag < MAX_ID3_TAGS ) {
mp3info(&(id3tags[last_tag].id3), ev.data);
id3tags[last_tag].mempos = mp3buf_write;
last_tag++;
}
mp3info(&(id3tags[0].id3), ev.data);
id3tags[0].mempos = mp3buf_write;
last_tag=1;
/* Make it read more data */
filling = true;