dsound test: Remove unneeded Caps/3D test
Francois Gouget
fgouget at codeweavers.com
Fri Jul 16 17:11:16 CDT 2004
This fixes another dsound Windows crash: we first create a buffer
without DSBCAPS_CTRL3D, then we query the IDirectSound3DBuffer on it
which obviously fails so that we try to do an AddRef on a NULL pointer
(buffer3d).
But this 3D buffer is not really needed for this test since we already
have the secondary buffer reference. Also MSDN recommends only using
CDSBCAPS_TRL3D when necessary because DirectSound can optimize things
when it's not specified. It may not yet be the case in Wine but I'd
prefer to keep the dsound.c test as simple as possible. So I removed all
references to this 3D buffer. I also went through the caps we request on
our buffers and remove all the unneeded ones.
Changelog:
* dlls/dsound/tests/dsound.c
Francois Gouget <fgouget at codeweavers.com>
Don't try to create a IDirectSound3DBuffer, partly to keep this test
simple and partly because it's going to fail since we did not request
DSBCAPS_CTRL3D. Fixes a crash on Windows.
Don't request unneeded caps.
--
Francois Gouget
fgouget at codeweavers.com
-------------- next part --------------
Index: dlls/dsound/tests/dsound.c
===================================================================
RCS file: /var/cvs/wine/dlls/dsound/tests/dsound.c,v
retrieving revision 1.24
diff -u -r1.24 dsound.c
--- dlls/dsound/tests/dsound.c 13 Jul 2004 23:35:09 -0000 1.24
+++ dlls/dsound/tests/dsound.c 16 Jul 2004 17:07:59 -0000
@@ -336,18 +342,13 @@
init_format(&wfx,WAVE_FORMAT_PCM,11025,8,1);
ZeroMemory(&bufdesc, sizeof(bufdesc));
bufdesc.dwSize=sizeof(bufdesc);
- bufdesc.dwFlags=DSBCAPS_GETCURRENTPOSITION2;
- bufdesc.dwFlags|=(DSBCAPS_CTRLVOLUME|DSBCAPS_CTRLPAN);
+ bufdesc.dwFlags=DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLVOLUME;
bufdesc.dwBufferBytes=wfx.nAvgBytesPerSec*BUFFER_LEN/1000;
bufdesc.lpwfxFormat=&wfx;
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
ok(rc==DS_OK && secondary!=NULL,"CreateSoundBuffer failed to create a secondary buffer 0x%lx\n", rc);
if (rc==DS_OK && secondary!=NULL) {
- LPDIRECTSOUND3DBUFFER buffer3d;
- rc=IDirectSound_QueryInterface(secondary, &IID_IDirectSound3DBuffer, (void **)&buffer3d);
- ok(rc==DS_OK && buffer3d!=NULL,"QueryInterface failed: %s\n",DXGetErrorString9(rc));
/* add some more refs */
- IDirectSound3DBuffer_AddRef(buffer3d);
IDirectSoundBuffer_AddRef(secondary);
}
/* release with buffer */
@@ -459,18 +460,13 @@
init_format(&wfx,WAVE_FORMAT_PCM,11025,8,1);
ZeroMemory(&bufdesc, sizeof(bufdesc));
bufdesc.dwSize=sizeof(bufdesc);
- bufdesc.dwFlags=DSBCAPS_GETCURRENTPOSITION2;
- bufdesc.dwFlags|=(DSBCAPS_CTRLVOLUME|DSBCAPS_CTRLPAN);
+ bufdesc.dwFlags=DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLVOLUME;
bufdesc.dwBufferBytes=wfx.nAvgBytesPerSec*BUFFER_LEN/1000;
bufdesc.lpwfxFormat=&wfx;
rc=IDirectSound8_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
ok(rc==DS_OK && secondary!=NULL,"CreateSoundBuffer failed to create a secondary buffer 0x%lx\n", rc);
if (rc==DS_OK && secondary!=NULL) {
- LPDIRECTSOUND3DBUFFER buffer3d;
- rc=IDirectSound8_QueryInterface(secondary, &IID_IDirectSound3DBuffer, (void **)&buffer3d);
- ok(rc==DS_OK && buffer3d!=NULL,"QueryInterface failed: %s\n",DXGetErrorString9(rc));
/* add some more refs */
- IDirectSound3DBuffer_AddRef(buffer3d);
IDirectSoundBuffer8_AddRef(secondary);
}
/* release with buffer */
@@ -614,7 +617,6 @@
ZeroMemory(&bufdesc, sizeof(bufdesc));
bufdesc.dwSize=sizeof(bufdesc);
bufdesc.dwFlags=DSBCAPS_PRIMARYBUFFER;
- bufdesc.dwFlags|=(DSBCAPS_CTRLVOLUME|DSBCAPS_CTRLPAN);
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&primary,NULL);
ok(rc==DS_OK && primary!=NULL,"CreateSoundBuffer failed to create a primary buffer 0x%lx\n", rc);
@@ -625,7 +627,6 @@
ZeroMemory(&bufdesc, sizeof(bufdesc));
bufdesc.dwSize=sizeof(bufdesc);
bufdesc.dwFlags=DSBCAPS_GETCURRENTPOSITION2;
- bufdesc.dwFlags|=(DSBCAPS_CTRLFREQUENCY|DSBCAPS_CTRLVOLUME|DSBCAPS_CTRLPAN);
bufdesc.dwBufferBytes=wfx.nAvgBytesPerSec*BUFFER_LEN/1000;
bufdesc.lpwfxFormat=&wfx;
trace(" Testing a secondary buffer at %ldx%dx%d\n",
More information about the wine-patches
mailing list