problem in dsound with DirectSoundCreate

christoph kunz christoph.kunz at iao.fhg.de
Mon Jul 19 07:49:35 CDT 2004


hi all,

i´m trying to get the djing app "native instruments traktor dj studio"
to work under recent wine versions. i´m running fc2 with kernel
2.6.6.1-435 on a dell laptop. when only using one stereo channel, the
app really runs fine, but for djing you need monitor support, which
means to use 4 channels of a quadrophonic sound card (my one is a audigy
nx, but same for the intenal card). the means using the ds subsystem,
since mm is not capable of using 4 channels..

i recently posted this question to wine-users, but i traced the error a
bit more and think its more of interest to developers. if you guys can
give me some hints one the sourcecode, may be i´m able to fix the
problem..

the problem is:
djstudio when started up the first time wants to know which device and
which driver to use. therefor a dropdown lists pops up, wher the devices
and the available drivers are listed (eg. mm, ds, asio, etc..) when
choosing a driver i can then assign audio channels for monitoring and
master.

now, with wine and wineoss driver djstudio correctly lists the
audio-devices available, and with mm two channels are provided for
either the master or monitor audio channel. but when i choose the "ds
driver" no channels are supported. i think the problem is located in the
lowlevel wineoss driver, where DirectSoundCreate is something confusing
with GUIDs.

detail:

wine-20040615, WINEDEBUG=trace+dsound,warn+dsound lists
<--snip-->
trace:dsound:DirectSoundEnumerateA calling
lpDSEnumCallback(NULL,"Primary Sound Driver","wineoss.drv",0x556efb1c)
trace:dsound:DirectSoundEnumerateA calling
lpDSEnumCallback({bd6dd71a-3deb-11d1-b171-00c04fc20000},"SigmaTel
STAC9750/51","wineoss.drv",0x556efb1c)
trace:dsound:DirectSoundCaptureEnumerateA (0x60ce54,0x556efb1c)
trace:dsound:GetDeviceID (0x55bd1868,0x556ef818)
trace:dsound:DirectSoundCaptureEnumerateA calling
lpDSEnumCallback(NULL,"Primary Sound Capture
Driver","wineoss.drv",0x556efb1c)
trace:dsound:DirectSoundCaptureEnumerateA calling
lpDSEnumCallback({bd6dd71b-3deb-11d1-b171-00c04fc20000},"SigmaTel
STAC9750/51","wineoss.drv",0x556efb1c)
trace:dsound:DirectSoundCreate8
({58d80060-2a50-5ba7-b171-00c04038a75b},0x5ba71010,(nil))
trace:dsound:setup_dsound_options appname =
[TraktorDJStudio2Demo.exe\dsound] 
warn:dsound:setup_dsound_options ds_hw_accel = Emulation (default=Full)
trace:dsound:GetDeviceID (0x556ef818,0x556edb84)
trace:dsound:DirectSoundCreate8  expecting GUID
{58d80060-2a50-5ba7-b171-00c04038a75b}.
trace:dsound:DirectSoundCreate8 got GUID
{bd6dd71a-3deb-11d1-b171-00c04fc20000} for wod 0.
warn:dsound:DirectSoundCreate8 No device found matching given ID -
trying with default one !
<--snap-->
trace:dsound:IDirectSoundImpl_SetCooperativeLevel
(0x55241ce8,00010024,2(DSSCL_PRIORITY))
fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORITY
not fully supported
<--snap II>

as you can see the internal hw device "SigmaTel STAC9750/51" of my
laptop is listed. then tow problems occur

1) DirectSoundCreate8 receives a wrong GUID  (whatever that meens??)
2) SetCooperativeLevel level is not fully supported  (whatever that
meens??)

in wine-20040716 the SetCooperativeLevel seems to be fixed and
DirectSoundCreate8 switched to DirectSoundCreate but also recieves a
wrong GUID, which i think thats the main reason traktor won´t list
channels. i think, traktor is checking, if the device is really there

now, i read something about a related problem
(http://www.winehq.org/hypermail/wine-devel/2004/05/0022.html)

the patch, which is in the actual sourcecode, 
...
  This->pDirectSound = (IDirectSound*) pDirectSound;
  IDirectSound_AddRef((LPDIRECTSOUND) This->pDirectSound);
} else {
  DirectSoundCreate8(NULL, (LPDIRECTSOUND8*) &This->pDirectSound, NULL);
...

i think always trys to get the default device with the NULL paramter.. 
am i right, i dont really know??


please, can you help i some way, why the GUID is wrong (maybe my setup) or where to experiment with the sourcecode ??

thankx in advance&all the best

christoph

ps: the djstudio demo is available at www.nativeinstruments.com

-- 
dipl.-ing. christoph kunz
fraunhofer institut fuer arbeitswirtschaft und organisation
competence center softwaretechnik
nobelstrasse 12
d-70569 stuttgart
germany

fon:      +49 (0)711 - 970 2314
fax:      +49 (0)711 - 970 2300
mail:     christoph.kunz at iao.fhg.de
icq#:     49335597
web:      http://www.iao.fhg.de
pgp#:     12AF7964 at wwwkey.pgp.net





More information about the wine-devel mailing list