xaudio2: Try to increase OpenAL source limit.

openal-soft recently added support for applications to request new
source count limits. Older versions will silently ignore these
attributes.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Andrew Eikum 2017-04-17 13:14:58 -05:00 committed by Alexandre Julliard
parent c5619beb77
commit 986a14f950

View file

@ -1593,7 +1593,7 @@ static HRESULT WINAPI IXAudio2Impl_CreateMasteringVoice(IXAudio2 *iface,
IMMDevice *dev; IMMDevice *dev;
HRESULT hr; HRESULT hr;
WAVEFORMATEX *fmt; WAVEFORMATEX *fmt;
ALCint attrs[7]; ALCint attrs[11];
REFERENCE_TIME period, bufdur; REFERENCE_TIME period, bufdur;
TRACE("(%p)->(%p, %u, %u, 0x%x, %s, %p, 0x%x)\n", This, TRACE("(%p)->(%p, %u, %u, 0x%x, %s, %p, 0x%x)\n", This,
@ -1743,11 +1743,20 @@ static HRESULT WINAPI IXAudio2Impl_CreateMasteringVoice(IXAudio2 *iface,
LeaveCriticalSection(&This->lock); LeaveCriticalSection(&This->lock);
return AUDCLNT_E_UNSUPPORTED_FORMAT; return AUDCLNT_E_UNSUPPORTED_FORMAT;
} }
attrs[2] = ALC_FREQUENCY; attrs[2] = ALC_FREQUENCY;
attrs[3] = inputSampleRate; attrs[3] = inputSampleRate;
attrs[4] = ALC_FORMAT_TYPE_SOFT; attrs[4] = ALC_FORMAT_TYPE_SOFT;
attrs[5] = al_get_loopback_format(&This->fmt); attrs[5] = al_get_loopback_format(&This->fmt);
attrs[6] = 0;
/* some games create very many sources */
attrs[6] = ALC_STEREO_SOURCES;
attrs[7] = 1024;
attrs[8] = ALC_MONO_SOURCES;
attrs[9] = 1024;
attrs[10] = 0;
if(!attrs[5]){ if(!attrs[5]){
WARN("OpenAL can't output samples in this format\n"); WARN("OpenAL can't output samples in this format\n");