http://bugs.winehq.org/show_bug.cgi?id=11633
Raymond superquad.vortex2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |superquad.vortex2@gmail.com
--- Comment #10 from Raymond superquad.vortex2@gmail.com 2010-09-24 21:13:10 CDT --- it is easy to get the Hardware DirectSound3D enabled in ds3d application (e.g RightMark3DSound ) but get it working is another story
Just need to set dwMaxHw3DAllBuffers non zero
infop = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, snd_pcm_info_sizeof() ); if ( snd_pcm_info(pcm, infop) == 0 ) { if ( snd_pcm_info_get_subdevices_count(infop) >= 16 ) { TRACE("hardware secondary buffers available\n"); pCaps->dwMaxHwMixingAllBuffers = 16; pCaps->dwMaxHwMixingStaticBuffers = 0; pCaps->dwMaxHwMixingStreamingBuffers = 16; pCaps->dwFreeHwMixingAllBuffers = 16; pCaps->dwFreeHwMixingStaticBuffers = 0; pCaps->dwFreeHwMixingStreamingBuffers = 16;
hw_params = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, snd_pcm_hw_params_sizeof() ); if ( snd_pcm_hw_params_any(pcm, hw_params) == 0 ) {
snd_pcm_hw_params_set_rate_resample(pcm, hw_params, 0);
snd_pcm_hw_params_get_rate_min(hw_params,&pCaps->dwMinSecondarySampleRate,0);
snd_pcm_hw_params_get_rate_max(hw_params,&pCaps->dwMaxSecondarySampleRate,0);
if (( snd_pcm_hw_params_test_format(pcm, hw_params, SND_PCM_FORMAT_S16_LE) == 0 ) || ( snd_pcm_hw_params_test_format(pcm, hw_params, SND_PCM_FORMAT_U16_LE) == 0 )) pCaps->dwFlags |= DSCAPS_SECONDARY16BIT; if (( snd_pcm_hw_params_test_format(pcm, hw_params, SND_PCM_FORMAT_U8) == 0 ) || ( snd_pcm_hw_params_test_format(pcm, hw_params, SND_PCM_FORMAT_S8) == 0 )) pCaps->dwFlags |= DSCAPS_SECONDARY8BIT;
if ( snd_pcm_hw_params_test_channels(pcm, hw_params, 1) == 0 ) { pCaps->dwFlags |= DSCAPS_SECONDARYMONO;
TRACE("hardware 3D buffers available\n"); pCaps->dwMaxHw3DAllBuffers = 16; pCaps->dwMaxHw3DStaticBuffers = 0; pCaps->dwMaxHw3DStreamingBuffers = 16; pCaps->dwFreeHw3DAllBuffers = 16; pCaps->dwFreeHw3DStaticBuffers = 0; pCaps->dwFreeHw3DStreamingBuffers = 16; }; if ( snd_pcm_hw_params_test_channels(pcm, hw_params, 2) == 0 ) pCaps->dwFlags |= DSCAPS_SECONDARYSTEREO; }; }; };