# HG changeset patch # User Matti Hamalainen # Date 1432316513 -10800 # Node ID 4e9deb14e67f70f09e4ed4bf17b97924b70e2a21 # Parent dc9b20d77bc9b6256250f511839b2619fc9b62e9 Fix audio sync with nosound. diff -r dc9b20d77bc9 -r 4e9deb14e67f src/dmengine.c --- a/src/dmengine.c Thu May 21 13:41:38 2015 +0300 +++ b/src/dmengine.c Fri May 22 20:41:53 2015 +0300 @@ -422,12 +422,12 @@ } -void enginePauseAudio(int status) +void enginePauseAudio(DMEngineData *engine, int status) { if (status) - engine.audioStatus = SDL_AUDIO_PAUSED; + engine->audioStatus = SDL_AUDIO_PAUSED; else - engine.audioStatus = SDL_AUDIO_PLAYING; + engine->audioStatus = SDL_AUDIO_PLAYING; SDL_PauseAudio(status); } @@ -497,7 +497,6 @@ DMEngineData *engine = (DMEngineData *) userdata; if (engine == NULL) return 0; - do { dmMutexLock(engine->audioStreamMutex); @@ -543,7 +542,7 @@ engine->audioSimBufSize = (engine->optAfmt.freq / 45) * engine->audioSampleSize; engine->audioSimBuf = dmMalloc(engine->audioSimBufSize); engine->audioSimDone = FALSE; - engine->audioSimThread = SDL_CreateThread(engineAudioThreadFunc, NULL); + engine->audioSimThread = SDL_CreateThread(engineAudioThreadFunc, engine); if (engine->audioSimThread == NULL) return DMERR_INIT_FAIL; } diff -r dc9b20d77bc9 -r 4e9deb14e67f src/dmengine.h --- a/src/dmengine.h Thu May 21 13:41:38 2015 +0300 +++ b/src/dmengine.h Fri May 22 20:41:53 2015 +0300 @@ -376,7 +376,7 @@ int engineInitAudioParts(DMEngineData *engine); void engineAudioCallback(void *userdata, Uint8 *stream, int len); -void enginePauseAudio(int status); +void enginePauseAudio(DMEngineData *engine, int status); int engineGetVideoAspect(int width, int height); diff -r dc9b20d77bc9 -r 4e9deb14e67f src/dmsimple.c --- a/src/dmsimple.c Thu May 21 13:41:38 2015 +0300 +++ b/src/dmsimple.c Fri May 22 20:41:53 2015 +0300 @@ -822,7 +822,7 @@ engine.startTime = SDL_GetTicks(); SDL_LockAudio(); - enginePauseAudio(0); + enginePauseAudio(&engine, 0); SDL_UnlockAudio(); while (!engine.exitFlag) @@ -928,7 +928,7 @@ SDL_ShowCursor(SDL_ENABLE); SDL_LockAudio(); - enginePauseAudio(1); + enginePauseAudio(&engine, 1); #ifdef DM_USE_JSS if (engine.optAudioSetup == DM_ASETUP_JSS) {