On Jul 23, 2004, Francois Gouget wrote:
> The patch removes the primary buffer's 'volpan' variable and instead
> uses waveOutGetVolume() on dsound->hwo to get the current volume.
This seems to be failing for me here on three different machines
during the primary part of test_secondary() in dsound/tests/ds3d.c.
You can see evidence of this in valgrind logs, e.g.
http://kegel.com/wine/valgrind/logs-2007-12-06/vg-dsound_ds3d.txt
or
http://kegel.com/wine/valgrind/logs-2008-06-16/vg-dsound_ds3d.txt
you can see valgrind getting annoyed that waveOutGetVolume
didn't actually retrieve anything:
Conditional jump or move depends on uninitialised value(s)
at DSOUND_AmpFactorToVolPan (mixer.c:66)
by PrimaryBufferImpl_GetVolume (primary.c:646)
by test_secondary (ds3d.c:864)
by dsenum_callback (ds3d.c:1303)
by DirectSoundEnumerateA (dsound_main.c:315)
by ds3d_tests (ds3d.c:1324)
by func_ds3d (ds3d.c:1344)
by run_test (test.h:449)
by main (test.h:498)
Uninitialised value was created by a stack allocation
at PrimaryBufferImpl_GetVolume (primary.c:627)
The test nevertheless happens to succeed on some machines,
but not others. One machine it fails on (even without valgrind) says
ds3d.c:896: Test failed: The primary pan changed from 673 to 656
because, I think, it's calculating the pan based on random
values on the stack.
A +dsound,+alsa,+wave log (and a few extra trace statements) shows
trace:dsound:PrimaryBufferImpl_GetPan (0x132258,0x32fa48)
trace:wave:ALSA_wodMessage (0, WODM_GETVOLUME, 00000000, 0032F8E4, 00000000);
trace:wave:wodGetVolume (0, 0x32f8e4);
trace:wave:wodGetVolume wDevId 0, hctl (nil)
trace:alsa:ALSA_CheckSetVolume line 470; hctl (nil)
trace:wave:wodGetVolume CheckSetVolume failed; rc 8
trace:dsound:DSOUND_AmpFactorToVolPan (0x32f8c8)
trace:dsound:DSOUND_AmpFactorToVolPan left=3b34, right=7e59
trace:dsound:DSOUND_AmpFactorToVolPan Vol=-611 Pan=656
ds3d.c:896: Test failed: The primary pan changed from 673 to 656
ALSA_CheckSetVolume returns right early because hctl is NULL.
I threw together a small test illustrating the problem;
see the attached patch and log from problem machine.
(Note that sound works on this machine, and running the main
ds3d tests with WINETEST_INTERACTIVE=1 yields many tones
in the headphones.)
Could somebody who knows this code have a look? Thanks!
- Dan
diff --git a/dlls/dsound/primary.c b/dlls/dsound/primary.c
index 112bb39..10ea7be 100644
--- a/dlls/dsound/primary.c
+++ b/dlls/dsound/primary.c
@@ -628,6 +628,7 @@ static HRESULT WINAPI PrimaryBufferImpl_
DirectSoundDevice *device = ((PrimaryBufferImpl *)iface)->device;
DWORD ampfactors;
DSVOLUMEPAN volpan;
+ MMRESULT mmres;
TRACE("(%p,%p)\n", iface, vol);
if (!(device->dsbd.dwFlags & DSBCAPS_CTRLVOLUME)) {
@@ -640,7 +641,12 @@ static HRESULT WINAPI PrimaryBufferImpl_
return DSERR_INVALIDPARAM;
}
- waveOutGetVolume(device->hwo, &factors);
+ mmres = waveOutGetVolume(device->hwo, &factors);
+ if (mmres != MMSYSERR_NOERROR) {
+ WARN("can't get volume\n");
+ return DSERR_GENERIC;
+ }
+
volpan.dwTotalLeftAmpFactor=ampfactors & 0xffff;
volpan.dwTotalRightAmpFactor=ampfactors >> 16;
DSOUND_AmpFactorToVolPan(&volpan);
diff --git a/dlls/dsound/tests/ds3d.c b/dlls/dsound/tests/ds3d.c
index e20dc21..084dfb4 100644
--- a/dlls/dsound/tests/ds3d.c
+++ b/dlls/dsound/tests/ds3d.c
@@ -1318,6 +1318,92 @@ static BOOL WINAPI dsenum_callback(LPGUI
return 1;
}
+static HRESULT test_volume(LPGUID lpGuid)
+{
+ HRESULT rc;
+ LPDIRECTSOUND dso=NULL;
+ LPDIRECTSOUNDBUFFER primary=NULL;
+ DSBUFFERDESC bufdesc;
+ int ref;
+
+ /* Create the DirectSound object */
+ rc=pDirectSoundCreate(lpGuid,&dso,NULL);
+ ok(rc==DS_OK||rc==DSERR_NODRIVER,"DirectSoundCreate() failed: %s\n",
+ DXGetErrorString8(rc));
+ if (rc!=DS_OK)
+ return rc;
+
+ /* We must call SetCooperativeLevel before creating primary buffer */
+ /* DSOUND: Setting DirectSound cooperative level to DSSCL_PRIORITY */
+ rc=IDirectSound_SetCooperativeLevel(dso,get_hwnd(),DSSCL_PRIORITY);
+ ok(rc==DS_OK,"IDirectSound_SetCooperativeLevel(DSSCL_PRIORITY) failed: "
+ "%s\n",DXGetErrorString8(rc));
+ if (rc!=DS_OK)
+ goto EXIT;
+
+ 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) || (rc==DSERR_CONTROLUNAVAIL),
+ "IDirectSound_CreateSoundBuffer() failed to create a primary buffer: "
+ "%s\n", DXGetErrorString8(rc));
+ if (rc==DSERR_CONTROLUNAVAIL)
+ trace(" No Primary\n");
+ else if (rc==DS_OK && primary!=NULL) {
+ LONG tvol;
+ rc=IDirectSoundBuffer_GetVolume(primary,&tvol);
+ ok(rc == 0, "Hey! Couldn't get volume!\n");
+ } else {
+ ok(primary==NULL,"IDirectSound_CreateSoundBuffer(primary) failed "
+ "but primary created anyway\n");
+ ok(rc!=DS_OK,"IDirectSound_CreateSoundBuffer(primary) succeeded "
+ "but primary not created\n");
+ if (primary) {
+ ref=IDirectSoundBuffer_Release(primary);
+ ok(ref==0,"IDirectSoundBuffer_Release() primary has %d references, "
+ "should have 0\n",ref);
+ }
+ }
+ /* Set the CooperativeLevel back to normal */
+ /* DSOUND: Setting DirectSound cooperative level to DSSCL_NORMAL */
+ rc=IDirectSound_SetCooperativeLevel(dso,get_hwnd(),DSSCL_NORMAL);
+ ok(rc==DS_OK,"IDirectSound_SetCooperativeLevel(DSSCL_NORMAL) failed: %s\n",
+ DXGetErrorString8(rc));
+
+EXIT:
+ ref=IDirectSound_Release(dso);
+ ok(ref==0,"IDirectSound_Release() has %d references, should have 0\n",ref);
+ if (ref!=0)
+ return DSERR_GENERIC;
+
+ return rc;
+}
+
+static BOOL WINAPI dsenum_volume_callback(LPGUID lpGuid, LPCSTR lpcstrDescription,
+ LPCSTR lpcstrModule, LPVOID lpContext)
+{
+ HRESULT rc;
+ trace("*** Testing %s - %s ***\n",lpcstrDescription,lpcstrModule);
+
+ rc = test_for_driver(lpGuid);
+ if (rc == DSERR_NODRIVER) {
+ trace(" No Driver\n");
+ return 1;
+ } else if (rc == DSERR_ALLOCATED) {
+ trace(" Already In Use\n");
+ return 1;
+ } else if (rc == E_FAIL) {
+ trace(" No Device\n");
+ return 1;
+ }
+
+ test_volume(lpGuid);
+
+ return 1;
+}
+
static void ds3d_tests(void)
{
HRESULT rc;
@@ -1325,6 +1411,13 @@ static void ds3d_tests(void)
ok(rc==DS_OK,"DirectSoundEnumerateA() failed: %s\n",DXGetErrorString8(rc));
}
+static void volume_test(void)
+{
+ HRESULT rc;
+ rc=pDirectSoundEnumerateA(&dsenum_volume_callback,NULL);
+ ok(rc==DS_OK,"DirectSoundEnumerateA() failed: %s\n",DXGetErrorString8(rc));
+}
+
START_TEST(ds3d)
{
HMODULE hDsound;
@@ -1341,7 +1434,9 @@ START_TEST(ds3d)
pDirectSoundCreate = (void*)GetProcAddress(hDsound,
"DirectSoundCreate");
- ds3d_tests();
+ volume_test();
+
+ //ds3d_tests();
FreeLibrary(hDsound);
}
trace:alsa:ALSA_CheckSetVolume line 470; hctl 0x7c0a8830
trace:wave:ALSA_AddPlaybackDevice Added playback device default, number 0
trace:alsa:ALSA_CheckSetVolume line 470; hctl 0x7c0a88a0
ALSA lib seq_hw.c:456:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
trace:wave:ALSA_widMessage (0, DRVM_INIT, 00000000, 00000000, 00000000);
trace:wave:ALSA_widMessage (0, WIDM_GETNUMDEVS, 00000000, 00000000, 00000000);
trace:wave:ALSA_wodMessage (0, DRVM_INIT, 00000000, 00000000, 00000000);
trace:wave:ALSA_wodMessage (0, WODM_GETNUMDEVS, 00000000, 00000000, 00000000);
trace:dsound:DllMain (0x7de70000 1 (nil))
trace:dsound:DllMain DLL_PROCESS_ATTACH
ds3d.c:1430: DLL Version: 5.3.1.904
trace:dsound:DirectSoundEnumerateA lpDSEnumCallback = 0x7e57d576, lpContext = (nil)
trace:dsound:GetDeviceID (DSDEVID_DefaultPlayback,0x32fb54)
trace:dsound:GetDeviceID returns {bd6dd71a-3deb-11d1-b171-00c04fc20000}
trace:wave:ALSA_wodMessage (0, DRV_QUERYDSOUNDDESC, 00000000, 0032FB64, 00000000);
trace:dsound:DirectSoundEnumerateA calling lpDSEnumCallback(NULL,"Primary Sound Driver","",(nil))
ds3d.c:1388: *** Testing Primary Sound Driver - ***
trace:dsound:DirectSoundCreate ((null),0x32fac8,(nil))
trace:dsound:DSOUND_Create ({279afa83-4981-11ce-a521-0020af0be560}, 0x32fa74)
trace:dsound:setup_dsound_options ds_emuldriver = 0
trace:dsound:setup_dsound_options ds_hel_buflen = 32768
trace:dsound:setup_dsound_options ds_snd_queue_max = 10
trace:dsound:setup_dsound_options ds_snd_queue_min = 6
trace:dsound:setup_dsound_options ds_hw_accel = Full
trace:dsound:setup_dsound_options ds_default_playback = 0
trace:dsound:setup_dsound_options ds_default_capture = 0
trace:dsound:setup_dsound_options ds_default_sample_rate = 44100
trace:dsound:setup_dsound_options ds_default_bits_per_sample = 16
trace:dsound:setup_dsound_options ds_snd_shadow_maxsize = 2
trace:dsound:IDirectSoundImpl_Create (0x32fa1c)
trace:dsound:IDirectSound_IDirectSound_Create (0x12a450,0x32fa74)
trace:dsound:IDirectSoundImpl_AddRef (0x12a450) ref was 0
trace:dsound:IDirectSound_IDirectSound_AddRef (0x12a470) ref was 0
trace:dsound:IDirectSound_IDirectSound_Initialize (0x12a470, (null))
trace:dsound:DirectSoundDevice_Initialize (0x12a454,(null))
trace:dsound:GetDeviceID (DSDEVID_DefaultPlayback,0x32f958)
trace:dsound:GetDeviceID returns {bd6dd71a-3deb-11d1-b171-00c04fc20000}
trace:dsound:DirectSoundDevice_Create (0x32f954)
trace:dsound:DSOUND_ReopenDevice (0x132088, 0)
trace:wave:ALSA_wodMessage (0, DRV_QUERYDSOUNDIFACE, 00000000, 0013209C, 00000000);
trace:dsound:DSOUND_PrimaryCreate (0x132088)
trace:dsound:DSOUND_PrimaryOpen (0x132088)
trace:dsound:DSOUND_RecalcPrimary (0x132088)
trace:dsound:DSOUND_RecalcPrimary fraglen=2048 helfrags=32
trace:dsound:DirectSoundDevice_Initialize Minimum timer resolution: 1, max timer: 65535
trace:dsound:IDirectSound_IDirectSound_Release (0x12a470) ref was 1
trace:dsound:IDirectSoundImpl_Release (0x12a450) ref was 1
trace:dsound:DirectSoundDevice_Release (0x132088) ref was 1
trace:dsound:DSOUND_PrimaryDestroy (0x132088)
trace:dsound:DSOUND_PrimaryClose (0x132088)
trace:dsound:DirectSoundDevice_Release (0x132088) released
trace:dsound:IDirectSoundImpl_Release (0x12a450) released
trace:dsound:IDirectSound_IDirectSound_Release (0x12a470) released
trace:dsound:DirectSoundCreate ((null),0x32fac4,(nil))
trace:dsound:DSOUND_Create ({279afa83-4981-11ce-a521-0020af0be560}, 0x32fa34)
trace:dsound:setup_dsound_options ds_emuldriver = 0
trace:dsound:setup_dsound_options ds_hel_buflen = 32768
trace:dsound:setup_dsound_options ds_snd_queue_max = 10
trace:dsound:setup_dsound_options ds_snd_queue_min = 6
trace:dsound:setup_dsound_options ds_hw_accel = Full
trace:dsound:setup_dsound_options ds_default_playback = 0
trace:dsound:setup_dsound_options ds_default_capture = 0
trace:dsound:setup_dsound_options ds_default_sample_rate = 44100
trace:dsound:setup_dsound_options ds_default_bits_per_sample = 16
trace:dsound:setup_dsound_options ds_snd_shadow_maxsize = 2
trace:dsound:IDirectSoundImpl_Create (0x32f9dc)
trace:dsound:IDirectSound_IDirectSound_Create (0x132088,0x32fa34)
trace:dsound:IDirectSoundImpl_AddRef (0x132088) ref was 0
trace:dsound:IDirectSound_IDirectSound_AddRef (0x1320a8) ref was 0
trace:dsound:IDirectSound_IDirectSound_Initialize (0x1320a8, (null))
trace:dsound:DirectSoundDevice_Initialize (0x13208c,(null))
trace:dsound:GetDeviceID (DSDEVID_DefaultPlayback,0x32f918)
trace:dsound:GetDeviceID returns {bd6dd71a-3deb-11d1-b171-00c04fc20000}
trace:dsound:DirectSoundDevice_Create (0x32f914)
trace:dsound:DSOUND_ReopenDevice (0x132a18, 0)
trace:wave:ALSA_wodMessage (0, DRV_QUERYDSOUNDIFACE, 00000000, 00132A2C, 00000000);
trace:dsound:DSOUND_PrimaryCreate (0x132a18)
trace:dsound:DSOUND_PrimaryOpen (0x132a18)
trace:dsound:DSOUND_RecalcPrimary (0x132a18)
trace:dsound:DSOUND_RecalcPrimary fraglen=2048 helfrags=32
trace:dsound:DirectSoundDevice_Initialize Minimum timer resolution: 1, max timer: 65535
trace:dsound:IDirectSound_IDirectSound_SetCooperativeLevel (0x1320a8,0x20020,DSSCL_PRIORITY)
trace:dsound:DirectSoundDevice_SetCooperativeLevel (0x132a18,0x20020,DSSCL_PRIORITY)
warn:dsound:DirectSoundDevice_SetCooperativeLevel level=DSSCL_PRIORITY not fully supported
trace:dsound:IDirectSound_IDirectSound_CreateSoundBuffer (0x1320a8,0x32fa9c,0x32fac0,(nil))
trace:dsound:DirectSoundDevice_CreateSoundBuffer (0x132a18,0x32fa9c,0x32fac0,(nil))
trace:dsound:DirectSoundDevice_CreateSoundBuffer (structsize=36)
trace:dsound:DirectSoundDevice_CreateSoundBuffer (flags=0x000000c1:
trace:dsound:_dump_DSBCAPS DSBCAPS_PRIMARYBUFFER DSBCAPS_CTRLPAN DSBCAPS_CTRLVOLUME )
trace:dsound:DirectSoundDevice_CreateSoundBuffer (bufferbytes=0)
trace:dsound:DirectSoundDevice_CreateSoundBuffer (lpwfxFormat=(nil))
trace:dsound:PrimaryBufferImpl_Create 0x132a18,0x132d44,0x132d48)
trace:dsound:PrimaryBufferImpl_Create Created primary buffer at 0x132258
trace:dsound:PrimaryBufferImpl_Create (formattag=0x0001,chans=2,samplerate=48000,bytespersec=192000,blockalign=4,bitspersamp=16,cbSize=0)
trace:dsound:PrimaryBufferImpl_AddRef (0x132258) ref was 0
trace:dsound:PrimaryBufferImpl_GetVolume (0x132258,0x32fa98)
trace:wave:ALSA_wodMessage (0, WODM_GETVOLUME, 00000000, 0032FA28, 00000000);
trace:wave:wodGetVolume (0, 0x32fa28);
trace:wave:wodGetVolume wDevId 0, hctl (nil)
trace:alsa:ALSA_CheckSetVolume line 470; hctl (nil)
trace:wave:wodGetVolume CheckSetVolume failed; rc 8
warn:dsound:PrimaryBufferImpl_GetVolume can't get volume
ds3d.c:1357: Test failed: Hey! Couldn't get volume!
trace:dsound:IDirectSound_IDirectSound_SetCooperativeLevel (0x1320a8,0x20020,DSSCL_NORMAL)
trace:dsound:DirectSoundDevice_SetCooperativeLevel (0x132a18,0x20020,DSSCL_NORMAL)
trace:dsound:IDirectSound_IDirectSound_Release (0x1320a8) ref was 1
trace:dsound:IDirectSoundImpl_Release (0x132088) ref was 1
trace:dsound:DirectSoundDevice_Release (0x132a18) ref was 1
warn:dsound:DirectSoundDevice_Release primary buffer not released
trace:dsound:PrimaryBufferImpl_Release (0x132258) ref was 1
trace:dsound:PrimaryBufferImpl_Release (0x132258) released
trace:dsound:DSOUND_PrimaryDestroy (0x132a18)
trace:dsound:DSOUND_PrimaryClose (0x132a18)
trace:dsound:DirectSoundDevice_Release (0x132a18) released
trace:dsound:IDirectSoundImpl_Release (0x132088) released
trace:dsound:IDirectSound_IDirectSound_Release (0x1320a8) released
trace:wave:ALSA_wodMessage (0, DRV_QUERYDSOUNDDESC, 00000000, 0032FB64, 00000000);
trace:dsound:DirectSoundEnumerateA calling lpDSEnumCallback({bd6dd71a-3deb-11d1-b171-00c04fc20000},"dmix:0","winealsa.drv",(nil))
ds3d.c:1388: *** Testing dmix:0 - winealsa.drv ***
trace:dsound:DirectSoundCreate ({bd6dd71a-3deb-11d1-b171-00c04fc20000},0x32fac8,(nil))
trace:dsound:DSOUND_Create ({279afa83-4981-11ce-a521-0020af0be560}, 0x32fa74)
trace:dsound:setup_dsound_options ds_emuldriver = 0
trace:dsound:setup_dsound_options ds_hel_buflen = 32768
trace:dsound:setup_dsound_options ds_snd_queue_max = 10
trace:dsound:setup_dsound_options ds_snd_queue_min = 6
trace:dsound:setup_dsound_options ds_hw_accel = Full
trace:dsound:setup_dsound_options ds_default_playback = 0
trace:dsound:setup_dsound_options ds_default_capture = 0
trace:dsound:setup_dsound_options ds_default_sample_rate = 44100
trace:dsound:setup_dsound_options ds_default_bits_per_sample = 16
trace:dsound:setup_dsound_options ds_snd_shadow_maxsize = 2
trace:dsound:IDirectSoundImpl_Create (0x32fa1c)
trace:dsound:IDirectSound_IDirectSound_Create (0x132088,0x32fa74)
trace:dsound:IDirectSoundImpl_AddRef (0x132088) ref was 0
trace:dsound:IDirectSound_IDirectSound_AddRef (0x1320a8) ref was 0
trace:dsound:IDirectSound_IDirectSound_Initialize (0x1320a8, {bd6dd71a-3deb-11d1-b171-00c04fc20000})
trace:dsound:DirectSoundDevice_Initialize (0x13208c,{bd6dd71a-3deb-11d1-b171-00c04fc20000})
trace:dsound:GetDeviceID ({bd6dd71a-3deb-11d1-b171-00c04fc20000},0x32f958)
trace:dsound:GetDeviceID returns {bd6dd71a-3deb-11d1-b171-00c04fc20000}
trace:dsound:DirectSoundDevice_Create (0x32f954)
trace:dsound:DSOUND_ReopenDevice (0x132a18, 0)
trace:wave:ALSA_wodMessage (0, DRV_QUERYDSOUNDIFACE, 00000000, 00132A2C, 00000000);
trace:dsound:DSOUND_PrimaryCreate (0x132a18)
trace:dsound:DSOUND_PrimaryOpen (0x132a18)
trace:dsound:DSOUND_RecalcPrimary (0x132a18)
trace:dsound:DSOUND_RecalcPrimary fraglen=2048 helfrags=32
trace:dsound:DirectSoundDevice_Initialize Minimum timer resolution: 1, max timer: 65535
trace:dsound:IDirectSound_IDirectSound_Release (0x1320a8) ref was 1
trace:dsound:IDirectSoundImpl_Release (0x132088) ref was 1
trace:dsound:DirectSoundDevice_Release (0x132a18) ref was 1
trace:dsound:DSOUND_PrimaryDestroy (0x132a18)
trace:dsound:DSOUND_PrimaryClose (0x132a18)
trace:dsound:DirectSoundDevice_Release (0x132a18) released
trace:dsound:IDirectSoundImpl_Release (0x132088) released
trace:dsound:IDirectSound_IDirectSound_Release (0x1320a8) released
trace:dsound:DirectSoundCreate ({bd6dd71a-3deb-11d1-b171-00c04fc20000},0x32fac4,(nil))
trace:dsound:DSOUND_Create ({279afa83-4981-11ce-a521-0020af0be560}, 0x32fa34)
trace:dsound:setup_dsound_options ds_emuldriver = 0
trace:dsound:setup_dsound_options ds_hel_buflen = 32768
trace:dsound:setup_dsound_options ds_snd_queue_max = 10
trace:dsound:setup_dsound_options ds_snd_queue_min = 6
trace:dsound:setup_dsound_options ds_hw_accel = Full
trace:dsound:setup_dsound_options ds_default_playback = 0
trace:dsound:setup_dsound_options ds_default_capture = 0
trace:dsound:setup_dsound_options ds_default_sample_rate = 44100
trace:dsound:setup_dsound_options ds_default_bits_per_sample = 16
trace:dsound:setup_dsound_options ds_snd_shadow_maxsize = 2
trace:dsound:IDirectSoundImpl_Create (0x32f9dc)
trace:dsound:IDirectSound_IDirectSound_Create (0x132088,0x32fa34)
trace:dsound:IDirectSoundImpl_AddRef (0x132088) ref was 0
trace:dsound:IDirectSound_IDirectSound_AddRef (0x1320a8) ref was 0
trace:dsound:IDirectSound_IDirectSound_Initialize (0x1320a8, {bd6dd71a-3deb-11d1-b171-00c04fc20000})
trace:dsound:DirectSoundDevice_Initialize (0x13208c,{bd6dd71a-3deb-11d1-b171-00c04fc20000})
trace:dsound:GetDeviceID ({bd6dd71a-3deb-11d1-b171-00c04fc20000},0x32f918)
trace:dsound:GetDeviceID returns {bd6dd71a-3deb-11d1-b171-00c04fc20000}
trace:dsound:DirectSoundDevice_Create (0x32f914)
trace:dsound:DSOUND_ReopenDevice (0x132a18, 0)
trace:wave:ALSA_wodMessage (0, DRV_QUERYDSOUNDIFACE, 00000000, 00132A2C, 00000000);
trace:dsound:DSOUND_PrimaryCreate (0x132a18)
trace:dsound:DSOUND_PrimaryOpen (0x132a18)
trace:dsound:DSOUND_RecalcPrimary (0x132a18)
trace:dsound:DSOUND_RecalcPrimary fraglen=2048 helfrags=32
trace:dsound:DirectSoundDevice_Initialize Minimum timer resolution: 1, max timer: 65535
trace:dsound:IDirectSound_IDirectSound_SetCooperativeLevel (0x1320a8,0x20020,DSSCL_PRIORITY)
trace:dsound:DirectSoundDevice_SetCooperativeLevel (0x132a18,0x20020,DSSCL_PRIORITY)
warn:dsound:DirectSoundDevice_SetCooperativeLevel level=DSSCL_PRIORITY not fully supported
trace:dsound:IDirectSound_IDirectSound_CreateSoundBuffer (0x1320a8,0x32fa9c,0x32fac0,(nil))
trace:dsound:DirectSoundDevice_CreateSoundBuffer (0x132a18,0x32fa9c,0x32fac0,(nil))
trace:dsound:DirectSoundDevice_CreateSoundBuffer (structsize=36)
trace:dsound:DirectSoundDevice_CreateSoundBuffer (flags=0x000000c1:
trace:dsound:_dump_DSBCAPS DSBCAPS_PRIMARYBUFFER DSBCAPS_CTRLPAN DSBCAPS_CTRLVOLUME )
trace:dsound:DirectSoundDevice_CreateSoundBuffer (bufferbytes=0)
trace:dsound:DirectSoundDevice_CreateSoundBuffer (lpwfxFormat=(nil))
trace:dsound:PrimaryBufferImpl_Create 0x132a18,0x132d44,0x132d48)
trace:dsound:PrimaryBufferImpl_Create Created primary buffer at 0x132258
trace:dsound:PrimaryBufferImpl_Create (formattag=0x0001,chans=2,samplerate=48000,bytespersec=192000,blockalign=4,bitspersamp=16,cbSize=0)
trace:dsound:PrimaryBufferImpl_AddRef (0x132258) ref was 0
trace:dsound:PrimaryBufferImpl_GetVolume (0x132258,0x32fa98)
trace:wave:ALSA_wodMessage (0, WODM_GETVOLUME, 00000000, 0032FA28, 00000000);
trace:wave:wodGetVolume (0, 0x32fa28);
trace:wave:wodGetVolume wDevId 0, hctl (nil)
trace:alsa:ALSA_CheckSetVolume line 470; hctl (nil)
trace:wave:wodGetVolume CheckSetVolume failed; rc 8
warn:dsound:PrimaryBufferImpl_GetVolume can't get volume
ds3d.c:1357: Test failed: Hey! Couldn't get volume!
trace:dsound:IDirectSound_IDirectSound_SetCooperativeLevel (0x1320a8,0x20020,DSSCL_NORMAL)
trace:dsound:DirectSoundDevice_SetCooperativeLevel (0x132a18,0x20020,DSSCL_NORMAL)
trace:dsound:IDirectSound_IDirectSound_Release (0x1320a8) ref was 1
trace:dsound:IDirectSoundImpl_Release (0x132088) ref was 1
trace:dsound:DirectSoundDevice_Release (0x132a18) ref was 1
warn:dsound:DirectSoundDevice_Release primary buffer not released
trace:dsound:PrimaryBufferImpl_Release (0x132258) ref was 1
trace:dsound:PrimaryBufferImpl_Release (0x132258) released
trace:dsound:DSOUND_PrimaryDestroy (0x132a18)
trace:dsound:DSOUND_PrimaryClose (0x132a18)
trace:dsound:DirectSoundDevice_Release (0x132a18) released
trace:dsound:IDirectSoundImpl_Release (0x132088) released
trace:dsound:IDirectSound_IDirectSound_Release (0x1320a8) released
ds3d: 17 tests executed (0 marked as todo, 2 failures), 0 skipped.
trace:dsound:DllMain (0x7de70000 0 0x1)
trace:dsound:DllMain DLL_PROCESS_DETACH
trace:wave:ALSA_widMessage (0, DRVM_EXIT, 00000000, 00000000, 00000000);
trace:wave:ALSA_wodMessage (0, DRVM_EXIT, 00000000, 00000000, 00000000);