Example #1
0
        void CloseDevice()
        {
            _sourceVoice?.Stop(PlayFlags.None, XAUDIO2_COMMIT_NOW);
            _sourceVoice?.FlushSourceBuffers();
            _sourceVoice?.DestroyVoice();
            _sourceVoice?.Dispose();

            _xaudio2?.StopEngine();

            _masteringVoice?.DestroyVoice();
            _masteringVoice?.Dispose();

            _xaudio2?.Dispose();

            _sourceVoice    = null;
            _masteringVoice = null;
            _xaudio2        = null;

            //if (_hidden.handle.IsAllocated)
            //{
            //    _hidden.handle.Free();
            //    _hidden.device = IntPtr.Zero;
            //}

            if (_hidden.mixbuf != null)
            {
                Marshal.FreeHGlobal((IntPtr)_hidden.mixbuf);
                _hidden.mixbuf = null;
            }

            _dev = null;
        }
Example #2
0
        private void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    StopFxSounds();
                    StopEnvSounds();

                    _currentBgm?.DestroyVoice();
                    _currentBgm?.Dispose();
                    _currentBgm = null;

                    _fxLinkedSoundList.Clear();
                    _envLinkedSoundList.Clear();

                    UnloadAll();

                    _fxSubmixVoice.DestroyVoice();
                    _fxSubmixVoice.Dispose();

                    _envSubmixVoice.DestroyVoice();
                    _envSubmixVoice.Dispose();

                    _masteringVoice.DestroyVoice();
                    _masteringVoice.Dispose();

                    _xAudio2.Dispose();
                }

                _disposed = true;
            }
        }
        // Does someone actually need to call this if it only happens when the whole
        // game closes? And if so, who would make the call?
        internal static void Shutdown()
        {
            MasterVoice.DestroyVoice();
            MasterVoice.Dispose();

            Device.StopEngine();
            Device.Dispose();
        }
Example #4
0
        public void Dispose()
        {
            Stop();

            for (int i = 0; i < audioBuffersRing.Length; i++)
            {
                Utilities.FreeMemory(memBuffers[i].Pointer);
                memBuffers[i].Pointer = IntPtr.Zero;
            }

            masteringVoice.DestroyVoice();
            masteringVoice.Dispose();
            masteringVoice = null;

            xaudio2.Dispose();
            xaudio2 = null;
        }
Example #5
0
        protected void DestroyXAudio()
        {
            if (_masteringVoice != null)
            {
                if (!_masteringVoice.IsDisposed)
                {
                    _masteringVoice.DestroyVoice();
                    _masteringVoice.Dispose();
                }
                _masteringVoice = null;
            }

            if (_xAudio != null && !_xAudio.IsDisposed)
            {
                _xAudio.Dispose();
            }
            _xAudio = null;
        }
Example #6
0
        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;
            }
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="disposing"></param>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (MasterVoice != null)
                {
                    MasterVoice.DestroyVoice();
                    MasterVoice.Dispose();
                    MasterVoice = null;
                }

                if (Device != null)
                {
                    Device.StopEngine();
                    Device.Dispose();
                    Device = null;
                }

                _device3DDirty = true;
                _speakers      = Speakers.Stereo;
            }
        }