mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-10 15:21:44 +00:00
Überarbeite cd.c
This commit is contained in:
parent
ca1f64c016
commit
18bac1177a
1 changed files with 370 additions and 241 deletions
611
src/sdl/cd.c
611
src/sdl/cd.c
|
@ -1,30 +1,29 @@
|
|||
/*
|
||||
snd_sdl.c
|
||||
|
||||
CD code taken from SDLQuake and modified to work with Quake2
|
||||
Robert Bäuml 2001-12-25
|
||||
W.P. van Paassen 2002-01-06
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330
|
||||
Boston, MA 02111-1307, USA
|
||||
|
||||
$Id: cd_sdl.c,v 1.5 2002/02/16 19:03:06 relnev Exp $
|
||||
*/
|
||||
* Copyright (C) 2001 Robert Bäuml
|
||||
* Copyright (C) 2002 W. P. va Paassen
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
* 02111-1307, USA.
|
||||
*
|
||||
* =======================================================================
|
||||
*
|
||||
* Audio-CD backend in SDL
|
||||
*
|
||||
* =======================================================================
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "SDL.h"
|
||||
|
@ -38,350 +37,480 @@ static SDL_CD *cd_id;
|
|||
static float cdvolume = 1.0;
|
||||
static int lastTrack = 0;
|
||||
|
||||
cvar_t *cd_volume;
|
||||
cvar_t *cd_volume;
|
||||
cvar_t *cd_nocd;
|
||||
cvar_t *cd_dev;
|
||||
|
||||
static void CD_f();
|
||||
static void CD_f ();
|
||||
|
||||
static void CDAudio_Eject()
|
||||
static void
|
||||
CDAudio_Eject ()
|
||||
{
|
||||
if(!cd_id || !enabled) return;
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(SDL_CDEject(cd_id))
|
||||
Com_DPrintf("Unable to eject CD-ROM tray.\n");
|
||||
if ( SDL_CDEject( cd_id ) )
|
||||
{
|
||||
Com_DPrintf( "Unable to eject CD-ROM tray.\n" );
|
||||
}
|
||||
}
|
||||
|
||||
void CDAudio_Play(int track, qboolean looping)
|
||||
void
|
||||
CDAudio_Play ( int track, qboolean looping )
|
||||
{
|
||||
CDstatus cd_stat;
|
||||
|
||||
lastTrack = track+1;
|
||||
lastTrack = track + 1;
|
||||
|
||||
if(!cd_id || !enabled) return;
|
||||
|
||||
cd_stat=SDL_CDStatus(cd_id);
|
||||
|
||||
if(!cdValid)
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
if(!CD_INDRIVE(cd_stat) ||(!cd_id->numtracks)) return;
|
||||
return;
|
||||
}
|
||||
|
||||
cd_stat = SDL_CDStatus( cd_id );
|
||||
|
||||
if ( !cdValid )
|
||||
{
|
||||
if ( !CD_INDRIVE( cd_stat ) || ( !cd_id->numtracks ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
cdValid = true;
|
||||
}
|
||||
|
||||
if((track < 1) || (track >= cd_id->numtracks))
|
||||
if ( ( track < 1 ) || ( track >= cd_id->numtracks ) )
|
||||
{
|
||||
Com_DPrintf("CDAudio: Bad track number: %d\n",track);
|
||||
Com_DPrintf( "CDAudio: Bad track number: %d\n", track );
|
||||
return;
|
||||
}
|
||||
track--; /* Convert track from person to SDL value */
|
||||
if(cd_stat == CD_PLAYING)
|
||||
|
||||
track--;
|
||||
|
||||
if ( cd_stat == CD_PLAYING )
|
||||
{
|
||||
if(cd_id->cur_track == track) return;
|
||||
if ( cd_id->cur_track == track )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CDAudio_Stop();
|
||||
}
|
||||
|
||||
if(SDL_CDPlay(cd_id,cd_id->track[track].offset,
|
||||
cd_id->track[track].length))
|
||||
if ( SDL_CDPlay( cd_id, cd_id->track [ track ].offset,
|
||||
cd_id->track [ track ].length ) )
|
||||
{
|
||||
Com_DPrintf("CDAudio_Play: Unable to play track: %d (%s)\n",track+1, SDL_GetError());
|
||||
Com_DPrintf( "CDAudio_Play: Unable to play track: %d (%s)\n", track + 1, SDL_GetError() );
|
||||
return;
|
||||
}
|
||||
|
||||
playLooping = looping;
|
||||
}
|
||||
|
||||
void CDAudio_RandomPlay(void)
|
||||
void
|
||||
CDAudio_RandomPlay ( void )
|
||||
{
|
||||
int track, i = 0, free_tracks = 0;
|
||||
float f;
|
||||
CDstatus cd_stat;
|
||||
byte* track_bools;
|
||||
int track, i = 0, free_tracks = 0;
|
||||
float f;
|
||||
CDstatus cd_stat;
|
||||
byte *track_bools;
|
||||
|
||||
if (!cd_id || !enabled)
|
||||
return;
|
||||
|
||||
track_bools = (byte*)malloc(cd_id->numtracks* sizeof(byte));
|
||||
|
||||
if (track_bools == 0)
|
||||
return;
|
||||
|
||||
//create array of available audio tracknumbers
|
||||
for (; i < cd_id->numtracks; i++)
|
||||
{
|
||||
track_bools[i] = cd_id->track[i].type == SDL_AUDIO_TRACK;
|
||||
free_tracks += track_bools[i];
|
||||
}
|
||||
|
||||
if (!free_tracks)
|
||||
{
|
||||
Com_DPrintf("CDAudio_RandomPlay: Unable to find and play a random audio track, insert an audio cd please");
|
||||
goto free_end;
|
||||
}
|
||||
|
||||
//choose random audio track
|
||||
do
|
||||
{
|
||||
do
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
f = ((float)rand()) / ((float)RAND_MAX + 1.0);
|
||||
track = (int)(cd_id->numtracks * f);
|
||||
return;
|
||||
}
|
||||
while(!track_bools[track]);
|
||||
|
||||
lastTrack = track+1;
|
||||
|
||||
cd_stat=SDL_CDStatus(cd_id);
|
||||
|
||||
if(!cdValid)
|
||||
{
|
||||
if(!CD_INDRIVE(cd_stat) ||(!cd_id->numtracks))
|
||||
{
|
||||
goto free_end;
|
||||
}
|
||||
cdValid = true;
|
||||
}
|
||||
|
||||
if(cd_stat == CD_PLAYING)
|
||||
{
|
||||
if(cd_id->cur_track == track + 1)
|
||||
{
|
||||
goto free_end;
|
||||
}
|
||||
CDAudio_Stop();
|
||||
}
|
||||
|
||||
if (SDL_CDPlay(cd_id,cd_id->track[track].offset,
|
||||
cd_id->track[track].length))
|
||||
{
|
||||
track_bools[track] = 0;
|
||||
free_tracks--;
|
||||
}
|
||||
else
|
||||
{
|
||||
playLooping = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
while (free_tracks > 0);
|
||||
|
||||
free_end:
|
||||
free((void*)track_bools);
|
||||
track_bools = (byte *) malloc( cd_id->numtracks * sizeof ( byte ) );
|
||||
|
||||
if ( track_bools == 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* create an array of available audio tracknumbers */
|
||||
for ( ; i < cd_id->numtracks; i++ )
|
||||
{
|
||||
track_bools [ i ] = cd_id->track [ i ].type == SDL_AUDIO_TRACK;
|
||||
free_tracks += track_bools [ i ];
|
||||
}
|
||||
|
||||
if ( !free_tracks )
|
||||
{
|
||||
Com_DPrintf( "CDAudio_RandomPlay: Unable to find and play a random audio track, insert an audio cd please" );
|
||||
goto free_end;
|
||||
}
|
||||
|
||||
/*choose random audio track */
|
||||
do
|
||||
{
|
||||
do
|
||||
{
|
||||
f = ( (float) rand() ) / ( (float) RAND_MAX + 1.0 );
|
||||
track = (int) ( cd_id->numtracks * f );
|
||||
}
|
||||
while ( !track_bools [ track ] );
|
||||
|
||||
lastTrack = track + 1;
|
||||
|
||||
cd_stat = SDL_CDStatus( cd_id );
|
||||
|
||||
if ( !cdValid )
|
||||
{
|
||||
if ( !CD_INDRIVE( cd_stat ) || ( !cd_id->numtracks ) )
|
||||
{
|
||||
goto free_end;
|
||||
}
|
||||
|
||||
cdValid = true;
|
||||
}
|
||||
|
||||
if ( cd_stat == CD_PLAYING )
|
||||
{
|
||||
if ( cd_id->cur_track == track + 1 )
|
||||
{
|
||||
goto free_end;
|
||||
}
|
||||
|
||||
CDAudio_Stop();
|
||||
}
|
||||
|
||||
if ( SDL_CDPlay( cd_id, cd_id->track [ track ].offset,
|
||||
cd_id->track [ track ].length ) )
|
||||
{
|
||||
track_bools [ track ] = 0;
|
||||
free_tracks--;
|
||||
}
|
||||
else
|
||||
{
|
||||
playLooping = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
while ( free_tracks > 0 );
|
||||
|
||||
free_end:
|
||||
free( (void *) track_bools );
|
||||
}
|
||||
|
||||
void CDAudio_Stop()
|
||||
void
|
||||
CDAudio_Stop ()
|
||||
{
|
||||
int cdstate;
|
||||
if(!cd_id || !enabled) return;
|
||||
cdstate = SDL_CDStatus(cd_id);
|
||||
if((cdstate != CD_PLAYING) && (cdstate != CD_PAUSED)) return;
|
||||
|
||||
if(SDL_CDStop(cd_id))
|
||||
Com_DPrintf("CDAudio_Stop: Failed to stop track.\n");
|
||||
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
cdstate = SDL_CDStatus( cd_id );
|
||||
|
||||
if ( ( cdstate != CD_PLAYING ) && ( cdstate != CD_PAUSED ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( SDL_CDStop( cd_id ) )
|
||||
{
|
||||
Com_DPrintf( "CDAudio_Stop: Failed to stop track.\n" );
|
||||
}
|
||||
|
||||
playLooping = 0;
|
||||
}
|
||||
|
||||
void CDAudio_Pause()
|
||||
void
|
||||
CDAudio_Pause ()
|
||||
{
|
||||
if(!cd_id || !enabled) return;
|
||||
if(SDL_CDStatus(cd_id) != CD_PLAYING) return;
|
||||
|
||||
if(SDL_CDPause(cd_id))
|
||||
Com_DPrintf("CDAudio_Pause: Failed to pause track.\n");
|
||||
}
|
||||
|
||||
|
||||
void CDAudio_Resume()
|
||||
{
|
||||
if(!cd_id || !enabled) return;
|
||||
if(SDL_CDStatus(cd_id) != CD_PAUSED) return;
|
||||
|
||||
if(SDL_CDResume(cd_id))
|
||||
Com_DPrintf("CDAudio_Resume: Failed to resume track.\n");
|
||||
}
|
||||
|
||||
void CDAudio_Update()
|
||||
{
|
||||
static int cnt=0;
|
||||
|
||||
if(!cd_id || !enabled) return;
|
||||
if(cd_volume && cd_volume->value != cdvolume)
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
if(cdvolume)
|
||||
return;
|
||||
}
|
||||
|
||||
if ( SDL_CDStatus( cd_id ) != CD_PLAYING )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( SDL_CDPause( cd_id ) )
|
||||
{
|
||||
Com_DPrintf( "CDAudio_Pause: Failed to pause track.\n" );
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
CDAudio_Resume ()
|
||||
{
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( SDL_CDStatus( cd_id ) != CD_PAUSED )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( SDL_CDResume( cd_id ) )
|
||||
{
|
||||
Com_DPrintf( "CDAudio_Resume: Failed to resume track.\n" );
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
CDAudio_Update ()
|
||||
{
|
||||
static int cnt = 0;
|
||||
|
||||
if ( !cd_id || !enabled )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( cd_volume && ( cd_volume->value != cdvolume ) )
|
||||
{
|
||||
if ( cdvolume )
|
||||
{
|
||||
Cvar_SetValue("cd_volume",0.0);
|
||||
Cvar_SetValue( "cd_volume", 0.0 );
|
||||
CDAudio_Pause();
|
||||
}
|
||||
else
|
||||
{
|
||||
Cvar_SetValue("cd_volume",1.0);
|
||||
Cvar_SetValue( "cd_volume", 1.0 );
|
||||
CDAudio_Resume();
|
||||
}
|
||||
|
||||
cdvolume = cd_volume->value;
|
||||
return;
|
||||
}
|
||||
// this causes too much overhead to be executed every frame
|
||||
if(++cnt == 16) {
|
||||
cnt=0;
|
||||
if(cd_nocd->value)
|
||||
|
||||
/* this causes too much overhead to be executed every frame */
|
||||
if ( ++cnt == 16 )
|
||||
{
|
||||
cnt = 0;
|
||||
|
||||
if ( cd_nocd->value )
|
||||
{
|
||||
CDAudio_Stop();
|
||||
return;
|
||||
}
|
||||
|
||||
if(playLooping &&
|
||||
(SDL_CDStatus(cd_id) != CD_PLAYING) &&
|
||||
(SDL_CDStatus(cd_id) != CD_PAUSED))
|
||||
|
||||
if ( playLooping &&
|
||||
( SDL_CDStatus( cd_id ) != CD_PLAYING ) &&
|
||||
( SDL_CDStatus( cd_id ) != CD_PAUSED ) )
|
||||
{
|
||||
CDAudio_Play(lastTrack,true);
|
||||
CDAudio_Play( lastTrack, true );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int CDAudio_Init()
|
||||
int
|
||||
CDAudio_Init ()
|
||||
{
|
||||
cvar_t *cv;
|
||||
|
||||
if (initialized)
|
||||
return 0;
|
||||
|
||||
cv = Cvar_Get ("nocdaudio", "0", CVAR_NOSET);
|
||||
if (cv->value)
|
||||
return -1;
|
||||
|
||||
cd_nocd = Cvar_Get ("cd_nocd", "0", CVAR_ARCHIVE );
|
||||
if ( cd_nocd->value)
|
||||
return -1;
|
||||
|
||||
cd_volume = Cvar_Get ("cd_volume", "1", CVAR_ARCHIVE);
|
||||
|
||||
if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) {
|
||||
if (SDL_Init(SDL_INIT_CDROM) < 0) {
|
||||
Com_Printf ("Couldn't init SDL cdrom: %s\n", SDL_GetError ());
|
||||
return -1;
|
||||
}
|
||||
} else if (SDL_WasInit(SDL_INIT_CDROM) == 0) {
|
||||
if (SDL_InitSubSystem(SDL_INIT_CDROM) < 0) {
|
||||
Com_Printf ("Couldn't init SDL cdrom: %s\n", SDL_GetError ());
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
cd_id = SDL_CDOpen(0);
|
||||
if(!cd_id)
|
||||
if ( initialized )
|
||||
{
|
||||
Com_Printf("CDAudio_Init: Unable to open default CD-ROM drive: %s\n",
|
||||
SDL_GetError());
|
||||
return -1;
|
||||
return ( 0 );
|
||||
}
|
||||
|
||||
|
||||
cv = Cvar_Get( "nocdaudio", "0", CVAR_NOSET );
|
||||
|
||||
if ( cv->value )
|
||||
{
|
||||
return ( -1 );
|
||||
}
|
||||
|
||||
cd_nocd = Cvar_Get( "cd_nocd", "0", CVAR_ARCHIVE );
|
||||
|
||||
if ( cd_nocd->value )
|
||||
{
|
||||
return ( -1 );
|
||||
}
|
||||
|
||||
cd_volume = Cvar_Get( "cd_volume", "1", CVAR_ARCHIVE );
|
||||
|
||||
if ( SDL_WasInit( SDL_INIT_EVERYTHING ) == 0 )
|
||||
{
|
||||
if ( SDL_Init( SDL_INIT_CDROM ) < 0 )
|
||||
{
|
||||
Com_Printf( "Couldn't init SDL cdrom: %s\n", SDL_GetError() );
|
||||
return ( -1 );
|
||||
}
|
||||
}
|
||||
else if ( SDL_WasInit( SDL_INIT_CDROM ) == 0 )
|
||||
{
|
||||
if ( SDL_InitSubSystem( SDL_INIT_CDROM ) < 0 )
|
||||
{
|
||||
Com_Printf( "Couldn't init SDL cdrom: %s\n", SDL_GetError() );
|
||||
return ( -1 );
|
||||
}
|
||||
}
|
||||
|
||||
cd_id = SDL_CDOpen( 0 );
|
||||
|
||||
if ( !cd_id )
|
||||
{
|
||||
Com_Printf( "CDAudio_Init: Unable to open default CD-ROM drive: %s\n",
|
||||
SDL_GetError() );
|
||||
return ( -1 );
|
||||
}
|
||||
|
||||
initialized = true;
|
||||
enabled = true;
|
||||
cdValid = true;
|
||||
|
||||
if(!CD_INDRIVE(SDL_CDStatus(cd_id)))
|
||||
|
||||
if ( !CD_INDRIVE( SDL_CDStatus( cd_id ) ) )
|
||||
{
|
||||
Com_Printf("CDAudio_Init: No CD in drive.\n");
|
||||
Com_Printf( "CDAudio_Init: No CD in drive.\n" );
|
||||
cdValid = false;
|
||||
}
|
||||
if(!cd_id->numtracks)
|
||||
|
||||
if ( !cd_id->numtracks )
|
||||
{
|
||||
Com_Printf("CDAudio_Init: CD contains no audio tracks.\n");
|
||||
Com_Printf( "CDAudio_Init: CD contains no audio tracks.\n" );
|
||||
cdValid = false;
|
||||
}
|
||||
Cmd_AddCommand("cd",CD_f);
|
||||
Com_Printf("CD Audio Initialized.\n");
|
||||
return 0;
|
||||
|
||||
Cmd_AddCommand( "cd", CD_f );
|
||||
Com_Printf( "CD Audio Initialized.\n" );
|
||||
return ( 0 );
|
||||
}
|
||||
|
||||
|
||||
void CDAudio_Shutdown()
|
||||
void
|
||||
CDAudio_Shutdown ()
|
||||
{
|
||||
if(!cd_id) return;
|
||||
if ( !cd_id )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CDAudio_Stop();
|
||||
SDL_CDClose(cd_id);
|
||||
SDL_CDClose( cd_id );
|
||||
cd_id = NULL;
|
||||
|
||||
if (SDL_WasInit(SDL_INIT_EVERYTHING) == SDL_INIT_CDROM)
|
||||
|
||||
if ( SDL_WasInit( SDL_INIT_EVERYTHING ) == SDL_INIT_CDROM )
|
||||
{
|
||||
SDL_Quit();
|
||||
}
|
||||
else
|
||||
SDL_QuitSubSystem(SDL_INIT_CDROM);
|
||||
{
|
||||
SDL_QuitSubSystem( SDL_INIT_CDROM );
|
||||
}
|
||||
|
||||
initialized = false;
|
||||
}
|
||||
|
||||
static void CD_f()
|
||||
static void
|
||||
CD_f ()
|
||||
{
|
||||
char *command;
|
||||
int cdstate;
|
||||
if(Cmd_Argc() < 2) return;
|
||||
|
||||
command = Cmd_Argv(1);
|
||||
if(!Q_strcasecmp(command,"on"))
|
||||
if ( Cmd_Argc() < 2 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
command = Cmd_Argv( 1 );
|
||||
|
||||
if ( !Q_strcasecmp( command, "on" ) )
|
||||
{
|
||||
enabled = true;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"off"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "off" ) )
|
||||
{
|
||||
if(!cd_id) return;
|
||||
cdstate = SDL_CDStatus(cd_id);
|
||||
if((cdstate == CD_PLAYING) || (cdstate == CD_PAUSED))
|
||||
if ( !cd_id )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
cdstate = SDL_CDStatus( cd_id );
|
||||
|
||||
if ( ( cdstate == CD_PLAYING ) || ( cdstate == CD_PAUSED ) )
|
||||
{
|
||||
CDAudio_Stop();
|
||||
}
|
||||
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"play"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "play" ) )
|
||||
{
|
||||
CDAudio_Play((byte)atoi(Cmd_Argv(2)),false);
|
||||
CDAudio_Play( (byte) atoi( Cmd_Argv( 2 ) ), false );
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"loop"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "loop" ) )
|
||||
{
|
||||
CDAudio_Play((byte)atoi(Cmd_Argv(2)),true);
|
||||
CDAudio_Play( (byte) atoi( Cmd_Argv( 2 ) ), true );
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"stop"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "stop" ) )
|
||||
{
|
||||
CDAudio_Stop();
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"pause"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "pause" ) )
|
||||
{
|
||||
CDAudio_Pause();
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"resume"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "resume" ) )
|
||||
{
|
||||
CDAudio_Resume();
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"eject"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "eject" ) )
|
||||
{
|
||||
CDAudio_Eject();
|
||||
return;
|
||||
}
|
||||
if(!Q_strcasecmp(command,"info"))
|
||||
|
||||
if ( !Q_strcasecmp( command, "info" ) )
|
||||
{
|
||||
if(!cd_id) return;
|
||||
cdstate = SDL_CDStatus(cd_id);
|
||||
Com_Printf("%d tracks\n",cd_id->numtracks);
|
||||
if(cdstate == CD_PLAYING)
|
||||
Com_Printf("Currently %s track %d\n",
|
||||
playLooping ? "looping" : "playing",
|
||||
cd_id->cur_track+1);
|
||||
if ( !cd_id )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
cdstate = SDL_CDStatus( cd_id );
|
||||
Com_Printf( "%d tracks\n", cd_id->numtracks );
|
||||
|
||||
if ( cdstate == CD_PLAYING )
|
||||
{
|
||||
Com_Printf( "Currently %s track %d\n",
|
||||
playLooping ? "looping" : "playing",
|
||||
cd_id->cur_track + 1 );
|
||||
}
|
||||
else
|
||||
if(cdstate == CD_PAUSED)
|
||||
Com_Printf("Paused %s track %d\n",
|
||||
playLooping ? "looping" : "playing",
|
||||
cd_id->cur_track+1);
|
||||
if ( cdstate == CD_PAUSED )
|
||||
{
|
||||
Com_Printf( "Paused %s track %d\n",
|
||||
playLooping ? "looping" : "playing",
|
||||
cd_id->cur_track + 1 );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CDAudio_Activate (qboolean active)
|
||||
void
|
||||
CDAudio_Activate ( qboolean active )
|
||||
{
|
||||
if (active)
|
||||
CDAudio_Resume ();
|
||||
if ( active )
|
||||
{
|
||||
CDAudio_Resume();
|
||||
}
|
||||
else
|
||||
CDAudio_Pause ();
|
||||
{
|
||||
CDAudio_Pause();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue