reactos/dll/directx
Oleg Dubinskiy d7b2280c5c
[DSOUND] Improvements to DirectSound(Capture)EnumerateW (#3899)
Fix and improve DirectSoundEnumerateW and DirectSoundCaptureEnumerateW implementations in our dsound.

Use the Windows-compatible way to get the device name and pass it to callback.
- Don't use Wine-specific DSDRIVERDESC structure and DRV_QUERYDSOUNDDESC message, declared in sdk/include/dxsdk/dsdriver.h, whose are obsolete even in Wine for now.
- Instead, declare a new WAVEINCAPSW and WAVEOUTCAPSW structures (for input and output appropriately), call waveInGetDevCapsW and WaveOutGetDevCapsW for enumerated device ID and store retieved device name in these structures.
- Then pass them to a lpDSEnumCallbackW as well, without Ansi to Unicode conversion (since the retrieved string is Unicode already).
- Do this both for capture and playback functions.
- Addtionally, add MMSYSERR_BADDEVICEID status code to mmErr macro, because it also might be returned by waveIn/OutGetDevCapsW as well, in case of failure.
- And mark our dosund as forked, because it definitely will not be synced at least until we'll retarget to Vista or newer. Add an appropriate comment.

This fixes incorrect detection of DirectSound audio input and output devices, so now a lot of apps are able to detect it correctly, and can play the sound properly (e.g. AIMP 2.61 and IcyTower from RAPPS).

CORE-7535 CORE-10907 CORE-15324 CORE-15533 CORE-16340
2021-09-04 15:58:42 +03:00
..
bdaplgin [DLLs] Fix .spec files regarding OLE-specific exports. 2019-07-28 16:26:22 +02:00
d3d8
d3d8thk [CMAKE] Use modules instead of shared libraries 2019-04-06 17:43:38 +02:00
d3d9 [D3D9][ARPING] Add missing va_start() and va_end() (#371) 2018-02-16 10:28:25 +01:00
ddraw [DSOUND_NEW][DDRAW] CMake fixes (#2389) 2020-03-06 19:09:28 +01:00
dsound_new [DSOUND_NEW][DDRAW] CMake fixes (#2389) 2020-03-06 19:09:28 +01:00
ksproxy [CMAKE] Get rid of the set_cpp macro 2020-10-20 21:44:54 +02:00
ksuser [KSUSER] Improve pointer arithmetics 2019-08-15 18:04:57 +02:00
msdvbnp [DLLs] Fix .spec files regarding OLE-specific exports. 2019-07-28 16:26:22 +02:00
msvidctl [BOOT][DIRECTX][SHELL32] Unneeded semicolons (trivial) (#3133) 2020-09-08 21:57:13 +02:00
wine [DSOUND] Improvements to DirectSound(Capture)EnumerateW (#3899) 2021-09-04 15:58:42 +03:00
CMakeLists.txt