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