Mercurial > hg > dmlib
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