make the openal code compile without eax and enable it by default

This commit is contained in:
Jonathan Gray 2013-04-28 11:46:44 +10:00
parent 699d21fe54
commit 53f109836e

View file

@ -155,7 +155,7 @@ portable_samplepair_t s_rawsamples[MAX_RAW_SAMPLES];
* *
\**************************************************************************************************/ \**************************************************************************************************/
int s_UseOpenAL = false; // Determines if using Open AL or the default software mixer int s_UseOpenAL = true; // Determines if using Open AL or the default software mixer
ALfloat listener_pos[3]; // Listener Position ALfloat listener_pos[3]; // Listener Position
ALfloat listener_ori[6]; // Listener Orientation ALfloat listener_ori[6]; // Listener Orientation
int s_numChannels; // Number of AL Sources == Num of Channels int s_numChannels; // Number of AL Sources == Num of Channels
@ -167,6 +167,7 @@ void UpdateLoopingSounds();
void UpdateRawSamples(); void UpdateRawSamples();
// EAX Related // EAX Related
#ifdef HAVE_EAX
ALboolean s_bEAX; // Is EAX 3.0 support is available ALboolean s_bEAX; // Is EAX 3.0 support is available
bool s_bEALFileLoaded; // Has an .eal file been loaded for the current level bool s_bEALFileLoaded; // Has an .eal file been loaded for the current level
bool s_bInWater; // Underwater effect currently active bool s_bInWater; // Underwater effect currently active
@ -204,6 +205,8 @@ const GUID DSPROPSETID_EAX30_ListenerProperties
const GUID DSPROPSETID_EAX30_BufferProperties const GUID DSPROPSETID_EAX30_BufferProperties
= { 0xa8fa6881, 0xb476, 0x11d3, { 0xbd, 0xb9, 0x0, 0xc0, 0xf0, 0x2d, 0xdf, 0x87} }; = { 0xa8fa6881, 0xb476, 0x11d3, { 0xbd, 0xb9, 0x0, 0xc0, 0xf0, 0x2d, 0xdf, 0x87} };
#endif // HAVE_EAX
/**************************************************************************************************\ /**************************************************************************************************\
* *
* End of Open AL Specific * End of Open AL Specific
@ -304,7 +307,7 @@ void S_Init( void )
// dontcha just love ID's defines sometimes?... // dontcha just love ID's defines sometimes?...
// //
#if !( (defined __linux__ || __FreeBSD__ ) && (defined __i386__) ) #ifdef _MSVC_VER
#if !id386 #if !id386
#else #else
extern unsigned int uiMMXAvailable; extern unsigned int uiMMXAvailable;
@ -327,12 +330,9 @@ void S_Init( void )
Cmd_AddCommand("soundstop", S_StopAllSounds); Cmd_AddCommand("soundstop", S_StopAllSounds);
cv = Cvar_Get("s_UseOpenAL" , "0",CVAR_ARCHIVE|CVAR_LATCH);
s_UseOpenAL = !!(cv->integer);
if (s_UseOpenAL) if (s_UseOpenAL)
{ {
ALCDevice = alcOpenDevice((ALubyte*)"DirectSound3D"); ALCDevice = alcOpenDevice(NULL);
if (!ALCDevice) if (!ALCDevice)
return; return;
@ -357,14 +357,18 @@ void S_Init( void )
S_SoundInfo_f(); S_SoundInfo_f();
// Set default level name // Set default level name
#ifdef HAVE_EAX
memset(s_LevelName, 0, sizeof(s_LevelName)); memset(s_LevelName, 0, sizeof(s_LevelName));
#endif
// Set Listener attributes // Set Listener attributes
alListenerfv(AL_POSITION,listenerPos); alListenerfv(AL_POSITION,listenerPos);
alListenerfv(AL_VELOCITY,listenerVel); alListenerfv(AL_VELOCITY,listenerVel);
alListenerfv(AL_ORIENTATION,listenerOri); alListenerfv(AL_ORIENTATION,listenerOri);
#ifdef HAVE_EAX
InitEAXManager(); InitEAXManager();
#endif
memset(s_channels, 0, sizeof(s_channels)); memset(s_channels, 0, sizeof(s_channels));
@ -562,7 +566,9 @@ void S_Shutdown( void )
// Close device // Close device
alcCloseDevice(ALCDevice); alcCloseDevice(ALCDevice);
#ifdef HAVE_EAX
ReleaseEAXManager(); ReleaseEAXManager();
#endif
s_numChannels = 0; s_numChannels = 0;
} }
@ -751,6 +757,7 @@ void S_BeginRegistration( void )
} }
} }
#ifdef HAVE_EAX
void EALFileInit(char *level) void EALFileInit(char *level)
{ {
long lRoom; long lRoom;
@ -797,6 +804,7 @@ void EALFileInit(char *level)
} }
} }
} }
#endif // HAVE_EAX
/* /*
================== ==================
@ -1946,10 +1954,12 @@ void S_UpdateEntityPosition( int entityNum, const vec3_t origin )
pos[2] = -origin[1]; pos[2] = -origin[1];
alSourcefv(s_channels[i].alSource, AL_POSITION, pos); alSourcefv(s_channels[i].alSource, AL_POSITION, pos);
#ifdef HAVE_EAX
if (s_bEALFileLoaded) if (s_bEALFileLoaded)
{ {
UpdateEAXBuffer(ch); UpdateEAXBuffer(ch);
} }
#endif
} }
} }
} }
@ -1967,7 +1977,9 @@ Change the volumes of all the playing sounds for changes in their positions
*/ */
void S_Respatialize( int entityNum, const vec3_t head, vec3_t axis[3], int inwater ) void S_Respatialize( int entityNum, const vec3_t head, vec3_t axis[3], int inwater )
{ {
#ifdef HAVE_EAX
EAXOCCLUSIONPROPERTIES eaxOCProp; EAXOCCLUSIONPROPERTIES eaxOCProp;
#endif
unsigned int ulEnvironment; unsigned int ulEnvironment;
int i; int i;
channel_t *ch; channel_t *ch;
@ -1982,11 +1994,13 @@ void S_Respatialize( int entityNum, const vec3_t head, vec3_t axis[3], int inwat
{ {
// Check if a new level has been loaded - if so, try and load the appropriate EAL file // Check if a new level has been loaded - if so, try and load the appropriate EAL file
mapname = cl.mapname; mapname = cl.mapname;
#ifdef HAVE_EAX
if ((mapname) && (strcmp(mapname, s_LevelName) != 0)) if ((mapname) && (strcmp(mapname, s_LevelName) != 0))
{ {
EALFileInit(mapname); EALFileInit(mapname);
strcpy(s_LevelName, mapname); strcpy(s_LevelName, mapname);
} }
#endif
listener_number = entityNum; listener_number = entityNum;
@ -2002,7 +2016,7 @@ void S_Respatialize( int entityNum, const vec3_t head, vec3_t axis[3], int inwat
listener_ori[4] = axis[2][2]; listener_ori[4] = axis[2][2];
listener_ori[5] = -axis[2][1]; listener_ori[5] = -axis[2][1];
alListenerfv(AL_ORIENTATION, listener_ori); alListenerfv(AL_ORIENTATION, listener_ori);
#ifdef HAVE_EAX
// Update EAX effects here // Update EAX effects here
if (s_bEALFileLoaded) if (s_bEALFileLoaded)
{ {
@ -2055,6 +2069,7 @@ void S_Respatialize( int entityNum, const vec3_t head, vec3_t axis[3], int inwat
} }
} }
} }
#endif // HAVE_EAX
} }
else else
{ {
@ -2296,8 +2311,10 @@ void S_Update_(void) {
alSourcei(s_channels[source].alSource, AL_LOOPING, AL_FALSE); alSourcei(s_channels[source].alSource, AL_LOOPING, AL_FALSE);
alSourcef(s_channels[source].alSource, AL_GAIN, ((float)(ch->master_vol) * s_volume->value) / 255.0f); alSourcef(s_channels[source].alSource, AL_GAIN, ((float)(ch->master_vol) * s_volume->value) / 255.0f);
#ifdef HAVE_EAX
if (s_bEALFileLoaded) if (s_bEALFileLoaded)
UpdateEAXBuffer(ch); UpdateEAXBuffer(ch);
#endif
int nBytesDecoded = 0; int nBytesDecoded = 0;
int nTotalBytesDecoded = 0; int nTotalBytesDecoded = 0;
@ -2387,7 +2404,9 @@ void S_Update_(void) {
UpdateRawSamples(); UpdateRawSamples();
#ifdef HAVE_EAX
EAXMorph(); EAXMorph();
#endif
} }
else else
{ {
@ -2667,8 +2686,10 @@ void UpdateLoopingSounds()
alSourcei(s_channels[source].alSource, AL_LOOPING, AL_TRUE); alSourcei(s_channels[source].alSource, AL_LOOPING, AL_TRUE);
alSourcef(s_channels[source].alSource, AL_GAIN, (float)(ch->master_vol) * s_volume->value * fVolume); alSourcef(s_channels[source].alSource, AL_GAIN, (float)(ch->master_vol) * s_volume->value * fVolume);
#ifdef HAVE_EAX
if (s_bEALFileLoaded) if (s_bEALFileLoaded)
UpdateEAXBuffer(ch); UpdateEAXBuffer(ch);
#endif
alGetError(); alGetError();
alSourcePlay(s_channels[source].alSource); alSourcePlay(s_channels[source].alSource);
@ -2721,7 +2742,9 @@ void UpdateRawSamples()
size = (s_rawend - s_paintedtime)<<2; size = (s_rawend - s_paintedtime)<<2;
if (size > (MAX_RAW_SAMPLES<<2)) if (size > (MAX_RAW_SAMPLES<<2))
{ {
#ifdef _DEBUG
OutputDebugString("UpdateRawSamples :- Raw Sample buffer has overflowed !!!\n"); OutputDebugString("UpdateRawSamples :- Raw Sample buffer has overflowed !!!\n");
#endif
// s_rawend = s_paintedtime + MAX_RAW_SAMPLES; // s_rawend = s_paintedtime + MAX_RAW_SAMPLES;
// size = MAX_RAW_SAMPLES<<2; // size = MAX_RAW_SAMPLES<<2;
size = MAX_RAW_SAMPLES<<2; size = MAX_RAW_SAMPLES<<2;
@ -3649,6 +3672,7 @@ qboolean SND_RegisterAudio_LevelLoadEnd(qboolean bDeleteEverythingNotUsedThisLev
return bAtLeastOneSoundDropped; return bAtLeastOneSoundDropped;
} }
#ifdef HAVE_EAX
/****************************************************************************************************\ /****************************************************************************************************\
* *
* EAX Related * EAX Related
@ -4285,3 +4309,4 @@ void Clamp(EAXVECTOR *eaxVector)
eaxVector->y *= flInvMagnitude; eaxVector->y *= flInvMagnitude;
eaxVector->z *= flInvMagnitude; eaxVector->z *= flInvMagnitude;
} }
#endif // HAVE_EAX