コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="sourceDescription">Source description</param>
 protected GameAudioSource(GameAudioSourceDescription sourceDescription)
 {
     Radius = sourceDescription.Radius;
     Cone   = sourceDescription.Cone;
 }