fixes from ioq3

This commit is contained in:
Richard Allen 2012-03-16 20:42:16 +00:00
parent dd658094c5
commit 4d69dbb4d9
1 changed files with 37 additions and 34 deletions

View File

@ -47,9 +47,9 @@ cvar_t *s_alDevice;
cvar_t *s_alInputDevice;
cvar_t *s_alAvailableDevices;
cvar_t *s_alAvailableInputDevices;
// Makro
cvar_t *s_alEffectsLevel;
static qboolean enumeration_ext = qfalse;
static qboolean enumeration_all_ext = qfalse;
#ifdef USE_VOIP
@ -2348,7 +2348,7 @@ void S_AL_Respatialize( int entityNum, const vec3_t origin, vec3_t axis[3], int
orientation[3] = axis[2][0]; orientation[4] = axis[2][1]; orientation[5] = axis[2][2];
VectorCopy( sorigin, lastListenerOrigin );
// Makro
contents = CM_PointContents(sorigin, 0);
changedContents = contents ^ s_alEffects.lastContents;
s_alEffects.lastContents = contents;
@ -2369,6 +2369,7 @@ void S_AL_Respatialize( int entityNum, const vec3_t origin, vec3_t axis[3], int
qalListenerfv(AL_ORIENTATION, orientation);
}
// Makro
static void S_AL_LerpReverb(const reverb_t* from, const reverb_t* to, float fraction, reverb_t* out)
{
# define LERP_FIELD(field) out->field = from->field + (to->field - from->field) * fraction
@ -2615,6 +2616,30 @@ void S_AL_ClearSoundBuffer( void )
{
}
static void S_AL_ShutDownEffects(void)
{
if (!s_alEffects.initialized)
return;
// Delete Effect
if (s_alEffects.env.alEffect)
qalDeleteEffects(1, &s_alEffects.env.alEffect);
// Delete Auxiliary Effect Slot
if (s_alEffects.env.alEffectSlot)
qalDeleteAuxiliaryEffectSlots(1, &s_alEffects.env.alEffectSlot);
// Delete filter
if (s_alEffects.water.alFilter)
qalDeleteFilters(1, &s_alEffects.water.alFilter);
Com_Memset(&s_alEffects, 0, sizeof(s_alEffects));
Cmd_RemoveCommand("s_alTestReverb");
Cmd_RemoveCommand("writesoundshader");
Cmd_RemoveCommand("writecustinfoparms");
}
/*
=================
S_AL_SoundList
@ -2679,6 +2704,7 @@ static void S_AL_SoundInfo(void)
Com_Printf( " Renderer: %s\n", qalGetString( AL_RENDERER ) );
Com_Printf( " AL Extensions: %s\n", qalGetString( AL_EXTENSIONS ) );
Com_Printf( " ALC Extensions: %s\n", qalcGetString( alDevice, ALC_EXTENSIONS ) );
if(enumeration_all_ext)
Com_Printf(" Device: %s\n", qalcGetString(alDevice, ALC_ALL_DEVICES_SPECIFIER));
else if(enumeration_ext)
@ -2698,30 +2724,6 @@ static void S_AL_SoundInfo(void)
static void S_AL_ShutDownEffects(void)
{
if (!s_alEffects.initialized)
return;
// Delete Effect
if (s_alEffects.env.alEffect)
qalDeleteEffects(1, &s_alEffects.env.alEffect);
// Delete Auxiliary Effect Slot
if (s_alEffects.env.alEffectSlot)
qalDeleteAuxiliaryEffectSlots(1, &s_alEffects.env.alEffectSlot);
// Delete filter
if (s_alEffects.water.alFilter)
qalDeleteFilters(1, &s_alEffects.water.alFilter);
Com_Memset(&s_alEffects, 0, sizeof(s_alEffects));
Cmd_RemoveCommand("s_alTestReverb");
Cmd_RemoveCommand("writesoundshader");
Cmd_RemoveCommand("writecustinfoparms");
}
/*
=================
S_AL_Shutdown
@ -3144,8 +3146,8 @@ qboolean S_AL_Init( soundInterface_t *si )
s_alGraceDistance = Cvar_Get("s_alGraceDistance", "512", CVAR_CHEAT);
s_alDriver = Cvar_Get( "s_alDriver", ALDRIVER_DEFAULT, CVAR_ARCHIVE | CVAR_LATCH );
s_alInputDevice = Cvar_Get( "s_alInputDevice", "", CVAR_ARCHIVE | CVAR_LATCH );
s_alInputDevice = Cvar_Get( "s_alInputDevice", "", CVAR_ARCHIVE | CVAR_LATCH );
s_alDevice = Cvar_Get("s_alDevice", "", CVAR_ARCHIVE | CVAR_LATCH);
s_alEffectsLevel = Cvar_Get("s_alEffects", "1", CVAR_ARCHIVE | CVAR_LATCH );
@ -3260,6 +3262,7 @@ qboolean S_AL_Init( soundInterface_t *si )
qalDopplerFactor( s_alDopplerFactor->value );
qalDopplerVelocity( s_alDopplerSpeed->value );
#ifdef USE_VOIP
// !!! FIXME: some of these alcCaptureOpenDevice() values should be cvars.
// !!! FIXME: add support for capture device enumeration.