예제 #1
0
        public void Shutdown()
        {
            this.StopAllSounds();
            Channel.shutdown();
            AL.DeleteBuffers(this.buffers.Length, this.buffers);

            if (OpenTkSound.efx)
            {
                EFX.DeleteEffect(OpenTkSound.efxEffectGeneric);
                EFX.DeleteEffect(OpenTkSound.efxEffectUnderwater);
                EFX.DeleteAuxiliaryEffectSlot(OpenTkSound.efxSlot);
            }

            Cmd.RemoveCommand("play");
            Cmd.RemoveCommand("stopsound");
            Cmd.RemoveCommand("soundlist");
            Cmd.RemoveCommand("soundinfo");

            // free all sounds
            for (var i = 0; i < OpenTkSound.num_sfx; i++)
            {
                if (OpenTkSound.known_sfx[i].name == null)
                {
                    continue;
                }

                OpenTkSound.known_sfx[i].clear();
            }

            OpenTkSound.num_sfx = 0;
        }