Mercurial > sdl-ios-xcode
comparison src/cdrom/win32/SDL_syscdrom.c @ 201:ddee60057806
Fixed last track time calculation (thanks Tchi Southivong)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 30 Sep 2001 19:07:56 +0000 |
parents | e31f8d815aaa |
children | e8157fcb3114 |
comparison
equal
deleted
inserted
replaced
200:ec77d3d32201 | 201:ddee60057806 |
---|---|
213 cdrom->track[i].offset- | 213 cdrom->track[i].offset- |
214 cdrom->track[i-1].offset; | 214 cdrom->track[i-1].offset; |
215 } | 215 } |
216 } | 216 } |
217 if ( i == cdrom->numtracks ) { | 217 if ( i == cdrom->numtracks ) { |
218 flags &= ~MCI_TRACK; | 218 mci_status.dwTrack = cdrom->track[i - 1].id; |
219 mci_status.dwItem = MCI_STATUS_LENGTH; | 219 mci_status.dwItem = MCI_STATUS_LENGTH; |
220 if ( SDL_SYS_CDioctl(cdrom->id, MCI_STATUS, flags, | 220 if ( SDL_SYS_CDioctl(cdrom->id, MCI_STATUS, flags, |
221 &mci_status) == 0 ) { | 221 &mci_status) == 0 ) { |
222 cdrom->track[i].offset = MSF_TO_FRAMES( | 222 cdrom->track[i - 1].length = MSF_TO_FRAMES( |
223 MCI_MSF_MINUTE(mci_status.dwReturn), | 223 MCI_MSF_MINUTE(mci_status.dwReturn), |
224 MCI_MSF_SECOND(mci_status.dwReturn), | 224 MCI_MSF_SECOND(mci_status.dwReturn), |
225 MCI_MSF_FRAME(mci_status.dwReturn)); | 225 MCI_MSF_FRAME(mci_status.dwReturn)) + 1; /* +1 to fix */ |
226 /* MCI last track length bug */ | |
227 /* compute lead-out offset */ | |
228 cdrom->track[i].offset = cdrom->track[i - 1].offset + | |
229 cdrom->track[i - 1].length; | |
226 cdrom->track[i].length = 0; | 230 cdrom->track[i].length = 0; |
227 cdrom->track[i-1].length = | |
228 cdrom->track[i].offset- | |
229 cdrom->track[i-1].offset; | |
230 okay = 1; | 231 okay = 1; |
231 } | 232 } |
232 } | 233 } |
233 } | 234 } |
234 return(okay ? 0 : -1); | 235 return(okay ? 0 : -1); |