Mercurial > hg > dmlib
changeset 290:61cab36b6d32
Improve locking.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 11 Oct 2012 14:03:25 +0300 |
parents | 4d053d9e6439 |
children | 701c3d22e0f9 |
files | ppl.c |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ppl.c Thu Oct 11 11:10:53 2012 +0300 +++ b/ppl.c Thu Oct 11 14:03:25 2012 +0300 @@ -555,7 +555,7 @@ int main(int argc, char *argv[]) { - BOOL initSDL = FALSE; + BOOL initSDL = FALSE, audioInit = FALSE; DMResource *file = NULL; int result = -1; BOOL muteState = FALSE; @@ -693,6 +693,7 @@ SDL_GetError()); goto error_exit; } + audioInit = TRUE; // Initialize player if ((engine.plr = jmpInit(engine.dev)) == NULL) @@ -906,12 +907,18 @@ if (engine.screen) SDL_FreeSurface(engine.screen); - SDL_LockAudio(); - SDL_PauseAudio(1); + dmMsg(0, "Audio shutdown.\n"); + if (audioInit) + { + SDL_LockAudio(); + SDL_PauseAudio(1); + SDL_UnlockAudio(); + SDL_CloseAudio(); + } + jmpClose(engine.plr); jvmClose(engine.dev); jssFreeModule(engine.mod); - SDL_UnlockAudio(); dmFreeBitmapFont(font);