quartz: Start DirectSound renderer as soon as possible.
Makes directsound switch to silent playback even when no buffers are playing, fixes glitching on starting playback from a stopped buffer.
This commit is contained in:
parent
cf085af126
commit
64b14c0ecd
|
@ -457,6 +457,19 @@ HRESULT DSoundRender_create(IUnknown * pUnkOuter, LPVOID * ppv)
|
||||||
ERR("Cannot create Direct Sound object (%x)\n", hr);
|
ERR("Cannot create Direct Sound object (%x)\n", hr);
|
||||||
else
|
else
|
||||||
hr = IDirectSound_SetCooperativeLevel(pDSoundRender->dsound, GetDesktopWindow(), DSSCL_PRIORITY);
|
hr = IDirectSound_SetCooperativeLevel(pDSoundRender->dsound, GetDesktopWindow(), DSSCL_PRIORITY);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
IDirectSoundBuffer *buf;
|
||||||
|
DSBUFFERDESC buf_desc;
|
||||||
|
memset(&buf_desc,0,sizeof(DSBUFFERDESC));
|
||||||
|
buf_desc.dwSize = sizeof(DSBUFFERDESC);
|
||||||
|
buf_desc.dwFlags = DSBCAPS_PRIMARYBUFFER;
|
||||||
|
hr = IDirectSound_CreateSoundBuffer(pDSoundRender->dsound, &buf_desc, &buf, NULL);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
IDirectSoundBuffer_Play(buf, 0, 0, DSBPLAY_LOOPING);
|
||||||
|
IUnknown_Release(buf);
|
||||||
|
}
|
||||||
|
hr = S_OK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
|
|
Loading…
Reference in New Issue