public IALFilter GenFilter() { uint handle; EFX.alGenFilters((IntPtr)1, out handle); return(new OpenALFilter(handle)); }
public void Shutdown() { this.StopAllSounds(); Channel.shutdown(); AL.DeleteBuffers(this.buffers.Length, this.buffers); if (OpenTkSound.efx) { EFX.DeleteEffect(OpenTkSound.efxEffectGeneric); EFX.DeleteEffect(OpenTkSound.efxEffectUnderwater); EFX.DeleteAuxiliaryEffectSlot(OpenTkSound.efxSlot); } Cmd.RemoveCommand("play"); Cmd.RemoveCommand("stopsound"); Cmd.RemoveCommand("soundlist"); Cmd.RemoveCommand("soundinfo"); // free all sounds for (var i = 0; i < OpenTkSound.num_sfx; i++) { if (OpenTkSound.known_sfx[i].name == null) { continue; } OpenTkSound.known_sfx[i].clear(); } OpenTkSound.num_sfx = 0; }
public DSPFilter() { uint handle; EFX.alGenFilters((IntPtr)1, out handle); Handle = handle; }
public void ApplyLowPassFilter(IALFilter filter, float hfGain) { uint handle = (filter as OpenALFilter).Handle; EFX.alFilteri(handle, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_LOWPASS); EFX.alFilterf(handle, EFX.AL_LOWPASS_GAINHF, hfGain); }
public void Update(float[] origin, float[] forward, float[] right, float[] up) { Channel.convertVector(origin, this.listenerOrigin); AL.Listener(ALListener3f.Position, this.listenerOrigin[0], this.listenerOrigin[1], this.listenerOrigin[2]); Channel.convertOrientation(forward, up, this.listenerOrientation); AL.Listener(ALListenerfv.Orientation, this.listenerOrientation); // set the listener (master) volume AL.Listener(ALListenerf.Gain, this.s_volume.value); if (OpenTkSound.efx) { if ((GameBase.gi.pointcontents(origin) & Defines.MASK_WATER) != 0) { this.changeEnv = this.currentEnv != OpenTkSound.efxEffectUnderwater; this.currentEnv = OpenTkSound.efxEffectUnderwater; } else { this.changeEnv = this.currentEnv != OpenTkSound.efxEffectGeneric; this.currentEnv = OpenTkSound.efxEffectGeneric; } if (this.changeEnv) { this.changeEnv = false; EFX.AuxiliaryEffectSlot(OpenTkSound.efxSlot, EffectSlotInteger.Effect, this.currentEnv); } } Channel.addLoopSounds(); Channel.addPlaySounds(); Channel.playAllSounds(this.listenerOrigin); }
public void ApplyHighPassFilter(IALFilter filter, float lfGain) { uint handle = (filter as OpenALFilter).Handle; EFX.alFilteri(handle, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_HIGHPASS); EFX.alFilterf(handle, EFX.AL_HIGHPASS_GAINLF, lfGain); }
public void Dispose() { // Delete EFX data uint handle = Handle; EFX.alDeleteAuxiliaryEffectSlots((IntPtr)1, ref handle); EFX.alDeleteEffects((IntPtr)1, ref effectHandle); }
public void CommitChanges() { EFX.alAuxiliaryEffectSloti( Handle, EFX.AL_EFFECTSLOT_EFFECT, (int)effectHandle ); }
public void SetDensity(float value) { EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_DENSITY, value / 100.0f ); }
public void SetHighEQCutoff(float value) { EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_HFREFERENCE, (value * 500.0f) + 1000.0f ); }
public void SetLowEQCutoff(float value) { EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_LFREFERENCE, (value * 50.0f) + 50.0f ); }
public void SetReflectionsDelay(float value) { EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_REFLECTIONS_DELAY, value / 1000.0f ); }
public void SetReverbDensity(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_DENSITY, value / 100.0f ); }
public void SetReverbHighEQCutoff(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_HFREFERENCE, (value * 500.0f) + 1000.0f ); }
public void ApplyBandPassFilter(IALFilter filter, float hfGain, float lfGain) { uint handle = (filter as OpenALFilter).Handle; EFX.alFilteri(handle, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_BANDPASS); EFX.alFilterf(handle, EFX.AL_BANDPASS_GAINHF, hfGain); EFX.alFilterf(handle, EFX.AL_BANDPASS_GAINLF, lfGain); }
public void SetReverbDelay(float value) { EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_LATE_REVERB_DELAY, value / 1000.0f ); }
public void SetReverbDelay(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_LATE_REVERB_DELAY, value / 1000.0f ); }
public void SetReverbReflectionsDelay(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_REFLECTIONS_DELAY, value / 1000.0f ); }
public void DeleteReverb(IALReverb reverb) { OpenALReverb rv = (reverb as OpenALReverb); uint slot = rv.SlotHandle; uint effect = rv.EffectHandle; EFX.alDeleteAuxiliaryEffectSlots((IntPtr)1, ref slot); EFX.alDeleteEffects((IntPtr)1, ref effect); }
public void SetLateDiffusion(float value) { // Same as early diffusion, whatever... -flibit EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_DIFFUSION, value / 15.0f ); }
public DSPEffect() { // Generate the EffectSlot and Effect uint handle; EFX.alGenAuxiliaryEffectSlots((IntPtr)1, out handle); Handle = handle; EFX.alGenEffects((IntPtr)1, out effectHandle); }
public void SetReverbLateDiffusion(IALReverb reverb, float value) { // Same as early diffusion, whatever... -flibit EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_DIFFUSION, value / 15.0f ); }
public void SetSourceLowPassFilter(IALSource source, float hfGain) { EFX.alFilteri(INTERNAL_alFilter, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_LOWPASS); EFX.alFilterf(INTERNAL_alFilter, EFX.AL_LOWPASS_GAINHF, hfGain); AL10.alSourcei( (source as OpenALSource).Handle, EFX.AL_DIRECT_FILTER, (int)INTERNAL_alFilter ); }
public void SetSourceHighPassFilter(IALSource source, float lfGain) { EFX.alFilteri(INTERNAL_alFilter, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_HIGHPASS); EFX.alFilterf(INTERNAL_alFilter, EFX.AL_HIGHPASS_GAINLF, lfGain); AL10.alSourcei( (source as OpenALSource).Handle, EFX.AL_DIRECT_FILTER, (int)INTERNAL_alFilter ); }
public void SetReverbHighEQGain(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_GAINHF, XACTCalculator.CalculateAmplitudeRatio( value - 8.0f ) ); }
public void CommitReverbChanges(IALReverb reverb) { OpenALReverb rv = (reverb as OpenALReverb); EFX.alAuxiliaryEffectSloti( rv.SlotHandle, EFX.AL_EFFECTSLOT_EFFECT, (int)rv.EffectHandle ); }
public void SetHighEQGain(float value) { EFX.alEffectf( effectHandle, EFX.AL_EAXREVERB_GAINHF, XACTCalculator.CalculateAmplitudeRatio( value - 8.0f ) ); }
public void SetReverbDelay(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_LATE_REVERB_DELAY, value / 1000.0f ); #if VERBOSE_AL_DEBUGGING CheckALError(); #endif }
public void SetReverbHighEQCutoff(IALReverb reverb, float value) { EFX.alEffectf( (reverb as OpenALReverb).EffectHandle, EFX.AL_EAXREVERB_HFREFERENCE, (value * 500.0f) + 1000.0f ); #if VERBOSE_AL_DEBUGGING CheckALError(); #endif }
public void DeleteReverb(IALReverb reverb) { OpenALReverb rv = (reverb as OpenALReverb); uint slot = rv.SlotHandle; uint effect = rv.EffectHandle; EFX.alDeleteAuxiliaryEffectSlots(1, ref slot); EFX.alDeleteEffects(1, ref effect); #if VERBOSE_AL_DEBUGGING CheckALError(); #endif }