mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
9517e98320
This patchset appears not to correct anything and is just here to make applying other patchsets easier.
102 lines
3.3 KiB
Diff
102 lines
3.3 KiB
Diff
From f66f232de49f8fd3e14e8f328e16e89b83e7dcc8 Mon Sep 17 00:00:00 2001
|
|
From: Mark Harmstone <mark@harmstone.com>
|
|
Date: Fri, 27 Mar 2015 20:58:37 +0000
|
|
Subject: [PATCH] dsound: Add EAX init and free stubs.
|
|
|
|
---
|
|
dlls/dsound/buffer.c | 4 ++++
|
|
dlls/dsound/dsound_private.h | 2 ++
|
|
dlls/dsound/eax.c | 28 +++++++++++++++++++++++++++-
|
|
3 files changed, 33 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
|
|
index 720bec9..7e9e478 100644
|
|
--- a/dlls/dsound/buffer.c
|
|
+++ b/dlls/dsound/buffer.c
|
|
@@ -1104,6 +1104,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
|
|
DSOUND_RecalcVolPan(&(dsb->volpan));
|
|
|
|
RtlInitializeResource(&dsb->lock);
|
|
+ if (dsb->device->eax.using_eax)
|
|
+ init_eax_buffer(dsb);
|
|
|
|
/* register buffer */
|
|
err = DirectSoundDevice_AddBuffer(device, dsb);
|
|
@@ -1147,6 +1149,8 @@ void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
|
|
HeapFree(GetProcessHeap(), 0, This->filters);
|
|
}
|
|
|
|
+ free_eax_buffer(This);
|
|
+
|
|
HeapFree(GetProcessHeap(), 0, This);
|
|
|
|
TRACE("(%p) released\n", This);
|
|
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
|
index e412533..6c90726 100644
|
|
--- a/dlls/dsound/dsound_private.h
|
|
+++ b/dlls/dsound/dsound_private.h
|
|
@@ -235,6 +235,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
|
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
|
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
|
|
ULONG cbPropData) DECLSPEC_HIDDEN;
|
|
+void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
|
|
+void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
|
|
|
|
/* mixer.c */
|
|
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN;
|
|
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
|
index 3931681..c0afb0f 100644
|
|
--- a/dlls/dsound/eax.c
|
|
+++ b/dlls/dsound/eax.c
|
|
@@ -92,20 +92,46 @@ static const EFXEAXREVERBPROPERTIES efx_presets[] = {
|
|
{ 0.0625f, 0.5000f, 0.3162f, 0.8404f, 1.0000f, 7.5600f, 0.9100f, 1.0000f, 0.4864f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 2.4378f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 4.0000f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } /* psychotic */
|
|
};
|
|
|
|
-static BOOL ReverbDeviceUpdate(DirectSoundDevice *dev)
|
|
+static void ReverbUpdate(IDirectSoundBufferImpl *dsb)
|
|
{
|
|
/* stub */
|
|
+}
|
|
+
|
|
+static BOOL ReverbDeviceUpdate(DirectSoundDevice *dev)
|
|
+{
|
|
+ int i;
|
|
+
|
|
+ for (i = 0; i < dev->nrofbuffers; i++) {
|
|
+ ReverbUpdate(dev->buffers[i]);
|
|
+ }
|
|
+
|
|
return TRUE;
|
|
}
|
|
|
|
+void init_eax_buffer(IDirectSoundBufferImpl *dsb)
|
|
+{
|
|
+ ReverbUpdate(dsb);
|
|
+}
|
|
+
|
|
static void init_eax(DirectSoundDevice *dev)
|
|
{
|
|
+ int i;
|
|
+
|
|
dev->eax.using_eax = TRUE;
|
|
dev->eax.environment = presets[0].environment;
|
|
dev->eax.volume = presets[0].fVolume;
|
|
dev->eax.damping = presets[0].fDamping;
|
|
memcpy(&dev->eax.eax_props, &efx_presets[0], sizeof(dev->eax.eax_props));
|
|
dev->eax.eax_props.flDecayTime = presets[0].fDecayTime_sec;
|
|
+
|
|
+ for (i = 0; i < dev->nrofbuffers; i++) {
|
|
+ init_eax_buffer(dev->buffers[i]);
|
|
+ }
|
|
+}
|
|
+
|
|
+void free_eax_buffer(IDirectSoundBufferImpl *dsb)
|
|
+{
|
|
+ /* stub */
|
|
}
|
|
|
|
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
|
|
--
|
|
1.9.1
|
|
|