|
|
|
@ -33,8 +33,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
|
|
|
|
|
|
#ifdef UQE_FMOD |
|
|
|
|
|
|
|
#include "fmod.h" |
|
|
|
#include "fmod_errors.h" |
|
|
|
#include "../fmodcore/inc/fmod.h" |
|
|
|
#include "../fmodcore/inc/fmod_errors.h" |
|
|
|
|
|
|
|
extern int sound_started; |
|
|
|
|
|
|
|
@ -63,7 +63,6 @@ SND_Channel_t SND_MusicChannel; |
|
|
|
|
|
|
|
FMOD_SYSTEM *fmod_system; |
|
|
|
FMOD_SOUND *fmod_sound; |
|
|
|
FMOD_SOUND *fmod_compactdisc; |
|
|
|
|
|
|
|
FMOD_RESULT fmod_result; |
|
|
|
|
|
|
|
@ -71,17 +70,13 @@ qboolean SND_Initialised; |
|
|
|
qboolean SND_InitialisedCD; |
|
|
|
|
|
|
|
int oldtrack; |
|
|
|
|
|
|
|
char bgmtype[16]; |
|
|
|
char oldbgmtype[16]; |
|
|
|
|
|
|
|
float oldbgmvolume; |
|
|
|
|
|
|
|
|
|
|
|
// forward declarations |
|
|
|
void FMOD_Restart (void); |
|
|
|
void FMOD_MusicStartConsole (void); |
|
|
|
void FMOD_MusicUpdate(char *newbgmtype); |
|
|
|
void FMOD_MusicUpdate (void); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -311,7 +306,6 @@ void FMOD_Startup (void) |
|
|
|
Con_Printf("Speaker Output: Unknown\n"); |
|
|
|
} |
|
|
|
|
|
|
|
strcpy(bgmtype, "cd"); |
|
|
|
oldbgmvolume = bgmvolume.value; |
|
|
|
|
|
|
|
SND_FClose(); |
|
|
|
@ -700,18 +694,10 @@ void FMOD_MusicStart (char *name, qboolean loop, qboolean notify) |
|
|
|
// if an audio file exists play it |
|
|
|
SND_MusicChannel.track = atoi(file); |
|
|
|
strcpy(SND_MusicChannel.trackname, trackname); |
|
|
|
FMOD_MusicUpdate("mod"); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
// otherwise fall back to CD Audio |
|
|
|
SND_MusicChannel.track = atoi(name); |
|
|
|
strcpy(SND_MusicChannel.trackname, "\0"); |
|
|
|
FMOD_MusicUpdate("cd"); |
|
|
|
FMOD_MusicUpdate(); |
|
|
|
} |
|
|
|
|
|
|
|
if (strcmpi(bgmtype, "mod") == 0) |
|
|
|
MOD_Start(SND_MusicChannel.trackname, loop, notify); |
|
|
|
MOD_Start(SND_MusicChannel.trackname, loop, notify); |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
@ -758,8 +744,7 @@ FMOD_MusicPause |
|
|
|
*/ |
|
|
|
void FMOD_MusicPause (void) |
|
|
|
{ |
|
|
|
if (strcmpi(bgmtype, "mod") == 0) |
|
|
|
MOD_Pause(); |
|
|
|
MOD_Pause(); |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
@ -769,8 +754,7 @@ FMOD_MusicResume |
|
|
|
*/ |
|
|
|
void FMOD_MusicResume (void) |
|
|
|
{ |
|
|
|
if (strcmpi(bgmtype, "mod") == 0) |
|
|
|
MOD_Resume(true); |
|
|
|
MOD_Resume(true); |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
@ -778,27 +762,15 @@ void FMOD_MusicResume (void) |
|
|
|
FMOD_MusicUpdate |
|
|
|
=================== |
|
|
|
*/ |
|
|
|
void FMOD_MusicUpdate (char *newbgmtype) |
|
|
|
void FMOD_MusicUpdate (void) |
|
|
|
{ |
|
|
|
if (SND_MusicChannel.track != oldtrack) |
|
|
|
{ |
|
|
|
if (strcmpi(bgmtype, "mod") == 0) |
|
|
|
MOD_Stop(); |
|
|
|
|
|
|
|
MOD_Stop(); |
|
|
|
oldtrack = SND_MusicChannel.track; |
|
|
|
} |
|
|
|
|
|
|
|
if (strcmpi(bgmtype, "mod") == 0) |
|
|
|
MOD_Update(); |
|
|
|
|
|
|
|
if (newbgmtype != NULL) |
|
|
|
strcpy(bgmtype, newbgmtype); |
|
|
|
|
|
|
|
if (strcmpi(bgmtype, oldbgmtype) != 0) |
|
|
|
{ |
|
|
|
FMOD_MusicStop(); |
|
|
|
strcpy(oldbgmtype, bgmtype); |
|
|
|
} |
|
|
|
MOD_Update(); |
|
|
|
|
|
|
|
oldbgmvolume = SND_MusicChannel.volume; |
|
|
|
} |
|
|
|
|