diff --git a/src/apps/cdplayer/CDDBSupport.cpp b/src/apps/cdplayer/CDDBSupport.cpp index 75e8908d50..eff26bcf20 100644 --- a/src/apps/cdplayer/CDDBSupport.cpp +++ b/src/apps/cdplayer/CDDBSupport.cpp @@ -316,7 +316,7 @@ CDDBQuery::GetTrackTimes(const scsi_toc *toc, vector ×) TrackRecord *tocData = (TrackRecord*)&(toc->toc_data[4]); int16 trackCount = toc->toc_data[3] - toc->toc_data[2] + 1; - for (int index = 0; index < trackCount; index++) + for (int index = 0; index < trackCount+1; index++) { cdaudio_time cdtime; cdtime.minutes = tocData[index].min; @@ -613,7 +613,8 @@ CDDBQuery::WriteFile(void) { entry = fTrackNames[i]; - sprintf(timestring,"%.2ld:%.2ld",fTrackTimes[i].minutes, fTrackTimes[i].seconds); + sprintf(timestring,"%.2ld:%.2ld",fTrackTimes[i+1].minutes-fTrackTimes[i].minutes, + fTrackTimes[i].seconds); entry << "\t" << timestring << "\n"; file.Write(entry.String(),entry.Length()); diff --git a/src/apps/cdplayer/CDEngine.cpp b/src/apps/cdplayer/CDEngine.cpp index b678358a6a..28926354c1 100644 --- a/src/apps/cdplayer/CDEngine.cpp +++ b/src/apps/cdplayer/CDEngine.cpp @@ -458,7 +458,7 @@ void CDEngine::SelectTrack(int32 trackNumber) { sPlayList.SetCurrentTrack(trackNumber); - if(playState.GetState() == kPlaying) + if(GetState() == kPlaying) gCDDevice.Play(trackNumber); trackState.UpdateNow(); }