Commit 7d2934e1 authored by Sam Lantinga's avatar Sam Lantinga

Fixed last track time calculation (thanks Tchi Southivong)

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40202
parent f488fc94
...@@ -215,18 +215,19 @@ static int SDL_SYS_CDGetTOC(SDL_CD *cdrom) ...@@ -215,18 +215,19 @@ static int SDL_SYS_CDGetTOC(SDL_CD *cdrom)
} }
} }
if ( i == cdrom->numtracks ) { if ( i == cdrom->numtracks ) {
flags &= ~MCI_TRACK; mci_status.dwTrack = cdrom->track[i - 1].id;
mci_status.dwItem = MCI_STATUS_LENGTH; mci_status.dwItem = MCI_STATUS_LENGTH;
if ( SDL_SYS_CDioctl(cdrom->id, MCI_STATUS, flags, if ( SDL_SYS_CDioctl(cdrom->id, MCI_STATUS, flags,
&mci_status) == 0 ) { &mci_status) == 0 ) {
cdrom->track[i].offset = MSF_TO_FRAMES( cdrom->track[i - 1].length = MSF_TO_FRAMES(
MCI_MSF_MINUTE(mci_status.dwReturn), MCI_MSF_MINUTE(mci_status.dwReturn),
MCI_MSF_SECOND(mci_status.dwReturn), MCI_MSF_SECOND(mci_status.dwReturn),
MCI_MSF_FRAME(mci_status.dwReturn)); MCI_MSF_FRAME(mci_status.dwReturn)) + 1; /* +1 to fix */
/* MCI last track length bug */
/* compute lead-out offset */
cdrom->track[i].offset = cdrom->track[i - 1].offset +
cdrom->track[i - 1].length;
cdrom->track[i].length = 0; cdrom->track[i].length = 0;
cdrom->track[i-1].length =
cdrom->track[i].offset-
cdrom->track[i-1].offset;
okay = 1; okay = 1;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment