From 0677653d4f82a2a913986841001847a3c63d25f8 Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Wed, 19 Dec 2001 21:42:15 +0000 Subject: [PATCH] CDDA_Play now searches for a cd audio track if the requested one is not valid. --- src/cdplayer.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/cdplayer.c b/src/cdplayer.c index 953e988..53fcb7c 100644 --- a/src/cdplayer.c +++ b/src/cdplayer.c @@ -108,8 +108,25 @@ void CDDA_Play(int CDDATrack) if (cdrom == NULL) return; - if (CD_INDRIVE(SDL_CDStatus(cdrom))) - SDL_CDPlayTracks(cdrom, CDDATrack-1, 0, 1, 0); + if (CD_INDRIVE(SDL_CDStatus(cdrom))) { + int track = CDDATrack - 1; + int i; + + if (cdrom->numtracks == 0) + return; + + track %= cdrom->numtracks; + + for (i = 0; i < cdrom->numtracks; i++) { + if (cdrom->track[track].type == SDL_AUDIO_TRACK) { + SDL_CDPlayTracks(cdrom, track, 0, 1, 0); + return; + } + + track++; + track %= cdrom->numtracks; + } + } } void CDDA_PlayLoop(int CDDATrack)