From edfaaf9b962c98c475a1f5896c7c95081ca67ad1 Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Thu, 22 May 2003 01:52:20 +0000 Subject: [PATCH] updated sound code. pitch code needs recent openal cvs. --- src/openal.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/src/openal.c b/src/openal.c index 2a57e7a..65a97a7 100644 --- a/src/openal.c +++ b/src/openal.c @@ -37,14 +37,11 @@ static int SoundActivated = 0; /* openal.c TODO: -1. AL_PITCH code does not work. - OpenAL alf_tpitch is currently broken. (Doesn't work with LOOPING, etc.) - Maps like Last Stand use it for (some rather odd) ambient sounds. +1. AL_PITCH seems to work, but laststand is still a bit weird. 2. Panning somewhat works now. Need someone to verify. 3. There is no EAX/Reverb. But there's probably not much I can do... 4. Restarting sound system may or may not work. 5. Doppler (if it was originally used) isn't currently used. - Probably also broken in OpenAL (see 1). 6. Better Error Handling (device not avail, etc). */ int PlatStartSoundSys() @@ -397,21 +394,13 @@ int PlatPlaySound(int activeIndex) if (!PlatSoundHasStopped(activeIndex)) PlatStopSound (activeIndex); -#if 0 - /* TODO: hack until pitching works right */ - if (GameSounds[si].pitch < -500) - return 0; -#endif - alSourcei (ActiveSounds[activeIndex].ds3DBufferP, AL_BUFFER, GameSounds[si].dsBufferP); -#if 1 /* PLEASE REMOVE IFDEF! */ if (ActiveSounds[activeIndex].loop) alSourcei (ActiveSounds[activeIndex].ds3DBufferP, AL_LOOPING, AL_TRUE); else alSourcei (ActiveSounds[activeIndex].ds3DBufferP, AL_LOOPING, AL_FALSE); -#endif if (1 || ActiveSounds[activeIndex].pitch != GameSounds[si].pitch) { PlatChangeSoundPitch(activeIndex, ActiveSounds[activeIndex].pitch); @@ -539,17 +528,15 @@ int PlatChangeSoundPitch(int activeIndex, int pitch) } alSourcef(ActiveSounds[activeIndex].ds3DBufferP, AL_PITCH, frequency); + +#ifdef OPENAL_DEBUG fprintf(stderr, "OPENAL: freq change = %f\n", frequency); -#if 0 - if (pitch < -500) { /* currently can't play it anyway... */ - alSourceStop(ActiveSounds[activeIndex].ds3DBufferP); - return 0; - } -#endif +#endif + ActiveSounds[activeIndex].pitch = pitch; #ifdef OPENAL_DEBUG - fprintf(stderr, "OPENAL: PlatChangeSoundPitch(%d, %d) = %f\n", activeIndex, pitch, (double)frequency / (double)GameSounds[ActiveSounds[activeIndex].soundIndex].dsFrequency); + fprintf(stderr, "OPENAL: PlatChangeSoundPitch(%d, %d) = %f\n", activeIndex, pitch, (double)frequency); #endif return 1; }