From 6a48643b0a793681351b52e7a9b81712ad426420 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Wed, 14 Apr 2004 08:32:49 +0000 Subject: [PATCH] fix redbook tracking problems (fixes #1028) --- ChangeLog | 4 ++++ arch/sdl/rbaudio.c | 28 +++++++++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 64d73caa..6da1b2f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-04-14 Bradley Bell + + * arch/sdl/rbaudio.c: fix redbook tracking problems (fixes #1028) + 2004-04-14 Sean Taylor * main/songs.c: uncomment calls to RBAStop (fixes #473) diff --git a/arch/sdl/rbaudio.c b/arch/sdl/rbaudio.c index 9fdbe1c9..75de10cf 100644 --- a/arch/sdl/rbaudio.c +++ b/arch/sdl/rbaudio.c @@ -1,4 +1,4 @@ -/* $Id: rbaudio.c,v 1.8 2003-03-21 01:57:58 btb Exp $ */ +/* $Id: rbaudio.c,v 1.9 2004-04-14 08:32:49 btb Exp $ */ /* * * SDL CD Audio functions @@ -136,20 +136,30 @@ int RBAGetNumberOfTracks() return s_cd->numtracks; } -int RBAPlayTracks(int tracknum,int something) +// plays tracks first through last, inclusive +int RBAPlayTracks(int first, int last) { - if (!initialised) return -1; - if (CD_INDRIVE(SDL_CDStatus(s_cd)) ) { - SDL_CDPlayTracks(s_cd, tracknum-1, 0, 0, 0); + if (!initialised) + return 0; + + if (CD_INDRIVE(SDL_CDStatus(s_cd))) + { + SDL_CDPlayTracks(s_cd, first - 1, 0, last - first + 1, 0); } - return tracknum; + return 1; } +// return the track number currently playing. Useful if RBAPlayTracks() +// is called. Returns 0 if no track playing, else track number int RBAGetTrackNum() { - if (!initialised) return -1; - SDL_CDStatus(s_cd); - return s_cd->cur_track; + if (!initialised) + return 0; + + if (SDL_CDStatus(s_cd) != CD_PLAYING) + return 0; + + return s_cd->cur_track + 1; } int RBAPeekPlayStatus() -- 2.39.2