From 918fb79b58c07c64731baf574b3bec2d57e96a1f Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 22 Nov 2014 20:10:32 +0100 Subject: winwave: call waveOutClose/waveInClose last --- modules/winwave/play.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'modules/winwave/play.c') diff --git a/modules/winwave/play.c b/modules/winwave/play.c index e258561..1ca0d44 100644 --- a/modules/winwave/play.c +++ b/modules/winwave/play.c @@ -20,7 +20,7 @@ struct auplay_st { struct dspbuf bufs[WRITE_BUFFERS]; int pos; HWAVEOUT waveout; - bool rdy; + volatile bool rdy; size_t inuse; auplay_write_h *wh; void *arg; @@ -41,7 +41,7 @@ static void auplay_destructor(void *arg) while (st->inuse > 0) Sleep(50); - waveOutClose(st->waveout); + waveOutReset(st->waveout); for (i = 0; i < WRITE_BUFFERS; i++) { waveOutUnprepareHeader(st->waveout, &st->bufs[i].wh, @@ -49,6 +49,8 @@ static void auplay_destructor(void *arg) mem_deref(st->bufs[i].mb); } + waveOutClose(st->waveout); + mem_deref(st->ap); } -- cgit v1.2.3