diff --git a/dsound8.c b/dsound8.c index 03de561..97f9751 100644 --- a/dsound8.c +++ b/dsound8.c @@ -342,12 +342,14 @@ static HRESULT DSShare_Create(REFIID guid, DeviceShare **out) } if(share->sources.maxhw_alloc > 0 && HAS_EXTENSION(share, EXT_EAX)) { + EAXSet(&DSPROPSETID_EAX20_BufferProperties, DSPROPERTY_EAX20BUFFER_COMMITDEFERREDSETTINGS, + share->sources.ids[0], NULL, 0); EAXGet(&EAXPROPERTYID_EAX40_Source, EAXSOURCE_ALLPARAMETERS, share->sources.ids[0], &share->default_srcprops, sizeof(share->default_srcprops)); EAXGet(&EAXPROPERTYID_EAX40_Source, EAXSOURCE_ALLSENDPARAMETERS, share->sources.ids[0], &share->default_srcsend, sizeof(share->default_srcsend)); - EAXGet(&EAXPROPERTYID_EAX40_Source, EAXSOURCE_ACTIVEFXSLOTID, share->sources.ids[0], - &share->default_srcslots, sizeof(share->default_srcslots)); + share->default_srcslots[0] = GUID_NULL; + share->default_srcslots[1] = EAXPROPERTYID_EAX40_FXSlot0; } popALContext(); diff --git a/dsound_private.h b/dsound_private.h index 40e3729..783fdcf 100644 --- a/dsound_private.h +++ b/dsound_private.h @@ -489,7 +489,7 @@ enum { */ #define MAX_HWBUFFERS 128 -#define MAX_SOURCES 256 +#define MAX_SOURCES 512 typedef struct SourceCollection { DWORD maxhw_alloc, availhw_num; DWORD maxsw_alloc, availsw_num;