Mercurial > hg > dmlib
changeset 1263:4e9deb14e67f
Fix audio sync with nosound.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 22 May 2015 20:41:53 +0300 |
parents | dc9b20d77bc9 |
children | c43c8e5118a0 |
files | src/dmengine.c src/dmengine.h src/dmsimple.c |
diffstat | 3 files changed, 7 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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; }
--- 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);
--- 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) {