From f3a55f103666a14ae1d21fde46f619c9f0638edf Mon Sep 17 00:00:00 2001 From: Zoran Vuckovic Date: Fri, 28 Apr 2017 22:58:06 +0200 Subject: [PATCH] Fix audio sync issue with fullscreen toggling --- audio/drivers/wasapi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/audio/drivers/wasapi.c b/audio/drivers/wasapi.c index ff391b1ee9..7e6533991f 100644 --- a/audio/drivers/wasapi.c +++ b/audio/drivers/wasapi.c @@ -560,12 +560,13 @@ static void *wasapi_init(const char *dev_id, unsigned rate, unsigned latency, AUDCLNT_BUFFERFLAGS_SILENT); WASAPI_HR_CHECK(hr, "IAudioRenderClient::ReleaseBuffer", goto error); - /* TODO: remove next three lines after + /* TODO: remove next four lines after "Pause when menu activated" option and fullscreen toggling are fixed */ - hr = w->client->lpVtbl->Start(w->client); + hr = w->client->lpVtbl->Start(w->client); WASAPI_HR_CHECK(hr, "IAudioClient::Start", goto error); w->running = true; + w->blocking = settings->bools.audio_sync; return w; @@ -723,7 +724,7 @@ static ssize_t wasapi_write(void *wh, const void *data, size_t size) if (w->blocking) { - for (writen = 0, ir = -1; writen < size && ir; writen += ir) + for (writen = 0, ir = -1; writen < size; writen += ir) { if (w->exclusive) ir = wasapi_write_ex(w, data + writen, size - writen);