/// <summary> /// Constructor /// </summary> /// <param name="soundEffect">Sound effect</param> /// <param name="sourceVoice">Source voice</param> /// <param name="emitterDescription">Emitter description</param> /// <param name="listenerDescription">Listener description</param> /// <param name="destroyWhenFinished">Sets whether the instance must be disposed after it's finished</param> internal GameAudioEffectInstance( GameAudioEffect soundEffect, SourceVoice sourceVoice, GameAudioSourceDescription emitterDescription, GameAudioSourceDescription listenerDescription, bool destroyWhenFinished) { Effect = soundEffect; voice = sourceVoice; paused = false; IsLooped = false; volume = 1.0f; pan = 0.0f; pitch = 0.0f; outputMatrix = null; Emitter = new GameAudioEmitter(emitterDescription); Listener = new GameAudioListener(listenerDescription); voice.BufferStart += SourceVoice_BufferStart; voice.BufferEnd += SourceVoice_BufferEnd; voice.LoopEnd += SourceVoice_LoopEnd; this.destroyWhenFinished = destroyWhenFinished; }
/// <summary> /// Creates a new effect instance /// </summary> /// <param name="emitterDescription">Emitter description</param> /// <param name="listenerDescription">Listener description</param> /// <param name="destroyWhenFinished">Sets whether the new instance must be disposed after it's play</param> /// <returns>Returns the new created instance</returns> public GameAudioEffectInstance Create( GameAudioSourceDescription emitterDescription, GameAudioSourceDescription listenerDescription, bool destroyWhenFinished = true) { var sourceVoice = this.GameAudio.CreateVoice(this.WaveFormat, VoiceFlags.UseFilter); var instance = new GameAudioEffectInstance(this, sourceVoice, emitterDescription, listenerDescription, destroyWhenFinished); toDelete.Add(instance); return(instance); }
/// <summary> /// Constructor /// </summary> /// <param name="sourceDescription">Source description</param> protected GameAudioSource(GameAudioSourceDescription sourceDescription) { Radius = sourceDescription.Radius; Cone = sourceDescription.Cone; }