diff src/dmsimple.c @ 846:05a3ee1ca964

Cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 21 Oct 2014 10:42:08 +0300
parents 1d3d220fb5cc
children cf142447dd63
line wrap: on
line diff
--- a/src/dmsimple.c	Tue Oct 21 10:31:03 2014 +0300
+++ b/src/dmsimple.c	Tue Oct 21 10:42:08 2014 +0300
@@ -61,28 +61,6 @@
 }
 
 
-static int engineAudioThreadFunc(void *userdata)
-{
-    DMEngineData *engine = (DMEngineData *) userdata;
-    if (engine == NULL)
-        return 0;
-
-    do
-    {
-        dmMutexLock(engine->audioStreamMutex);
-        if (engine->audioStatus == SDL_AUDIO_PLAYING)
-        {
-            engineAudioCallback(userdata, engine->audioSimBuf, engine->audioSimBufSize);
-        }
-        dmMutexUnlock(engine->audioStreamMutex);
-
-        SDL_Delay(engine->audioSimDelay);
-    } while (!engine->audioSimDone);
-
-    return 0;
-}
-
-
 static int engineShowProgress(int loaded, int total)
 {
     int dx = 60,
@@ -687,29 +665,10 @@
         engine.optAfmt.format, engine.optAfmt.channels,
         engine.optAfmt.freq, engine.optAfmt.samples);
 
-    engine.audioStreamMutex = dmCreateMutex();
-    engine.audioStatus      = SDL_AUDIO_STOPPED;
-    engine.optAfmt.callback = engineAudioCallback;
-    engine.optAfmt.userdata = (void *) &engine;
-
-    engine.audioSampleSize  = engine.optAfmt.channels;
-    switch (engine.optAfmt.format)
+    if ((err = engineInitAudioParts(&engine)) != DMERR_OK)
     {
-        case AUDIO_S16SYS:
-        case AUDIO_U16SYS: engine.audioSampleSize *= 2; break;
-    }
-    
-    if (SDL_OpenAudio(&engine.optAfmt, NULL) < 0)
-    {
-        // We'll let this pass, as we want to support no-sound.
-        dmError("Couldn't open SDL audio, falling back to no sound: %s\n", SDL_GetError());
-
-        // Set up simulated audio thread
-        engine.audioSimDelay   = 1000 / 45;
-        engine.audioSimBufSize = (engine.optAfmt.freq / 45) * engine.audioSampleSize;
-        engine.audioSimBuf     = dmMalloc(engine.audioSimBufSize);
-        engine.audioSimDone    = FALSE;
-        engine.audioSimThread  = SDL_CreateThread(engineAudioThreadFunc, NULL);
+        dmError("engineInitAudioParts() failed: #%d: %s\n", err, dmErrorStr(err));
+        goto error_exit;
     }
 
     // Initialize SDL video