dsound: Primary buffer doesn't support flag DSBCAPS_CTRLFX.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40740 Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Andrew Eikum <aeikum@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0c853f0265
commit
eabb3d444c
|
@ -1064,6 +1064,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_CreateStandardAudioPath(IDire
|
||||||
|
|
||||||
/* Update description for creating primary buffer */
|
/* Update description for creating primary buffer */
|
||||||
desc.dwFlags |= DSBCAPS_PRIMARYBUFFER;
|
desc.dwFlags |= DSBCAPS_PRIMARYBUFFER;
|
||||||
|
desc.dwFlags &= ~DSBCAPS_CTRLFX;
|
||||||
desc.dwBufferBytes = 0;
|
desc.dwBufferBytes = 0;
|
||||||
desc.lpwfxFormat = NULL;
|
desc.lpwfxFormat = NULL;
|
||||||
|
|
||||||
|
|
|
@ -451,6 +451,12 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
|
||||||
return DSERR_INVALIDPARAM;
|
return DSERR_INVALIDPARAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dsbd->dwFlags & DSBCAPS_CTRLFX)
|
||||||
|
{
|
||||||
|
WARN("Invalid parameter DSBCAPS_CTRLFX\n");
|
||||||
|
return DSERR_INVALIDPARAM;
|
||||||
|
}
|
||||||
|
|
||||||
if (device->primary) {
|
if (device->primary) {
|
||||||
WARN("Primary Buffer already created\n");
|
WARN("Primary Buffer already created\n");
|
||||||
IDirectSoundBuffer8_AddRef(&device->primary->IDirectSoundBuffer8_iface);
|
IDirectSoundBuffer8_AddRef(&device->primary->IDirectSoundBuffer8_iface);
|
||||||
|
|
|
@ -1173,6 +1173,55 @@ static void test_COM(void)
|
||||||
while (IUnknown_Release(unk));
|
while (IUnknown_Release(unk));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_primary_flags(void)
|
||||||
|
{
|
||||||
|
HRESULT rc;
|
||||||
|
IDirectSound8 *dso;
|
||||||
|
IDirectSoundBuffer *primary = NULL;
|
||||||
|
IDirectSoundFXI3DL2Reverb *reverb;
|
||||||
|
DSBUFFERDESC bufdesc;
|
||||||
|
DSCAPS dscaps;
|
||||||
|
|
||||||
|
/* Create a DirectSound8 object */
|
||||||
|
rc = pDirectSoundCreate8(NULL, &dso, NULL);
|
||||||
|
ok(rc == DS_OK || rc==DSERR_NODRIVER, "Failed: %08x\n",rc);
|
||||||
|
|
||||||
|
if (rc!=DS_OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rc = IDirectSound8_SetCooperativeLevel(dso, get_hwnd(), DSSCL_PRIORITY);
|
||||||
|
ok(rc == DS_OK,"Failed: %08x\n", rc);
|
||||||
|
if (rc != DS_OK) {
|
||||||
|
IDirectSound8_Release(dso);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dscaps.dwSize = sizeof(dscaps);
|
||||||
|
rc = IDirectSound8_GetCaps(dso, &dscaps);
|
||||||
|
ok(rc == DS_OK,"Failed: %08x\n", rc);
|
||||||
|
trace("0x%x\n", dscaps.dwFlags);
|
||||||
|
|
||||||
|
ZeroMemory(&bufdesc, sizeof(bufdesc));
|
||||||
|
bufdesc.dwSize = sizeof(bufdesc);
|
||||||
|
bufdesc.dwFlags = DSBCAPS_PRIMARYBUFFER | DSBCAPS_CTRLFX;
|
||||||
|
rc = IDirectSound8_CreateSoundBuffer(dso, &bufdesc, &primary, NULL);
|
||||||
|
ok(rc == E_INVALIDARG, "got %08x\n", rc);
|
||||||
|
|
||||||
|
ZeroMemory(&bufdesc, sizeof(bufdesc));
|
||||||
|
bufdesc.dwSize = sizeof(bufdesc);
|
||||||
|
bufdesc.dwFlags = DSBCAPS_PRIMARYBUFFER | DSBCAPS_CTRL3D;
|
||||||
|
rc = IDirectSound8_CreateSoundBuffer(dso, &bufdesc, &primary, NULL);
|
||||||
|
ok((rc == DS_OK && primary != NULL), "Failed to create a primary buffer: %08x\n", rc);
|
||||||
|
if (rc == DS_OK) {
|
||||||
|
rc = IDirectSoundBuffer_QueryInterface(primary, &IID_IDirectSoundFXI3DL2Reverb, (LPVOID*)&reverb);
|
||||||
|
ok(rc==E_NOINTERFACE,"Failed: %08x\n", rc);
|
||||||
|
|
||||||
|
IDirectSoundBuffer_Release(primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
IDirectSound8_Release(dso);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_effects(void)
|
static void test_effects(void)
|
||||||
{
|
{
|
||||||
HRESULT rc;
|
HRESULT rc;
|
||||||
|
@ -1711,6 +1760,7 @@ START_TEST(dsound8)
|
||||||
dsound8_tests();
|
dsound8_tests();
|
||||||
test_hw_buffers();
|
test_hw_buffers();
|
||||||
test_first_device();
|
test_first_device();
|
||||||
|
test_primary_flags();
|
||||||
test_effects();
|
test_effects();
|
||||||
test_effects_parameters();
|
test_effects_parameters();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue