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