예제 #1
0
 public void SetReverbDecayTime(IALReverb reverb, float value)
 {
     /* FIXME: WTF is with this XACT value?
      * XACT: 0-30 equal to 0.1-inf seconds?!
      * EFX: 0.1-20 seconds
      * -flibit
      * EFX.alEffectf(
      *      (reverb as OpenALReverb).EffectHandle,
      *      EFX.AL_EAXREVERB_GAIN,
      *      value
      * );
      */
 }
예제 #2
0
        public void SetReverbHighEQGain(IALReverb reverb, float value)
        {
            EFX.alEffectf(
                (reverb as OpenALReverb).EffectHandle,
                EFX.AL_EAXREVERB_GAINHF,
                XACTCalculator.CalculateReverbAmplitudeRatio(
                    value - 8.0f
                    )
                );
#if VERBOSE_AL_DEBUGGING
            CheckALError();
#endif
        }
예제 #3
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
        }
예제 #4
0
        public void SetSourceReverb(IALSource source, IALReverb reverb)
        {
            AL10.alSource3i(
                (source as OpenALSource).Handle,
                EFX.AL_AUXILIARY_SEND_FILTER,
                (int)(reverb as OpenALReverb).SlotHandle,
                0,
                0
                );
#if VERBOSE_AL_DEBUGGING
            CheckALError();
#endif
        }
예제 #5
0
 public void SetReverbLowEQGain(IALReverb reverb, float value)
 {
     // Cutting off volumes from 0db to 4db! -flibit
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_GAINLF,
         Math.Min(
             XACTCalculator.CalculateAmplitudeRatio(
                 value - 8.0f
                 ),
             1.0f
             )
         );
 }
예제 #6
0
        public void SetReverbReflectionsGain(IALReverb reverb, float value)
        {
            // Cutting off possible float values above 3.16, for EFX -flibit
            EFX.alEffectf(
                (reverb as OpenALReverb).EffectHandle,
                EFX.AL_EAXREVERB_REFLECTIONS_GAIN,
                Math.Min(
                    XACTCalculator.CalculateReverbAmplitudeRatio(value),
                    3.16f
                    )
                );
#if VERBOSE_AL_DEBUGGING
            CheckALError();
#endif
        }
예제 #7
0
        public void SetReverbGain(IALReverb reverb, float value)
        {
            // Cutting off volumes from 0db to 20db! -flibit
            EFX.alEffectf(
                (reverb as OpenALReverb).EffectHandle,
                EFX.AL_EAXREVERB_GAIN,
                Math.Min(
                    XACTCalculator.CalculateReverbAmplitudeRatio(value),
                    1.0f
                    )
                );
#if VERBOSE_AL_DEBUGGING
            CheckALError();
#endif
        }
예제 #8
0
 public void SetReverbWetDryMix(IALReverb reverb, float value)
 {
     /* FIXME: Note that were dividing by 200, not 100.
      * For some ridiculous reason the mix is WAY too wet
      * when we actually do the correct math, but cutting
      * the ratio in half mysteriously makes it sound right.
      *
      * Or, well, "more" right. I'm sure we're still off.
      * -flibit
      */
     EFX.alAuxiliaryEffectSlotf(
         (reverb as OpenALReverb).SlotHandle,
         EFX.AL_EFFECTSLOT_GAIN,
         value / 200.0f
         );
 }
예제 #9
0
 public void SetReverbPositionLeft(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #10
0
 public void SetSourceReverb(IALSource source, IALReverb reverb)
 {
     AL10.alSource3i(
         (source as OpenALSource).Handle,
         EFX.AL_AUXILIARY_SEND_FILTER,
         (int) (reverb as OpenALReverb).SlotHandle,
         0,
         0
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #11
0
 public void DeleteReverb(IALReverb reverb)
 {
     // No-op, duh.
 }
예제 #12
0
 public void SetReverbRoomFilterMain(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #13
0
 public void SetReverbRoomSize(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #14
0
 public void SetReverbRoomFilterHighFrequency(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #15
0
 public void SetReverbDensity(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #16
0
		public void SetReverbRoomSize(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #17
0
		public void SetReverbWetDryMix(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #18
0
		public void SetReverbDecayTime(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #19
0
		public void SetReverbDensity(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #20
0
		public void SetReverbGain(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #21
0
		public void SetReverbReflectionsGain(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #22
0
		public void SetReverbRoomFilterHighFrequency(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #23
0
 public void SetReverbLateDiffusion(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #24
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
 }
예제 #25
0
 public void SetReverbRearDelay(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #26
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);
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #27
0
 public void SetReverbGain(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #28
0
 public void SetReverbDecayTime(IALReverb reverb, float value)
 {
     /* FIXME: WTF is with this XACT value?
      * XACT: 0-30 equal to 0.1-inf seconds?!
      * EFX: 0.1-20 seconds
      * -flibit
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_GAIN,
         value
     );
     */
 }
예제 #29
0
 public void SetReverbWetDryMix(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #30
0
 public void SetReverbDensity(IALReverb reverb, float value)
 {
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_DENSITY,
         value / 100.0f
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #31
0
		public void SetReverbLateDiffusion(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #32
0
 public void SetReverbHighEQGain(IALReverb reverb, float value)
 {
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_GAINHF,
         XACTCalculator.CalculateAmplitudeRatio(
             value - 8.0f
         )
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #33
0
		public void SetReverbRoomFilterMain(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #34
0
 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
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #35
0
 public void SetSourceReverb(IALSource source, IALReverb reverb)
 {
     // No-op, duh.
 }
예제 #36
0
 public void SetReverbLowEQCutoff(IALReverb reverb, float value)
 {
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_LFREFERENCE,
         (value * 50.0f) + 50.0f
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #37
0
 public void CommitReverbChanges(IALReverb reverb)
 {
     // No-op, duh.
 }
예제 #38
0
 public void SetReverbLowEQGain(IALReverb reverb, float value)
 {
     // Cutting off volumes from 0db to 4db! -flibit
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_GAINLF,
         Math.Min(
             XACTCalculator.CalculateAmplitudeRatio(
                 value - 8.0f
             ),
             1.0f
         )
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #39
0
 public void SetReverbPositionRightMatrix(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #40
0
 public void SetReverbPositionLeft(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #41
0
 public void SetReverbHighEQCutoff(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #42
0
 public void SetReverbPositionRightMatrix(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #43
0
 public void SetReverbRoomFilterMain(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #44
0
 public void SetReverbRearDelay(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #45
0
 public void SetReverbReflectionsGain(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #46
0
 public void SetReverbReflectionsDelay(IALReverb reverb, float value)
 {
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_REFLECTIONS_DELAY,
         value / 1000.0f
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #47
0
 public void SetReverbDecayTime(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #48
0
 public void SetReverbPositionRight(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #49
0
 public void SetReverbRoomSize(IALReverb reverb, float value)
 {
     // No-op, duh.
 }
예제 #50
0
		public void SetReverbHighEQCutoff(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #51
0
 public void SetReverbRearDelay(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #52
0
 public void SetReverbRoomFilterMain(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #53
0
 public void SetReverbRoomFilterHighFrequency(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #54
0
 public void SetReverbRoomSize(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #55
0
		public void SetReverbPositionRightMatrix(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #56
0
 public void SetReverbWetDryMix(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #57
0
 public void SetReverbReflectionsGain(IALReverb reverb, float value)
 {
     // Cutting off possible float values above 3.16, for EFX -flibit
     EFX.alEffectf(
         (reverb as OpenALReverb).EffectHandle,
         EFX.AL_EAXREVERB_REFLECTIONS_GAIN,
         Math.Min(
             XACTCalculator.CalculateAmplitudeRatio(value),
             3.16f
         )
     );
     #if VERBOSE_AL_DEBUGGING
     CheckALError();
     #endif
 }
예제 #58
0
		public void SetReverbRearDelay(IALReverb reverb, float value)
		{
			// No-op, duh.
		}
예제 #59
0
 public void SetReverbPositionLeftMatrix(IALReverb reverb, float value)
 {
     // No known mapping :(
 }
예제 #60
0
 public void SetReverbRoomFilterHighFrequency(IALReverb reverb, float value)
 {
     // No known mapping :(
 }