winmm: waveOutReset returns all buffers.
This commit is contained in:
parent
afa5751015
commit
5f9e03d118
|
@ -1670,6 +1670,7 @@ static LRESULT WINMM_Reset(HWAVE hwave)
|
||||||
{
|
{
|
||||||
WINMM_CBInfo cb_info;
|
WINMM_CBInfo cb_info;
|
||||||
WINMM_Device *device = WINMM_GetDeviceFromHWAVE(hwave);
|
WINMM_Device *device = WINMM_GetDeviceFromHWAVE(hwave);
|
||||||
|
BOOL is_out;
|
||||||
WAVEHDR *first;
|
WAVEHDR *first;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
|
@ -1686,10 +1687,7 @@ static LRESULT WINMM_Reset(HWAVE hwave)
|
||||||
}
|
}
|
||||||
device->stopped = TRUE;
|
device->stopped = TRUE;
|
||||||
|
|
||||||
if(device->render)
|
first = device->first;
|
||||||
first = WOD_MarkDoneHeaders(device);
|
|
||||||
else
|
|
||||||
first = device->first;
|
|
||||||
device->first = device->last = device->playing = NULL;
|
device->first = device->last = device->playing = NULL;
|
||||||
device->ofs_bytes = 0;
|
device->ofs_bytes = 0;
|
||||||
device->played_frames = 0;
|
device->played_frames = 0;
|
||||||
|
@ -1698,6 +1696,7 @@ static LRESULT WINMM_Reset(HWAVE hwave)
|
||||||
IAudioClient_Reset(device->client);
|
IAudioClient_Reset(device->client);
|
||||||
|
|
||||||
cb_info = device->cb_info;
|
cb_info = device->cb_info;
|
||||||
|
is_out = device->render ? TRUE : FALSE;
|
||||||
|
|
||||||
LeaveCriticalSection(&device->lock);
|
LeaveCriticalSection(&device->lock);
|
||||||
|
|
||||||
|
@ -1705,7 +1704,7 @@ static LRESULT WINMM_Reset(HWAVE hwave)
|
||||||
WAVEHDR *next = first->lpNext;
|
WAVEHDR *next = first->lpNext;
|
||||||
first->dwFlags &= ~WHDR_INQUEUE;
|
first->dwFlags &= ~WHDR_INQUEUE;
|
||||||
first->dwFlags |= WHDR_DONE;
|
first->dwFlags |= WHDR_DONE;
|
||||||
if(device->render)
|
if(is_out)
|
||||||
WINMM_NotifyClient(&cb_info, WOM_DONE, (DWORD_PTR)first, 0);
|
WINMM_NotifyClient(&cb_info, WOM_DONE, (DWORD_PTR)first, 0);
|
||||||
else
|
else
|
||||||
WINMM_NotifyClient(&cb_info, WIM_DATA, (DWORD_PTR)first, 0);
|
WINMM_NotifyClient(&cb_info, WIM_DATA, (DWORD_PTR)first, 0);
|
||||||
|
|
Loading…
Reference in New Issue