示例#1
0
        private static void Close()
        {
            //Free loaded images
            _PromptTexture.Free();

            //Free the sound effects
            SDL_mixer.Mix_FreeChunk(_Scratch);
            SDL_mixer.Mix_FreeChunk(_High);
            SDL_mixer.Mix_FreeChunk(_Medium);
            SDL_mixer.Mix_FreeChunk(_Low);
            _Scratch = IntPtr.Zero;
            _High    = IntPtr.Zero;
            _Medium  = IntPtr.Zero;
            _Low     = IntPtr.Zero;

            //Free the music
            SDL_mixer.Mix_FreeMusic(_Music);
            _Music = IntPtr.Zero;

            //Destroy window
            SDL.SDL_DestroyRenderer(Renderer);
            SDL.SDL_DestroyWindow(_Window);
            _Window  = IntPtr.Zero;
            Renderer = IntPtr.Zero;

            //Quit SDL subsystems
            SDL_mixer.Mix_Quit();
            SDL_image.IMG_Quit();
            SDL.SDL_Quit();
        }
示例#2
0
文件: SDLSound.cs 项目: Jebeli/Tiles
 protected override void Dispose(bool disposing)
 {
     if (!chunk.Equals(IntPtr.Zero))
     {
         SDL_mixer.Mix_FreeChunk(chunk);
     }
     chunk = IntPtr.Zero;
 }
示例#3
0
 public void StopSong()
 {
     if (music == IntPtr.Zero)
     {
         return;
     }
     SDL_mixer.Mix_FreeChunk(music);
 }
 public void StopSong()
 {
     if (music == IntPtr.Zero)
     {
         return;
     }
     SDL_mixer.Mix_HaltChannel(musicChannel);
     SDL_mixer.Mix_FreeChunk(music);
     music = IntPtr.Zero;
 }
示例#5
0
 internal static void deinitialiser_son()
 {
     foreach (var musique in musiques)
     {
         SDL_mixer.Mix_FreeMusic(musique.Value);
     }
     musiques.Clear();
     foreach (var son in sons)
     {
         SDL_mixer.Mix_FreeChunk(son.Value);
     }
     sons.Clear();
     SDL_mixer.Mix_CloseAudio();
 }
    public static void Main()
    {
        int    audio_rate     = 44100;
        ushort audio_format   = SDL.AUDIO_S16SYS;
        int    audio_channels = 2;
        int    audio_buffers  = 4096;
        int    audio_volume   = SDL_mixer.MIX_MAX_VOLUME;
        int    timeleft       = 50;

        SDL.SDL_Init(SDL.SDL_INIT_AUDIO);
        if (SDL_mixer.Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers) < 0)
        {
            return;
        }
        else
        {
            SDL_mixer.Mix_QuerySpec(out audio_rate, out audio_format, out audio_channels);
        }
        SDL_mixer.Mix_AllocateChannels(32);
        SDL_mixer.Mix_VolumeMusic(audio_volume / 3);

        System.IntPtr music = SDL_mixer.Mix_LoadMUS("Tetris_theme.ogg");
        System.IntPtr wave  = SDL_mixer.Mix_LoadWAV("Meow.ogg");
        SDL_mixer.Mix_FadeInMusic(music, 1, 2000);
        while (SDL_mixer.Mix_PlayingMusic() != 0)
        {
            SDL.SDL_Delay(100);
            timeleft--;
            if (timeleft == 0)
            {
                break;
            }
            if (timeleft == 25)
            {
                SDL_mixer.Mix_PlayChannel(-1, wave, 0);
            }
        }
        SDL_mixer.Mix_FadeOutMusic(2000);
        SDL_mixer.Mix_FreeMusic(music);
        SDL_mixer.Mix_FreeChunk(wave);
        SDL.SDL_Delay(500);
        SDL_mixer.Mix_CloseAudio();
        SDL.SDL_Quit();
    }
示例#7
0
        /**
         * Used to cleanup after the SDL resources.
         */
        public void Dispose()
        {
            if (_renderer != IntPtr.Zero)
            {
                SDL.SDL_DestroyRenderer(_renderer);
            }

            if (_window != IntPtr.Zero)
            {
                SDL.SDL_DestroyWindow(_window);
            }

            if (soundEffects != null)
            {
                foreach (var entry in soundEffects)
                {
                    var pointer = entry.Value;
                    SDL_mixer.Mix_FreeChunk(pointer);
                }

                SDL_mixer.Mix_CloseAudio();
            }
        }
示例#8
0
文件: Sound.cs 项目: rkhapov/simple3d
 public void Dispose()
 {
     SDL_mixer.Mix_FreeChunk(chunk);
 }
示例#9
0
        public void Dispose()
        {
            SDL_mixer.Mix_FreeChunk(myPtr);

            GC.SuppressFinalize(this);
        }
示例#10
0
 public void Dispose()
 {
     SDL_mixer.Mix_FreeChunk(mixerChunkPtr);
 }