This patch adds multiple direct sound device support. You can now enumerate over all the sound devices and select one based on it's GUID. This patch uncovers a bug in the direct sound driver which has problems when switching between devices quickly. The problem shows up when running the test program with multiple sound devices or by using DXCapsViewer from the DXSDK and switching between devices quickly. There is no problem when running in emulation mode. ALSA should work because it only supports one device. I tried to track down this problem without success. It seems a timer callback is called after a device is closed using the old device data. This causes a problems because either the device is closed or a different device is open. I tried to apply the fixes from winex for this problem and it makes it better but doesn't solve it. They are not included in this patch because they didn't fix the problem.
Attachment:
winmm.diff
Description: application/unknown-content-type-diff_auto_file
Attachment:
include.diff
Description: application/unknown-content-type-diff_auto_file
Attachment:
samples.diff
Description: application/unknown-content-type-diff_auto_file
Attachment:
winealsa.diff
Description: application/unknown-content-type-diff_auto_file
Attachment:
wineoss.diff
Description: application/unknown-content-type-diff_auto_file
Attachment:
dsound.diff
Description: application/unknown-content-type-diff_auto_file