Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public void CommitReverbChanges(IALReverb reverb)
        {
            OpenALReverb rv = (reverb as OpenALReverb);

            EFX.alAuxiliaryEffectSloti(
                rv.SlotHandle,
                EFX.AL_EFFECTSLOT_EFFECT,
                (int)rv.EffectHandle
                );
        }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
        public void CommitReverbChanges(IALReverb reverb)
        {
            OpenALReverb rv = (reverb as OpenALReverb);

            EFX.alAuxiliaryEffectSloti(
                rv.SlotHandle,
                EFX.AL_EFFECTSLOT_EFFECT,
                (int)rv.EffectHandle
                );
#if VERBOSE_AL_DEBUGGING
            CheckALError();
#endif
        }
Ejemplo n.º 5
0
        public IALReverb GenReverb(DSPParameter[] parameters)
        {
            uint slot, effect;

            EFX.alGenAuxiliaryEffectSlots(1, out slot);
            EFX.alGenEffects(1, out effect);
            // Set up the Reverb Effect
            EFX.alEffecti(
                effect,
                EFX.AL_EFFECT_TYPE,
                EFX.AL_EFFECT_EAXREVERB
                );

            IALReverb result = new OpenALReverb(slot, effect);

            // Apply initial values
            SetReverbReflectionsDelay(result, parameters[0].Value);
            SetReverbDelay(result, parameters[1].Value);
            SetReverbPositionLeft(result, parameters[2].Value);
            SetReverbPositionRight(result, parameters[3].Value);
            SetReverbPositionLeftMatrix(result, parameters[4].Value);
            SetReverbPositionRightMatrix(result, parameters[5].Value);
            SetReverbEarlyDiffusion(result, parameters[6].Value);
            SetReverbLateDiffusion(result, parameters[7].Value);
            SetReverbLowEQGain(result, parameters[8].Value);
            SetReverbLowEQCutoff(result, parameters[9].Value);
            SetReverbHighEQGain(result, parameters[10].Value);
            SetReverbHighEQCutoff(result, parameters[11].Value);
            SetReverbRearDelay(result, parameters[12].Value);
            SetReverbRoomFilterFrequency(result, parameters[13].Value);
            SetReverbRoomFilterMain(result, parameters[14].Value);
            SetReverbRoomFilterHighFrequency(result, parameters[15].Value);
            SetReverbReflectionsGain(result, parameters[16].Value);
            SetReverbGain(result, parameters[17].Value);
            SetReverbDecayTime(result, parameters[18].Value);
            SetReverbDensity(result, parameters[19].Value);
            SetReverbRoomSize(result, parameters[20].Value);
            SetReverbWetDryMix(result, parameters[21].Value);

            // Bind the Effect to the EffectSlot. XACT will use the EffectSlot.
            EFX.alAuxiliaryEffectSloti(
                slot,
                EFX.AL_EFFECTSLOT_EFFECT,
                (int)effect
                );

#if VERBOSE_AL_DEBUGGING
            CheckALError();
#endif
            return(result);
        }
Ejemplo n.º 6
0
        public IALReverb GenReverb(DSPParameter[] parameters)
        {
            uint slot, effect;
            EFX.alGenAuxiliaryEffectSlots((IntPtr) 1, out slot);
            EFX.alGenEffects((IntPtr) 1, out effect);
            // Set up the Reverb Effect
            EFX.alEffecti(
                effect,
                EFX.AL_EFFECT_TYPE,
                EFX.AL_EFFECT_EAXREVERB
            );

            IALReverb result = new OpenALReverb(slot, effect);

            // Apply initial values
            SetReverbReflectionsDelay(result, parameters[0].Value);
            SetReverbDelay(result, parameters[1].Value);
            SetReverbPositionLeft(result, parameters[2].Value);
            SetReverbPositionRight(result, parameters[3].Value);
            SetReverbPositionLeftMatrix(result, parameters[4].Value);
            SetReverbPositionRightMatrix(result, parameters[5].Value);
            SetReverbEarlyDiffusion(result, parameters[6].Value);
            SetReverbLateDiffusion(result, parameters[7].Value);
            SetReverbLowEQGain(result, parameters[8].Value);
            SetReverbLowEQCutoff(result, parameters[9].Value);
            SetReverbHighEQGain(result, parameters[10].Value);
            SetReverbHighEQCutoff(result, parameters[11].Value);
            SetReverbRearDelay(result, parameters[12].Value);
            SetReverbRoomFilterFrequency(result, parameters[13].Value);
            SetReverbRoomFilterMain(result, parameters[14].Value);
            SetReverbRoomFilterHighFrequency(result, parameters[15].Value);
            SetReverbReflectionsGain(result, parameters[16].Value);
            SetReverbGain(result, parameters[17].Value);
            SetReverbDecayTime(result, parameters[18].Value);
            SetReverbDensity(result, parameters[19].Value);
            SetReverbRoomSize(result, parameters[20].Value);
            SetReverbWetDryMix(result, parameters[21].Value);

            // Bind the Effect to the EffectSlot. XACT will use the EffectSlot.
            EFX.alAuxiliaryEffectSloti(
                slot,
                EFX.AL_EFFECTSLOT_EFFECT,
                (int) effect
            );

            #if VERBOSE_AL_DEBUGGING
            CheckALError();
            #endif
            return result;
        }