コード例 #1
0
ファイル: AudioManager.cs プロジェクト: loreggia/SharpDX
        /// <summary>
        /// Sets the Reverb effect parameters.
        /// </summary>
        /// <param name="parameters">The reverb effect parameters.</param>
        /// /// <exception cref="ObjectDisposedException">Is thrown when this instance was already disposed.</exception>
        public void SetReverbEffectParameters(ReverbParameters parameters)
        {
            DisposeGuard();

            reverbParameters = parameters;

            if (ReverbVoice != null && reverb != null)
            {
                ReverbVoice.SetEffectParameters(0, parameters);
            }
        }
コード例 #2
0
ファイル: AudioManager.cs プロジェクト: loreggia/SharpDX
        /// <summary>
        /// Disables the reverb effect.
        /// </summary>
        public void DisableReverbEffect()
        {
            DisposeGuard();

            if (!IsReverbEffectEnabled)
            {
                return;
            }

            if (ReverbVoice != null && reverb != null)
            {
                ReverbVoice.DisableEffect(0);
            }

            IsReverbEffectEnabled = false;
        }
コード例 #3
0
ファイル: AudioManager.cs プロジェクト: loreggia/SharpDX
        private void DisposeCore()
        {
            if (x3DAudio != null)
            {
                x3DAudio = null;
            }

            if (ReverbVoice != null)
            {
                ReverbVoice.DestroyVoice();
                ReverbVoice.Dispose();
                ReverbVoice = null;
                reverb.Dispose();
                reverb = null;
            }

            IsReverbEffectEnabled = false;

            if (MasteringVoice != null)
            {
                MasteringVoice.DestroyVoice();
                MasteringVoice.Dispose();
                MasteringVoice = null;
            }

            if (masteringLimiter != null)
            {
                masteringLimiter.Dispose();
                masteringLimiter = null;
            }

            IsMasteringLimiterEnabled = false;

            if (Device != null)
            {
                Device.StopEngine();
                Device.Dispose();
                Device = null;
            }
        }
コード例 #4
0
ファイル: AudioManager.cs プロジェクト: loreggia/SharpDX
        /// <summary>
        /// Enables the reverb effect.
        /// </summary>
        public void EnableReverbEffect()
        {
            DisposeGuard();

            if (IsReverbEffectEnabled)
            {
                return;
            }

            if (MasteringVoice != null)
            {
                if (ReverbVoice == null)
                {
                    CreateReverbSubmixVoice();
                }
                else
                {
                    ReverbVoice.EnableEffect(0);
                }
            }

            IsReverbEffectEnabled = true;
        }