diff --git a/lib-src/portaudio-v19/src/hostapi/wasapi/pa_win_wasapi.c b/lib-src/portaudio-v19/src/hostapi/wasapi/pa_win_wasapi.c index f61b30b36..35c668957 100644 --- a/lib-src/portaudio-v19/src/hostapi/wasapi/pa_win_wasapi.c +++ b/lib-src/portaudio-v19/src/hostapi/wasapi/pa_win_wasapi.c @@ -602,6 +602,9 @@ typedef struct PaWasapiStream // thread is being started volatile BOOL running; + // stream has not or is no longer started + BOOL stopped; + PA_THREAD_ID dwThreadId; HANDLE hThread; HANDLE hCloseRequest; @@ -3797,6 +3800,9 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi, if (framesPerBuffer == 0) framesPerBuffer = ((UINT32)sampleRate / 100) * 2; + stream->stopped = TRUE; + stream->running = FALSE; + // Try create device: Input if (inputParameters != NULL) { @@ -4522,6 +4528,7 @@ static PaError StartStream( PaStream *s ) // Signal: stream running. stream->running = TRUE; } + stream->stopped = FALSE; return result; @@ -4563,6 +4570,7 @@ void _StreamFinish(PaWasapiStream *stream) _StreamCleanup(stream); stream->running = FALSE; + stream->stopped = TRUE; } // ------------------------------------------------------------------------------------------ @@ -4596,7 +4604,7 @@ static PaError AbortStream( PaStream *s ) // ------------------------------------------------------------------------------------------ static PaError IsStreamStopped( PaStream *s ) { - return !((PaWasapiStream *)s)->running; + return ((PaWasapiStream *)s)->stopped; } // ------------------------------------------------------------------------------------------