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);