Remove the unnecessary wave header event
It's only ever set before sending the quit message, which will set the thread event. It's also only waited on just before the thread event is used to signal the end of the thread.
This commit is contained in:
parent
91c6bc58dc
commit
c8326ab328
31
Alc/winmm.c
31
Alc/winmm.c
@ -36,7 +36,6 @@
|
||||
typedef struct {
|
||||
// MMSYSTEM Device
|
||||
volatile ALboolean bWaveShutdown;
|
||||
HANDLE hWaveHdrEvent;
|
||||
HANDLE hWaveThreadEvent;
|
||||
HANDLE hWaveThread;
|
||||
DWORD ulWaveThreadID;
|
||||
@ -170,10 +169,6 @@ static void CALLBACK WaveOutProc(HWAVEOUT hDevice,UINT uMsg,DWORD_PTR dwInstance
|
||||
{
|
||||
if(pData->lWaveBuffersCommitted == 0)
|
||||
{
|
||||
// Signal Wave Buffers Returned event
|
||||
if(pData->hWaveHdrEvent)
|
||||
SetEvent(pData->hWaveHdrEvent);
|
||||
|
||||
// Post 'Quit' Message to WaveOut Processor Thread
|
||||
PostThreadMessage(pData->ulWaveThreadID, WM_QUIT, 0, 0);
|
||||
}
|
||||
@ -250,10 +245,6 @@ static void CALLBACK WaveInProc(HWAVEIN hDevice,UINT uMsg,DWORD_PTR dwInstance,D
|
||||
{
|
||||
if(pData->lWaveBuffersCommitted == 0)
|
||||
{
|
||||
// Signal Wave Buffers Returned event
|
||||
if(pData->hWaveHdrEvent)
|
||||
SetEvent(pData->hWaveHdrEvent);
|
||||
|
||||
// Post 'Quit' Message to WaveIn Processor Thread
|
||||
PostThreadMessage(pData->ulWaveThreadID,WM_QUIT,0,0);
|
||||
}
|
||||
@ -379,9 +370,8 @@ static ALCboolean WinMMOpenPlayback(ALCdevice *pDevice, const ALCchar *deviceNam
|
||||
goto failure;
|
||||
}
|
||||
|
||||
pData->hWaveHdrEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
pData->hWaveThreadEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
if(pData->hWaveHdrEvent == NULL || pData->hWaveThreadEvent == NULL)
|
||||
if(pData->hWaveThreadEvent == NULL)
|
||||
{
|
||||
ERR("CreateEvent failed: %lu\n", GetLastError());
|
||||
goto failure;
|
||||
@ -396,8 +386,6 @@ static ALCboolean WinMMOpenPlayback(ALCdevice *pDevice, const ALCchar *deviceNam
|
||||
failure:
|
||||
if(pData->hWaveThreadEvent)
|
||||
CloseHandle(pData->hWaveThreadEvent);
|
||||
if(pData->hWaveHdrEvent)
|
||||
CloseHandle(pData->hWaveHdrEvent);
|
||||
|
||||
if(pData->hWaveHandle.Out)
|
||||
waveOutClose(pData->hWaveHandle.Out);
|
||||
@ -415,9 +403,6 @@ static void WinMMClosePlayback(ALCdevice *device)
|
||||
CloseHandle(pData->hWaveThreadEvent);
|
||||
pData->hWaveThreadEvent = 0;
|
||||
|
||||
CloseHandle(pData->hWaveHdrEvent);
|
||||
pData->hWaveHdrEvent = 0;
|
||||
|
||||
waveOutClose(pData->hWaveHandle.Out);
|
||||
pData->hWaveHandle.In = 0;
|
||||
|
||||
@ -481,9 +466,6 @@ static void WinMMStopPlayback(ALCdevice *device)
|
||||
// Set flag to stop processing headers
|
||||
pData->bWaveShutdown = AL_TRUE;
|
||||
|
||||
// Wait for signal that all Wave Buffers have returned
|
||||
WaitForSingleObjectEx(pData->hWaveHdrEvent, 5000, FALSE);
|
||||
|
||||
// Wait for signal that Wave Thread has been destroyed
|
||||
WaitForSingleObjectEx(pData->hWaveThreadEvent, 5000, FALSE);
|
||||
|
||||
@ -576,9 +558,8 @@ static ALCboolean WinMMOpenCapture(ALCdevice *pDevice, const ALCchar *deviceName
|
||||
goto failure;
|
||||
}
|
||||
|
||||
pData->hWaveHdrEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
pData->hWaveThreadEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
if(pData->hWaveHdrEvent == NULL || pData->hWaveThreadEvent == NULL)
|
||||
if(pData->hWaveThreadEvent == NULL)
|
||||
{
|
||||
ERR("CreateEvent failed: %lu\n", GetLastError());
|
||||
goto failure;
|
||||
@ -647,8 +628,6 @@ failure:
|
||||
|
||||
if(pData->hWaveThreadEvent)
|
||||
CloseHandle(pData->hWaveThreadEvent);
|
||||
if(pData->hWaveHdrEvent)
|
||||
CloseHandle(pData->hWaveHdrEvent);
|
||||
|
||||
if(pData->hWaveHandle.In)
|
||||
waveInClose(pData->hWaveHandle.In);
|
||||
@ -667,9 +646,6 @@ static void WinMMCloseCapture(ALCdevice *pDevice)
|
||||
pData->bWaveShutdown = AL_TRUE;
|
||||
waveInReset(pData->hWaveHandle.In);
|
||||
|
||||
// Wait for signal that all Wave Buffers have returned
|
||||
WaitForSingleObjectEx(pData->hWaveHdrEvent, 5000, FALSE);
|
||||
|
||||
// Wait for signal that Wave Thread has been destroyed
|
||||
WaitForSingleObjectEx(pData->hWaveThreadEvent, 5000, FALSE);
|
||||
|
||||
@ -692,9 +668,6 @@ static void WinMMCloseCapture(ALCdevice *pDevice)
|
||||
CloseHandle(pData->hWaveThreadEvent);
|
||||
pData->hWaveThreadEvent = 0;
|
||||
|
||||
CloseHandle(pData->hWaveHdrEvent);
|
||||
pData->hWaveHdrEvent = 0;
|
||||
|
||||
waveInClose(pData->hWaveHandle.In);
|
||||
pData->hWaveHandle.In = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user