diff --git a/quakespasm/Quake/cd_null.c b/quakespasm/Quake/cd_null.c index 3c9ec51f..da336c6c 100644 --- a/quakespasm/Quake/cd_null.c +++ b/quakespasm/Quake/cd_null.c @@ -25,8 +25,9 @@ #include "quakedef.h" -void CDAudio_Play(byte track, qboolean looping) +int CDAudio_Play(byte track, qboolean looping) { + return -1; } void CDAudio_Stop(void) diff --git a/quakespasm/Quake/cd_sdl.c b/quakespasm/Quake/cd_sdl.c index f3146b69..de83e318 100644 --- a/quakespasm/Quake/cd_sdl.c +++ b/quakespasm/Quake/cd_sdl.c @@ -76,18 +76,18 @@ static int CDAudio_GetAudioDiskInfo(void) return 0; } -void CDAudio_Play(byte track, qboolean looping) +int CDAudio_Play(byte track, qboolean looping) { int len_m, len_s, len_f; if (!cd_handle || !enabled) - return; + return -1; if (!cdValid) { CDAudio_GetAudioDiskInfo(); if (!cdValid) - return; + return -1; } track = remap[track]; @@ -95,19 +95,19 @@ void CDAudio_Play(byte track, qboolean looping) if (track < 1 || track > cd_handle->numtracks) { Con_Printf ("CDAudio_Play: Bad track number %d.\n", track); - return; + return -1; } if (cd_handle->track[track-1].type == SDL_DATA_TRACK) { Con_Printf ("CDAudio_Play: track %d is not audio\n", track); - return; + return -1; } if (playing) { if (playTrack == track) - return; + return 0; CDAudio_Stop(); } @@ -116,7 +116,7 @@ void CDAudio_Play(byte track, qboolean looping) int cd_status = SDL_CDStatus(cd_handle); if (cd_status > 0) Con_Printf ("CDAudio_Play: Unable to play %d: %s\n", track, SDL_GetError ()); - return; + return -1; } playLooping = looping; @@ -137,6 +137,8 @@ void CDAudio_Play(byte track, qboolean looping) if (bgmvolume.value == 0) /* don't bother advancing */ CDAudio_Pause (); + + return 0; } void CDAudio_Stop(void) diff --git a/quakespasm/Quake/cdaudio.h b/quakespasm/Quake/cdaudio.h index 58fea542..e0702d70 100644 --- a/quakespasm/Quake/cdaudio.h +++ b/quakespasm/Quake/cdaudio.h @@ -23,7 +23,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define __CDAUDIO_H int CDAudio_Init (void); -void CDAudio_Play (byte track, qboolean looping); +int CDAudio_Play (byte track, qboolean looping); + /* returns 0 for success, -1 for failure. */ void CDAudio_Stop (void); void CDAudio_Pause (void); void CDAudio_Resume (void);