http://bugs.winehq.org/show_bug.cgi?id=20799
--- Comment #75 from Raymond superquad.vortex2@gmail.com 2010-05-11 02:42:25 --- (In reply to comment #74)
(In reply to comment #72)
But wine seem did not return error when the application specify DSBCAPS_LOCHARDWARE if wine did not support any kind of hardware acceleration
What function should return the error and what is the value of the error? I could try to change the code, to confirm your theory.
(As i have nearly any programming knowledge, better variant is, that you attach a patch here directly, to avoid my programming mistakes)
DSBCAPS_LOCHARDWARE
Forces the buffer to use hardware mixing, even if DSBCAPS_STATIC is not specified. If the device does not support hardware mixing or if the required hardware memory is not available, the call to the IDirectSound::CreateSoundBuffer method will fail. The application must ensure that a mixing channel will be available for this buffer; this condition is not guaranteed
I am not sure which variable should be use
DWORD dwFreeHwMixingAllBuffers; DWORD dwFreeHwMixingStaticBuffers; DWORD dwFreeHwMixingStreamingBuffers;
i.e. if (( dwFreeHwMixing???Buffers < 1 ) && ( request is DSBCAPS_LOCHARDWARE ) return error in IDirectSound::CreateSoundBuffer