/** ** Cleanup sound server. */ void QuitSound() { #ifdef USE_OAML if (oaml) { oaml->Shutdown(); delete oaml; oaml = NULL; } #endif Audio.Running = false; SDL_WaitThread(Audio.Thread, NULL); SDL_DestroyCond(Audio.Cond); SDL_DestroyMutex(Audio.Lock); // Mustn't call SDL_CloseAudio here, it'll be called again from SDL_Quit SoundInitialized = false; delete[] Audio.MixerBuffer; Audio.MixerBuffer = NULL; delete[] Audio.Buffer; Audio.Buffer = NULL; #ifdef USE_FLUIDSYNTH CleanFluidSynth(); #endif }
/** ** Cleanup sound server. */ void QuitSound() { Audio.Running = false; // Join with the FillThread SDL_WaitThread(Audio.Thread, NULL); SoundInitialized = false; delete[] Audio.MixerBuffer; Audio.MixerBuffer = NULL; delete[] Audio.Buffer; Audio.Buffer = NULL; #ifdef USE_FLUIDSYNTH CleanFluidSynth(); #endif }