X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=cd_shared.c;h=43b4a7f43338cadf08df419faf21c4da21ac66d2;hb=fe52804d325b7688cab684f2b83ba1106702a2aa;hp=fb37315c8c40c178e187e90399ccb958320c71e2;hpb=b3030be8791663d54406b82fd5d307c948bd8bdd;p=xonotic%2Fdarkplaces.git diff --git a/cd_shared.c b/cd_shared.c index fb37315c..43b4a7f4 100644 --- a/cd_shared.c +++ b/cd_shared.c @@ -24,21 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "cdaudio.h" #include "sound.h" -// Prototypes of the system dependent functions -extern void CDAudio_SysEject (void); -extern void CDAudio_SysCloseDoor (void); -extern int CDAudio_SysGetAudioDiskInfo (void); -extern float CDAudio_SysGetVolume (void); -extern void CDAudio_SysSetVolume (float volume); -extern int CDAudio_SysPlay (int track); -extern int CDAudio_SysStop (void); -extern int CDAudio_SysPause (void); -extern int CDAudio_SysResume (void); -extern int CDAudio_SysUpdate (void); -extern void CDAudio_SysInit (void); -extern int CDAudio_SysStartup (void); -extern void CDAudio_SysShutdown (void); - // used by menu to ghost CD audio slider cvar_t cdaudioinitialized = {CVAR_READONLY,"cdaudioinitialized","0","indicates if CD Audio system is active"}; cvar_t cdaudio = {CVAR_SAVE,"cdaudio","1","CD playing mode (0 = never access CD drive, 1 = play CD tracks if no replacement available, 2 = play fake tracks if no CD track available, 3 = play only real CD tracks, 4 = play real CD tracks even instead of named fake tracks)"}; @@ -164,7 +149,7 @@ static int CDAudio_GetAudioDiskInfo (void) return 0; } -qboolean CDAudio_Play_real (int track, qboolean looping, qboolean complain) +static qboolean CDAudio_Play_real (int track, qboolean looping, qboolean complain) { if(track < 1) { @@ -322,15 +307,11 @@ void CDAudio_Play_byName (const char *trackname, qboolean looping, qboolean tryr if (!FS_FileExists(filename)) dpsnprintf(filename, sizeof(filename), "music/%s.ogg", trackname); // added by motorsep if (!FS_FileExists(filename)) dpsnprintf(filename, sizeof(filename), "music/cdtracks/%s.ogg", trackname); // added by motorsep } - if (FS_FileExists(filename) && (sfx = S_PrecacheSound (filename, false, true))) + if (FS_FileExists(filename) && (sfx = S_PrecacheSound (filename, false, false))) { - faketrack = S_StartSound_StartPosition (-1, 0, sfx, vec3_origin, cdvolume, 0, startposition); + faketrack = S_StartSound_StartPosition_Flags (-1, 0, sfx, vec3_origin, cdvolume, 0, startposition, (looping ? CHANNELFLAG_FORCELOOP : 0) | CHANNELFLAG_FULLVOLUME | CHANNELFLAG_LOCALSOUND, 1.0f); if (faketrack != -1) { - if (looping) - S_SetChannelFlag (faketrack, CHANNELFLAG_FORCELOOP, true); - S_SetChannelFlag (faketrack, CHANNELFLAG_FULLVOLUME, true); - S_SetChannelFlag (faketrack, CHANNELFLAG_LOCALSOUND, true); // not pausable if(track >= 1) { if(cdaudio.integer != 0) // we don't need these messages if only fake tracks can be played anyway @@ -393,7 +374,7 @@ void CDAudio_Stop (void) if (faketrack != -1) { - S_StopChannel (faketrack, true); + S_StopChannel (faketrack, true, true); faketrack = -1; } else if (cdPlaying && (CDAudio_SysStop() == -1)) @@ -508,7 +489,7 @@ static void CD_f (void) { if (music_playlist_index.integer >= 0) return; - CDAudio_Play_byName(Cmd_Argv (2), false, true, 0); + CDAudio_Play_byName(Cmd_Argv (2), false, true, (Cmd_Argc() > 3) ? atof( Cmd_Argv(3) ) : 0); return; } @@ -516,7 +497,7 @@ static void CD_f (void) { if (music_playlist_index.integer >= 0) return; - CDAudio_Play_byName(Cmd_Argv (2), true, true, 0); + CDAudio_Play_byName(Cmd_Argv (2), true, true, (Cmd_Argc() > 3) ? atof( Cmd_Argv(3) ) : 0); return; } @@ -579,15 +560,15 @@ static void CD_f (void) Con_Printf("cd remap [remap2] [remap3] [...] - chooses (possibly emulated) CD tracks to play when a map asks for a particular track, this has many uses\n"); Con_Printf("cd close - closes CD tray\n"); Con_Printf("cd eject - stops playing music and opens CD tray to allow you to change disc\n"); - Con_Printf("cd play - plays selected track in remapping table\n"); - Con_Printf("cd loop - plays and repeats selected track in remapping table\n"); + Con_Printf("cd play - plays selected track in remapping table\n"); + Con_Printf("cd loop - plays and repeats selected track in remapping table\n"); Con_Printf("cd stop - stops playing current CD track\n"); Con_Printf("cd pause - pauses CD playback\n"); Con_Printf("cd resume - unpauses CD playback\n"); Con_Printf("cd info - prints basic disc information (number of tracks, currently playing track, volume level)\n"); } -void CDAudio_SetVolume (float newvol) +static void CDAudio_SetVolume (float newvol) { // If the volume hasn't changed if (newvol == cdvolume) @@ -605,7 +586,7 @@ void CDAudio_SetVolume (float newvol) if (faketrack != -1) S_SetChannelVolume (faketrack, newvol); else - CDAudio_SysSetVolume (newvol); + CDAudio_SysSetVolume (newvol * mastervolume.value); } cdvolume = newvol;