Rebase against 08c6114fbbdabe1873731356c51716e513a26348.

This commit is contained in:
Zebediah Figura 2021-04-21 19:23:54 -05:00
parent 39f66ddd9f
commit 27fae2dc15
25 changed files with 16 additions and 2814 deletions

View File

@ -1,18 +1,18 @@
From d6805cde0e8f01e672f17fb03af947e7d2f83dde Mon Sep 17 00:00:00 2001
From cf45f6b66c0babf760c2a27ff7aa6842696fb22f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 1 Oct 2017 04:43:22 +0200
Subject: [PATCH] d3d11: Implement restoring of state after executing a command
list.
---
dlls/d3d11/device.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++-
dlls/d3d11/device.c | 233 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 229 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 4f3700d..e214202 100644
index 639727e4af4..c2c63d97351 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -367,6 +367,62 @@ struct deferred_call
@@ -391,6 +391,62 @@ struct deferred_call
};
};
@ -75,7 +75,7 @@ index 4f3700d..e214202 100644
/* ID3D11CommandList - command list */
struct d3d11_command_list
{
@@ -2513,22 +2569,191 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
@@ -2730,22 +2786,191 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
wined3d_mutex_unlock();
}
@ -130,7 +130,7 @@ index 4f3700d..e214202 100644
+ ID3D11DeviceContext1_SOGetTargets(context, D3D11_SO_BUFFER_SLOT_COUNT, stateblock->so_buffers);
+ /* For some reason the d3d11 get function is missing the offset parameter */
+ for (i = 0; i < D3D11_SO_BUFFER_SLOT_COUNT; i++)
+ wined3d_device_get_stream_output(device->wined3d_device, i, &stateblock->so_offsets[i]);
+ wined3d_device_context_get_stream_output(device->immediate_context.wined3d_context, i, &stateblock->so_offsets[i]);
+
+ ID3D11DeviceContext1_GetPredication(context, &stateblock->predicate, &stateblock->predicate_value);
+
@ -272,5 +272,5 @@ index 4f3700d..e214202 100644
}
--
1.9.1
2.30.2

View File

@ -1,4 +1,4 @@
From 5bfa95c3058d8c869e7555514b05dc877a842e42 Mon Sep 17 00:00:00 2001
From f72b878cf5dcf8f20d485f7b3e75d86e303393e7 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Fri, 8 Jun 2018 22:04:29 -0500
Subject: [PATCH] server: Create eventfd file descriptors for thread objects.
@ -9,7 +9,7 @@ Subject: [PATCH] server: Create eventfd file descriptors for thread objects.
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/server/thread.c b/server/thread.c
index 8432d0aa8ed..d4b88be3897 100644
index e7795c21136..ef5b3fbf313 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -186,6 +186,7 @@ struct type_descr thread_type =
@ -37,8 +37,8 @@ index 8432d0aa8ed..d4b88be3897 100644
thread->system_regs = 0;
thread->queue = NULL;
thread->wait = NULL;
@@ -374,6 +376,9 @@ struct thread *create_thread( int fd, struct process *process, const struct secu
return NULL;
@@ -385,6 +387,9 @@ struct thread *create_thread( int fd, struct process *process, const struct secu
}
}
+ if (do_esync())
@ -47,7 +47,7 @@ index 8432d0aa8ed..d4b88be3897 100644
set_fd_events( thread->request_fd, POLLIN ); /* start listening to events */
add_process_thread( thread->process, thread );
return thread;
@@ -453,6 +458,9 @@ static void destroy_thread( struct object *obj )
@@ -464,6 +469,9 @@ static void destroy_thread( struct object *obj )
if (thread->exit_poll) remove_timeout_user( thread->exit_poll );
if (thread->id) free_ptid( thread->id );
if (thread->token) release_object( thread->token );
@ -57,7 +57,7 @@ index 8432d0aa8ed..d4b88be3897 100644
}
/* dump a thread on stdout for debugging purposes */
@@ -471,6 +479,13 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
@@ -482,6 +490,13 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
return mythread->state == TERMINATED && !mythread->exit_poll;
}
@ -84,5 +84,5 @@ index 077ab0929ba..99904557d44 100644
struct msg_queue *queue; /* message queue */
struct thread_wait *wait; /* current wait condition if sleeping */
--
2.20.1
2.30.2

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "788fd4ee44fc9877b01888fdd3cd72b9ac88228e"
echo "08c6114fbbdabe1873731356c51716e513a26348"
}
# Show version information

View File

@ -1,160 +0,0 @@
From fb2f51e8cacba6adcc47f61ae937323b2de76388 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 12:56:33 +0200
Subject: [PATCH 03/23] xactengine2_10: Add new dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 1 +
dlls/xactengine2_10/Makefile.in | 8 ++++
dlls/xactengine2_10/xact2_classes.idl | 27 +++++++++++
dlls/xactengine2_10/xact2_dll.c | 64 +++++++++++++++++++++++++
dlls/xactengine2_10/xactengine2_10.spec | 4 ++
5 files changed, 104 insertions(+)
create mode 100644 dlls/xactengine2_10/Makefile.in
create mode 100644 dlls/xactengine2_10/xact2_classes.idl
create mode 100644 dlls/xactengine2_10/xact2_dll.c
create mode 100644 dlls/xactengine2_10/xactengine2_10.spec
diff --git a/configure.ac b/configure.ac
index 110f50d762a..aa1d315da41 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3983,6 +3983,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_4)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_0)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_1)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_2)
diff --git a/dlls/xactengine2_10/Makefile.in b/dlls/xactengine2_10/Makefile.in
new file mode 100644
index 00000000000..b1c131ddfd9
--- /dev/null
+++ b/dlls/xactengine2_10/Makefile.in
@@ -0,0 +1,8 @@
+MODULE = xactengine2_10.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0210
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
new file mode 100644
index 00000000000..1a248327bb7
--- /dev/null
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -0,0 +1,27 @@
+/*
+ * COM Classes for xactengine
+ *
+ * Copyright 2018 Ethan Lee for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#pragma makedep register
+
+[
+ threading(both),
+ uuid(65d822a4-4799-42c6-9b18-d26cf66dd320)
+]
+coclass XACTEngine {}
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
new file mode 100644
index 00000000000..743f17c0691
--- /dev/null
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018 Ethan Lee for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA+ */
+
+#include "config.h"
+
+#include <stdarg.h>
+
+#include "initguid.h"
+#include "xact.h"
+#include "rpcproxy.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(xact3);
+
+static HINSTANCE instance;
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, void *pReserved)
+{
+ TRACE("(%p, %d, %p)\n", hinstDLL, reason, pReserved);
+
+ switch (reason)
+ {
+ case DLL_PROCESS_ATTACH:
+ instance = hinstDLL;
+ DisableThreadLibraryCalls( hinstDLL );
+ break;
+ }
+ return TRUE;
+}
+
+HRESULT WINAPI DllCanUnloadNow(void)
+{
+ return S_FALSE;
+}
+
+HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
+{
+ FIXME("Unknown class %s\n", debugstr_guid(rclsid));
+ return CLASS_E_CLASSNOTAVAILABLE;
+}
+
+HRESULT WINAPI DllRegisterServer(void)
+{
+ return __wine_register_resources(instance);
+}
+
+HRESULT WINAPI DllUnregisterServer(void)
+{
+ return __wine_unregister_resources(instance);
+}
diff --git a/dlls/xactengine2_10/xactengine2_10.spec b/dlls/xactengine2_10/xactengine2_10.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_10/xactengine2_10.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,564 +0,0 @@
From d487c457d30e5ace5cf98cd76e4add11580dd159 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Mon, 17 Aug 2020 13:40:59 +0200
Subject: [PATCH 04/23] xactengine2_10: Implement IXACTEngine interface.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure | 1 +
configure.ac | 1 +
dlls/xactengine2_10/Makefile.in | 2 +
dlls/xactengine2_10/xact2_dll.c | 479 ++++++++++++++++++++++++++++++++
4 files changed, 483 insertions(+)
diff --git a/configure b/configure
index 3c58e678719..7c7d3b3ce16 100755
--- a/configure
+++ b/configure
@@ -16871,6 +16871,7 @@ then
enable_x3daudio1_5=${enable_x3daudio1_5:-no}
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
+ enable_xactengine2_10=${enable_xactengine2_10:-no}
enable_xactengine3_0=${enable_xactengine3_0:-no}
enable_xactengine3_1=${enable_xactengine3_1:-no}
enable_xactengine3_2=${enable_xactengine3_2:-no}
diff --git a/configure.ac b/configure.ac
index aa1d315da41..bcbeb230ed2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1986,6 +1986,7 @@ then
enable_x3daudio1_5=${enable_x3daudio1_5:-no}
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
+ enable_xactengine2_10=${enable_xactengine2_10:-no}
enable_xactengine3_0=${enable_xactengine3_0:-no}
enable_xactengine3_1=${enable_xactengine3_1:-no}
enable_xactengine3_2=${enable_xactengine3_2:-no}
diff --git a/dlls/xactengine2_10/Makefile.in b/dlls/xactengine2_10/Makefile.in
index b1c131ddfd9..223b188d371 100644
--- a/dlls/xactengine2_10/Makefile.in
+++ b/dlls/xactengine2_10/Makefile.in
@@ -1,6 +1,8 @@
MODULE = xactengine2_10.dll
IMPORTS = ole32 uuid
EXTRADEFS = -DXACT3_VER=0x0210
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
C_SRCS = \
xact2_dll.c
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 743f17c0691..08275a19f5c 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -18,6 +18,10 @@
#include "config.h"
#include <stdarg.h>
+#include <FACT.h>
+
+#define NONAMELESSUNION
+#define COBJMACROS
#include "initguid.h"
#include "xact.h"
@@ -28,6 +32,470 @@ WINE_DEFAULT_DEBUG_CHANNEL(xact3);
static HINSTANCE instance;
+typedef struct _XACTEngineImpl {
+ IXACTEngine IXACTEngine_iface;
+
+ FACTAudioEngine *fact_engine;
+
+ XACT_READFILE_CALLBACK pReadFile;
+ XACT_GETOVERLAPPEDRESULT_CALLBACK pGetOverlappedResult;
+ XACT_NOTIFICATION_CALLBACK notification_callback;
+} XACTEngineImpl;
+
+typedef struct wrap_readfile_struct {
+ XACTEngineImpl *engine;
+ HANDLE file;
+} wrap_readfile_struct;
+
+static int32_t FACTCALL wrap_readfile(
+ void* hFile,
+ void* lpBuffer,
+ uint32_t nNumberOfBytesRead,
+ uint32_t *lpNumberOfBytesRead,
+ FACTOverlapped *lpOverlapped)
+{
+ wrap_readfile_struct *wrap = (wrap_readfile_struct*) hFile;
+ return wrap->engine->pReadFile(wrap->file, lpBuffer, nNumberOfBytesRead,
+ lpNumberOfBytesRead, (LPOVERLAPPED)lpOverlapped);
+}
+
+static int32_t FACTCALL wrap_getoverlappedresult(
+ void* hFile,
+ FACTOverlapped *lpOverlapped,
+ uint32_t *lpNumberOfBytesTransferred,
+ int32_t bWait)
+{
+ wrap_readfile_struct *wrap = (wrap_readfile_struct*) hFile;
+ return wrap->engine->pGetOverlappedResult(wrap->file, (LPOVERLAPPED)lpOverlapped,
+ lpNumberOfBytesTransferred, bWait);
+}
+
+static inline XACTEngineImpl *impl_from_IXACTEngine(IXACTEngine *iface)
+{
+ return CONTAINING_RECORD(iface, XACTEngineImpl, IXACTEngine_iface);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_QueryInterface(IXACTEngine *iface,
+ REFIID riid, void **ppvObject)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppvObject);
+
+ if(IsEqualGUID(riid, &IID_IUnknown) ||
+ IsEqualGUID(riid, &IID_IXACTEngine)){
+ *ppvObject = &This->IXACTEngine_iface;
+ }
+ else
+ *ppvObject = NULL;
+
+ if (*ppvObject){
+ IUnknown_AddRef((IUnknown*)*ppvObject);
+ return S_OK;
+ }
+
+ FIXME("(%p)->(%s,%p), not found\n", This, debugstr_guid(riid), ppvObject);
+
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI IXACTEngineImpl_AddRef(IXACTEngine *iface)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ ULONG ref = FACTAudioEngine_AddRef(This->fact_engine);
+ TRACE("(%p)->(): Refcount now %u\n", This, ref);
+ return ref;
+}
+
+static ULONG WINAPI IXACTEngineImpl_Release(IXACTEngine *iface)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ ULONG ref = FACTAudioEngine_Release(This->fact_engine);
+
+ TRACE("(%p)->(): Refcount now %u\n", This, ref);
+
+ if (!ref)
+ HeapFree(GetProcessHeap(), 0, This);
+ return ref;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_GetRendererCount(IXACTEngine *iface,
+ XACTINDEX *pnRendererCount)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%p)\n", This, pnRendererCount);
+
+ return FACTAudioEngine_GetRendererCount(This->fact_engine, pnRendererCount);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_GetRendererDetails(IXACTEngine *iface,
+ XACTINDEX nRendererIndex, XACT_RENDERER_DETAILS *pRendererDetails)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%d, %p)\n", This, nRendererIndex, pRendererDetails);
+
+ return FACTAudioEngine_GetRendererDetails(This->fact_engine,
+ nRendererIndex, (FACTRendererDetails*) pRendererDetails);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_GetFinalMixFormat(IXACTEngine *iface,
+ WAVEFORMATEXTENSIBLE *pFinalMixFormat)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%p)\n", This, pFinalMixFormat);
+
+ return FACTAudioEngine_GetFinalMixFormat(This->fact_engine,
+ (FAudioWaveFormatExtensible*) pFinalMixFormat);
+}
+
+static void FACTCALL fact_notification_cb(const FACTNotification *notification)
+{
+ XACTEngineImpl *engine = (XACTEngineImpl *)notification->pvContext;
+
+ /* Older versions of FAudio don't pass through the context */
+ if (!engine)
+ {
+ WARN("Notification context is NULL\n");
+ return;
+ }
+
+ if (notification->type == XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED)
+ {
+ FIXME("Callback XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED\n");
+ }
+ else
+ FIXME("Unsupported callback type %d\n", notification->type);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_Initialize(IXACTEngine *iface,
+ const XACT_RUNTIME_PARAMETERS *pParams)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FACTRuntimeParameters params;
+ UINT ret;
+
+ TRACE("(%p)->(%p)\n", This, pParams);
+
+ params.lookAheadTime = pParams->lookAheadTime;
+ params.pGlobalSettingsBuffer = pParams->pGlobalSettingsBuffer;
+ params.globalSettingsBufferSize = pParams->globalSettingsBufferSize;
+ params.globalSettingsFlags = pParams->globalSettingsFlags;
+ params.globalSettingsAllocAttributes = pParams->globalSettingsAllocAttributes;
+ params.pRendererID = pParams->pRendererID;
+ params.pXAudio2 = NULL;
+ params.pMasteringVoice = NULL;
+
+ /* Force Windows I/O, do NOT use the FACT default! */
+ This->pReadFile = (XACT_READFILE_CALLBACK)
+ pParams->fileIOCallbacks.readFileCallback;
+ This->pGetOverlappedResult = (XACT_GETOVERLAPPEDRESULT_CALLBACK)
+ pParams->fileIOCallbacks.getOverlappedResultCallback;
+ if (This->pReadFile == NULL)
+ This->pReadFile = (XACT_READFILE_CALLBACK) ReadFile;
+ if (This->pGetOverlappedResult == NULL)
+ This->pGetOverlappedResult = (XACT_GETOVERLAPPEDRESULT_CALLBACK)
+ GetOverlappedResult;
+ params.fileIOCallbacks.readFileCallback = wrap_readfile;
+ params.fileIOCallbacks.getOverlappedResultCallback = wrap_getoverlappedresult;
+ params.fnNotificationCallback = fact_notification_cb;
+
+ This->notification_callback = (XACT_NOTIFICATION_CALLBACK)pParams->fnNotificationCallback;
+
+ ret = FACTAudioEngine_Initialize(This->fact_engine, &params);
+ if (ret != 0)
+ WARN("FACTAudioEngine_Initialize returned %d\n", ret);
+
+ return !ret ? S_OK : E_FAIL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_ShutDown(IXACTEngine *iface)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)\n", This);
+
+ return FACTAudioEngine_ShutDown(This->fact_engine);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_DoWork(IXACTEngine *iface)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)\n", This);
+
+ return FACTAudioEngine_DoWork(This->fact_engine);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_CreateSoundBank(IXACTEngine *iface,
+ const void* pvBuffer, DWORD dwSize, DWORD dwFlags,
+ DWORD dwAllocAttributes, IXACTSoundBank **ppSoundBank)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p)->(%p, %u, 0x%x, 0x%x, %p): stub!\n", This, pvBuffer, dwSize, dwFlags,
+ dwAllocAttributes, ppSoundBank);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_CreateInMemoryWaveBank(IXACTEngine *iface,
+ const void* pvBuffer, DWORD dwSize, DWORD dwFlags,
+ DWORD dwAllocAttributes, IXACTWaveBank **ppWaveBank)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p)->(%p, %u, 0x%x, 0x%x, %p): stub!\n", This, pvBuffer, dwSize, dwFlags,
+ dwAllocAttributes, ppWaveBank);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_CreateStreamingWaveBank(IXACTEngine *iface,
+ const XACT_WAVEBANK_STREAMING_PARAMETERS *pParms,
+ IXACTWaveBank **ppWaveBank)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p)->(%p, %p): stub!\n", This, pParms, ppWaveBank);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_PrepareInMemoryWave(IXACTEngine *iface,
+ DWORD dwFlags, WAVEBANKENTRY entry, DWORD *pdwSeekTable,
+ BYTE *pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount,
+ IXACTWave **ppWave)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p): stub!\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_PrepareStreamingWave(IXACTEngine *iface,
+ DWORD dwFlags, WAVEBANKENTRY entry,
+ XACT_STREAMING_PARAMETERS streamingParams, DWORD dwAlignment,
+ DWORD *pdwSeekTable, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount,
+ IXACTWave **ppWave)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p): stub!\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_PrepareWave(IXACTEngine *iface,
+ DWORD dwFlags, PCSTR szWavePath, WORD wStreamingPacketSize,
+ DWORD dwAlignment, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount,
+ IXACTWave **ppWave)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p): stub!\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_RegisterNotification(IXACTEngine *iface,
+ const XACT_NOTIFICATION_DESCRIPTION *pNotificationDesc)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p)->(%p): stub!\n", This, pNotificationDesc);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTEngineImpl_UnRegisterNotification(IXACTEngine *iface,
+ const XACT_NOTIFICATION_DESCRIPTION *pNotificationDesc)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+ FIXME("(%p)->(%p): stub!\n", This, pNotificationDesc);
+ return E_NOTIMPL;
+}
+
+static XACTCATEGORY WINAPI IXACTEngineImpl_GetCategory(IXACTEngine *iface,
+ PCSTR szFriendlyName)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%s)\n", This, szFriendlyName);
+
+ return FACTAudioEngine_GetCategory(This->fact_engine, szFriendlyName);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_Stop(IXACTEngine *iface,
+ XACTCATEGORY nCategory, DWORD dwFlags)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%u, 0x%x)\n", This, nCategory, dwFlags);
+
+ return FACTAudioEngine_Stop(This->fact_engine, nCategory, dwFlags);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_SetVolume(IXACTEngine *iface,
+ XACTCATEGORY nCategory, XACTVOLUME nVolume)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%u, %f)\n", This, nCategory, nVolume);
+
+ return FACTAudioEngine_SetVolume(This->fact_engine, nCategory, nVolume);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_Pause(IXACTEngine *iface,
+ XACTCATEGORY nCategory, BOOL fPause)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%u, %u)\n", This, nCategory, fPause);
+
+ return FACTAudioEngine_Pause(This->fact_engine, nCategory, fPause);
+}
+
+static XACTVARIABLEINDEX WINAPI IXACTEngineImpl_GetGlobalVariableIndex(
+ IXACTEngine *iface, PCSTR szFriendlyName)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%s)\n", This, szFriendlyName);
+
+ return FACTAudioEngine_GetGlobalVariableIndex(This->fact_engine,
+ szFriendlyName);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_SetGlobalVariable(IXACTEngine *iface,
+ XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%u, %f)\n", This, nIndex, nValue);
+
+ return FACTAudioEngine_SetGlobalVariable(This->fact_engine, nIndex, nValue);
+}
+
+static HRESULT WINAPI IXACTEngineImpl_GetGlobalVariable(IXACTEngine *iface,
+ XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE *nValue)
+{
+ XACTEngineImpl *This = impl_from_IXACTEngine(iface);
+
+ TRACE("(%p)->(%u, %p)\n", This, nIndex, nValue);
+
+ return FACTAudioEngine_GetGlobalVariable(This->fact_engine, nIndex, nValue);
+}
+
+static const IXACTEngineVtbl XACTEngine_Vtbl =
+{
+ IXACTEngineImpl_QueryInterface,
+ IXACTEngineImpl_AddRef,
+ IXACTEngineImpl_Release,
+ IXACTEngineImpl_GetRendererCount,
+ IXACTEngineImpl_GetRendererDetails,
+ IXACTEngineImpl_GetFinalMixFormat,
+ IXACTEngineImpl_Initialize,
+ IXACTEngineImpl_ShutDown,
+ IXACTEngineImpl_DoWork,
+ IXACTEngineImpl_CreateSoundBank,
+ IXACTEngineImpl_CreateInMemoryWaveBank,
+ IXACTEngineImpl_CreateStreamingWaveBank,
+ IXACTEngineImpl_PrepareWave,
+ IXACTEngineImpl_PrepareInMemoryWave,
+ IXACTEngineImpl_PrepareStreamingWave,
+ IXACTEngineImpl_RegisterNotification,
+ IXACTEngineImpl_UnRegisterNotification,
+ IXACTEngineImpl_GetCategory,
+ IXACTEngineImpl_Stop,
+ IXACTEngineImpl_SetVolume,
+ IXACTEngineImpl_Pause,
+ IXACTEngineImpl_GetGlobalVariableIndex,
+ IXACTEngineImpl_SetGlobalVariable,
+ IXACTEngineImpl_GetGlobalVariable
+};
+
+void* XACT_Internal_Malloc(size_t size)
+{
+ return CoTaskMemAlloc(size);
+}
+
+void XACT_Internal_Free(void* ptr)
+{
+ return CoTaskMemFree(ptr);
+}
+
+void* XACT_Internal_Realloc(void* ptr, size_t size)
+{
+ return CoTaskMemRealloc(ptr, size);
+}
+
+static HRESULT WINAPI XACTCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppobj)
+{
+ if(IsEqualGUID(riid, &IID_IUnknown) ||
+ IsEqualGUID(riid, &IID_IClassFactory))
+ {
+ *ppobj = iface;
+ return S_OK;
+ }
+
+ *ppobj = NULL;
+ WARN("(%p)->(%s, %p): interface not found\n", iface, debugstr_guid(riid), ppobj);
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI XACTCF_AddRef(IClassFactory *iface)
+{
+ return 2;
+}
+
+static ULONG WINAPI XACTCF_Release(IClassFactory *iface)
+{
+ return 1;
+}
+
+static HRESULT WINAPI XACTCF_CreateInstance(IClassFactory *iface, IUnknown *pOuter,
+ REFIID riid, void **ppobj)
+{
+ HRESULT hr;
+ XACTEngineImpl *object;
+
+ TRACE("(%p)->(%p,%s,%p)\n", iface, pOuter, debugstr_guid(riid), ppobj);
+
+ *ppobj = NULL;
+
+ if(pOuter)
+ return CLASS_E_NOAGGREGATION;
+
+ object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
+ if(!object)
+ return E_OUTOFMEMORY;
+
+ object->IXACTEngine_iface.lpVtbl = &XACTEngine_Vtbl;
+
+ FACTCreateEngineWithCustomAllocatorEXT(
+ 0,
+ &object->fact_engine,
+ XACT_Internal_Malloc,
+ XACT_Internal_Free,
+ XACT_Internal_Realloc
+ );
+
+ hr = IXACTEngine_QueryInterface(&object->IXACTEngine_iface, riid, ppobj);
+ if(FAILED(hr)){
+ HeapFree(GetProcessHeap(), 0, object);
+ return hr;
+ }
+
+ return hr;
+}
+
+static HRESULT WINAPI XACTCF_LockServer(IClassFactory *iface, BOOL dolock)
+{
+ TRACE("(%p)->(%d): stub!\n", iface, dolock);
+ return S_OK;
+}
+
+static const IClassFactoryVtbl XACTCF_Vtbl =
+{
+ XACTCF_QueryInterface,
+ XACTCF_AddRef,
+ XACTCF_Release,
+ XACTCF_CreateInstance,
+ XACTCF_LockServer
+};
+
+static IClassFactory XACTFactory = { &XACTCF_Vtbl };
+
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, void *pReserved)
{
TRACE("(%p, %d, %p)\n", hinstDLL, reason, pReserved);
@@ -37,6 +505,11 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, void *pReserved)
case DLL_PROCESS_ATTACH:
instance = hinstDLL;
DisableThreadLibraryCalls( hinstDLL );
+
+#ifdef HAVE_FAUDIOLINKEDVERSION
+ TRACE("Using FAudio version %d\n", FAudioLinkedVersion() );
+#endif
+
break;
}
return TRUE;
@@ -49,6 +522,12 @@ HRESULT WINAPI DllCanUnloadNow(void)
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
{
+ if (IsEqualGUID(rclsid, &CLSID_XACTEngine))
+ {
+ TRACE("(%s, %s, %p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
+ return IClassFactory_QueryInterface(&XACTFactory, riid, ppv);
+ }
+
FIXME("Unknown class %s\n", debugstr_guid(rclsid));
return CLASS_E_CLASSNOTAVAILABLE;
}
--
2.28.0

View File

@ -1,178 +0,0 @@
From 31d429746d85fbfa60cab01f4cb7ad2981e57d7e Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 13:36:05 +0200
Subject: [PATCH 05/23] xactengine2_10: Implement IXACTSoundBank interface.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 139 +++++++++++++++++++++++++++++++-
1 file changed, 136 insertions(+), 3 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 08275a19f5c..98193498e49 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -32,6 +32,112 @@ WINE_DEFAULT_DEBUG_CHANNEL(xact3);
static HINSTANCE instance;
+typedef struct _XACTSoundBankImpl {
+ IXACTSoundBank IXACTSoundBank_iface;
+
+ FACTSoundBank *fact_soundbank;
+} XACTSoundBankImpl;
+
+static inline XACTSoundBankImpl *impl_from_IXACTSoundBank(IXACTSoundBank *iface)
+{
+ return CONTAINING_RECORD(iface, XACTSoundBankImpl, IXACTSoundBank_iface);
+}
+
+static XACTINDEX WINAPI IXACTSoundBankImpl_GetCueIndex(IXACTSoundBank *iface,
+ PCSTR szFriendlyName)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+
+ TRACE("(%p)->(%s)\n", This, szFriendlyName);
+
+ return FACTSoundBank_GetCueIndex(This->fact_soundbank, szFriendlyName);
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_GetNumCues(IXACTSoundBank *iface,
+ XACTINDEX *pnNumCues)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+
+ TRACE("(%p)->(%p)\n", This, pnNumCues);
+
+ return FACTSoundBank_GetNumCues(This->fact_soundbank, pnNumCues);
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_GetCueProperties(IXACTSoundBank *iface,
+ XACTINDEX nCueIndex, XACT_CUE_PROPERTIES *pProperties)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+
+ TRACE("(%p)->(%u, %p)\n", This, nCueIndex, pProperties);
+
+ return FACTSoundBank_GetCueProperties(This->fact_soundbank, nCueIndex,
+ (FACTCueProperties*) pProperties);
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_Prepare(IXACTSoundBank *iface,
+ XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset,
+ IXACTCue** ppCue)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+ FIXME("(%p)->(%u, 0x%x, %u, %p): stub!\n", This, nCueIndex, dwFlags, timeOffset,
+ ppCue);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_Play(IXACTSoundBank *iface,
+ XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset,
+ IXACTCue** ppCue)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+ FIXME("(%p)->(%u, 0x%x, %u, %p): stub!\n", This, nCueIndex, dwFlags, timeOffset,
+ ppCue);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_Stop(IXACTSoundBank *iface,
+ XACTINDEX nCueIndex, DWORD dwFlags)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+
+ TRACE("(%p)->(%u)\n", This, dwFlags);
+
+ return FACTSoundBank_Stop(This->fact_soundbank, nCueIndex, dwFlags);
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_Destroy(IXACTSoundBank *iface)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+ HRESULT hr;
+
+ TRACE("(%p)\n", This);
+
+ hr = FACTSoundBank_Destroy(This->fact_soundbank);
+ HeapFree(GetProcessHeap(), 0, This);
+ return hr;
+}
+
+static HRESULT WINAPI IXACTSoundBankImpl_GetState(IXACTSoundBank *iface,
+ DWORD *pdwState)
+{
+ XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
+
+ TRACE("(%p)->(%p)\n", This, pdwState);
+
+ return FACTSoundBank_GetState(This->fact_soundbank, pdwState);
+}
+
+static const IXACTSoundBankVtbl XACTSoundBank_Vtbl =
+{
+ IXACTSoundBankImpl_GetCueIndex,
+ IXACTSoundBankImpl_GetNumCues,
+ IXACTSoundBankImpl_GetCueProperties,
+ IXACTSoundBankImpl_Prepare,
+ IXACTSoundBankImpl_Play,
+ IXACTSoundBankImpl_Stop,
+ IXACTSoundBankImpl_Destroy,
+ IXACTSoundBankImpl_GetState
+};
+
typedef struct _XACTEngineImpl {
IXACTEngine IXACTEngine_iface;
@@ -184,7 +290,7 @@ static HRESULT WINAPI IXACTEngineImpl_Initialize(IXACTEngine *iface,
params.globalSettingsBufferSize = pParams->globalSettingsBufferSize;
params.globalSettingsFlags = pParams->globalSettingsFlags;
params.globalSettingsAllocAttributes = pParams->globalSettingsAllocAttributes;
- params.pRendererID = pParams->pRendererID;
+ params.pRendererID = (INT16 *) pParams->pRendererID;
params.pXAudio2 = NULL;
params.pMasteringVoice = NULL;
@@ -234,9 +340,36 @@ static HRESULT WINAPI IXACTEngineImpl_CreateSoundBank(IXACTEngine *iface,
DWORD dwAllocAttributes, IXACTSoundBank **ppSoundBank)
{
XACTEngineImpl *This = impl_from_IXACTEngine(iface);
- FIXME("(%p)->(%p, %u, 0x%x, 0x%x, %p): stub!\n", This, pvBuffer, dwSize, dwFlags,
+ XACTSoundBankImpl *sb;
+ FACTSoundBank *fsb;
+ UINT ret;
+
+ TRACE("(%p)->(%p, %u, 0x%x, 0x%x, %p)\n", This, pvBuffer, dwSize, dwFlags,
dwAllocAttributes, ppSoundBank);
- return E_NOTIMPL;
+
+ ret = FACTAudioEngine_CreateSoundBank(This->fact_engine, pvBuffer, dwSize,
+ dwFlags, dwAllocAttributes, &fsb);
+ if(ret != 0)
+ {
+ ERR("Failed to CreateSoundBank: %d\n", ret);
+ return E_FAIL;
+ }
+
+ sb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*sb));
+ if (!sb)
+ {
+ FACTSoundBank_Destroy(fsb);
+ ERR("Failed to allocate XACTSoundBankImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ sb->IXACTSoundBank_iface.lpVtbl = &XACTSoundBank_Vtbl;
+ sb->fact_soundbank = fsb;
+ *ppSoundBank = &sb->IXACTSoundBank_iface;
+
+ TRACE("Created SoundBank: %p\n", sb);
+
+ return S_OK;
}
static HRESULT WINAPI IXACTEngineImpl_CreateInMemoryWaveBank(IXACTEngine *iface,
--
2.28.0

View File

@ -1,233 +0,0 @@
From 3920774c38e83f14cc550de078b7601017099181 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 16:46:31 +0200
Subject: [PATCH 06/23] xactengine2_10: Implement IXACTCue Interface.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 201 +++++++++++++++++++++++++++++++-
1 file changed, 199 insertions(+), 2 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 98193498e49..c425fe091db 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -32,6 +32,176 @@ WINE_DEFAULT_DEBUG_CHANNEL(xact3);
static HINSTANCE instance;
+typedef struct _XACTCueImpl {
+ IXACTCue IXACTCue_iface;
+ FACTCue *fact_cue;
+} XACTCueImpl;
+
+static inline XACTCueImpl *impl_from_IXACTCue(IXACTCue *iface)
+{
+ return CONTAINING_RECORD(iface, XACTCueImpl, IXACTCue_iface);
+}
+
+static HRESULT WINAPI IXACTCueImpl_Play(IXACTCue *iface)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)\n", iface);
+
+ return FACTCue_Play(This->fact_cue);
+}
+
+static HRESULT WINAPI IXACTCueImpl_Stop(IXACTCue *iface, DWORD dwFlags)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%u)\n", iface, dwFlags);
+
+ return FACTCue_Stop(This->fact_cue, dwFlags);
+}
+
+static HRESULT WINAPI IXACTCueImpl_GetState(IXACTCue *iface, DWORD *pdwState)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%p)\n", iface, pdwState);
+
+ return FACTCue_GetState(This->fact_cue, pdwState);
+}
+
+static HRESULT WINAPI IXACTCueImpl_Destroy(IXACTCue *iface)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+ UINT ret;
+
+ TRACE("(%p)\n", iface);
+
+ ret = FACTCue_Destroy(This->fact_cue);
+ if (ret != 0)
+ WARN("FACTCue_Destroy returned %d\n", ret);
+ HeapFree(GetProcessHeap(), 0, This);
+ return S_OK;
+}
+
+static HRESULT WINAPI IXACTCueImpl_GetChannelMap(IXACTCue *iface,
+ LPXACTCHANNELMAP pChannelMap, DWORD BufferSize, LPDWORD pRequiredSize)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+ FIXME("(%p)->(%p %d %p): stub!\n", This, pChannelMap, BufferSize, pRequiredSize);
+ return S_OK;
+}
+
+static HRESULT WINAPI IXACTCueImpl_SetChannelMap(IXACTCue *iface,
+ LPXACTCHANNELMAP pChannelMap)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+ FIXME("(%p)->(%p): stub!\n", This, pChannelMap);
+ return S_OK;
+}
+
+static HRESULT WINAPI IXACTCueImpl_GetChannelVolume(IXACTCue *iface,
+ LPXACTCHANNELVOLUME pVolume)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+ FIXME("(%p)->(%p): stub!\n", This, pVolume);
+ return S_OK;
+}
+
+static HRESULT WINAPI IXACTCueImpl_SetChannelVolume(IXACTCue *iface,
+ LPXACTCHANNELVOLUME pVolume)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+ FIXME("(%p)->(%p): stub!\n", This, pVolume);
+ return S_OK;
+}
+
+static HRESULT WINAPI IXACTCueImpl_SetMatrixCoefficients(IXACTCue *iface,
+ UINT32 uSrcChannelCount, UINT32 uDstChannelCount,
+ float *pMatrixCoefficients)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%u, %u, %p)\n", iface, uSrcChannelCount, uDstChannelCount,
+ pMatrixCoefficients);
+
+ return FACTCue_SetMatrixCoefficients(This->fact_cue, uSrcChannelCount,
+ uDstChannelCount, pMatrixCoefficients);
+}
+
+static XACTVARIABLEINDEX WINAPI IXACTCueImpl_GetVariableIndex(IXACTCue *iface,
+ PCSTR szFriendlyName)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%s)\n", iface, szFriendlyName);
+
+ return FACTCue_GetVariableIndex(This->fact_cue, szFriendlyName);
+}
+
+static HRESULT WINAPI IXACTCueImpl_SetVariable(IXACTCue *iface,
+ XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%u, %f)\n", iface, nIndex, nValue);
+
+ return FACTCue_SetVariable(This->fact_cue, nIndex, nValue);
+}
+
+static HRESULT WINAPI IXACTCueImpl_GetVariable(IXACTCue *iface,
+ XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE *nValue)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%u, %p)\n", iface, nIndex, nValue);
+
+ return FACTCue_GetVariable(This->fact_cue, nIndex, nValue);
+}
+
+static HRESULT WINAPI IXACTCueImpl_Pause(IXACTCue *iface, BOOL fPause)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+
+ TRACE("(%p)->(%u)\n", iface, fPause);
+
+ return FACTCue_Pause(This->fact_cue, fPause);
+}
+
+static HRESULT WINAPI IXACTCueImpl_GetProperties(IXACTCue *iface,
+ XACT_CUE_INSTANCE_PROPERTIES **ppProperties)
+{
+ XACTCueImpl *This = impl_from_IXACTCue(iface);
+ FACTCueInstanceProperties *fProps;
+ HRESULT hr;
+
+ TRACE("(%p)->(%p)\n", iface, ppProperties);
+
+ hr = FACTCue_GetProperties(This->fact_cue, &fProps);
+ if(FAILED(hr))
+ return hr;
+
+ *ppProperties = (XACT_CUE_INSTANCE_PROPERTIES*) fProps;
+ return hr;
+}
+
+static const IXACTCueVtbl XACTCue_Vtbl =
+{
+ IXACTCueImpl_Play,
+ IXACTCueImpl_Stop,
+ IXACTCueImpl_GetState,
+ IXACTCueImpl_Destroy,
+ IXACTCueImpl_GetChannelMap,
+ IXACTCueImpl_SetChannelMap,
+ IXACTCueImpl_GetChannelVolume,
+ IXACTCueImpl_SetChannelVolume,
+ IXACTCueImpl_SetMatrixCoefficients,
+ IXACTCueImpl_GetVariableIndex,
+ IXACTCueImpl_SetVariable,
+ IXACTCueImpl_GetVariable,
+ IXACTCueImpl_Pause,
+ IXACTCueImpl_GetProperties
+};
+
typedef struct _XACTSoundBankImpl {
IXACTSoundBank IXACTSoundBank_iface;
@@ -79,9 +249,36 @@ static HRESULT WINAPI IXACTSoundBankImpl_Prepare(IXACTSoundBank *iface,
IXACTCue** ppCue)
{
XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
- FIXME("(%p)->(%u, 0x%x, %u, %p): stub!\n", This, nCueIndex, dwFlags, timeOffset,
+ XACTCueImpl *cue;
+ FACTCue *fcue;
+ UINT ret;
+
+ TRACE("(%p)->(%u, 0x%x, %u, %p)\n", This, nCueIndex, dwFlags, timeOffset,
ppCue);
- return E_NOTIMPL;
+
+ ret = FACTSoundBank_Prepare(This->fact_soundbank, nCueIndex, dwFlags,
+ timeOffset, &fcue);
+ if(ret != 0)
+ {
+ ERR("Failed to CreateCue: %d\n", ret);
+ return E_FAIL;
+ }
+
+ cue = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*cue));
+ if (!cue)
+ {
+ FACTCue_Destroy(fcue);
+ ERR("Failed to allocate XACTCueImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ cue->IXACTCue_iface.lpVtbl = &XACTCue_Vtbl;
+ cue->fact_cue = fcue;
+ *ppCue = &cue->IXACTCue_iface;
+
+ TRACE("Created Cue: %p\n", cue);
+
+ return S_OK;
}
static HRESULT WINAPI IXACTSoundBankImpl_Play(IXACTSoundBank *iface,
--
2.28.0

View File

@ -1,169 +0,0 @@
From 5bdc9c6d0eb143392490fcbebc7f25e70e7a7a26 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 17:05:56 +0200
Subject: [PATCH 07/23] xactengine2_10: Implement IXACTWaveBank interface.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 137 +++++++++++++++++++++++++++++++-
1 file changed, 135 insertions(+), 2 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index c425fe091db..426e37083d1 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -335,6 +335,112 @@ static const IXACTSoundBankVtbl XACTSoundBank_Vtbl =
IXACTSoundBankImpl_GetState
};
+typedef struct _XACTWaveBankImpl {
+ IXACTWaveBank IXACTWaveBank_iface;
+
+ FACTWaveBank *fact_wavebank;
+} XACTWaveBankImpl;
+
+static inline XACTWaveBankImpl *impl_from_IXACTWaveBank(IXACTWaveBank *iface)
+{
+ return CONTAINING_RECORD(iface, XACTWaveBankImpl, IXACTWaveBank_iface);
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_Destroy(IXACTWaveBank *iface)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+ HRESULT hr;
+
+ TRACE("(%p)\n", This);
+
+ hr = FACTWaveBank_Destroy(This->fact_wavebank);
+ HeapFree(GetProcessHeap(), 0, This);
+ return hr;
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_GetNumWaves(IXACTWaveBank *iface,
+ XACTINDEX *pnNumWaves)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+
+ TRACE("(%p)->(%p)\n", This, pnNumWaves);
+
+ return FACTWaveBank_GetNumWaves(This->fact_wavebank, pnNumWaves);
+}
+
+static XACTINDEX WINAPI IXACTWaveBankImpl_GetWaveIndex(IXACTWaveBank *iface,
+ PCSTR szFriendlyName)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+
+ TRACE("(%p)->(%s)\n", This, szFriendlyName);
+
+ return FACTWaveBank_GetWaveIndex(This->fact_wavebank, szFriendlyName);
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_GetWaveProperties(IXACTWaveBank *iface,
+ XACTINDEX nWaveIndex, XACT_WAVE_PROPERTIES *pWaveProperties)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+
+ TRACE("(%p)->(%u, %p)\n", This, nWaveIndex, pWaveProperties);
+
+ return FACTWaveBank_GetWaveProperties(This->fact_wavebank, nWaveIndex,
+ (FACTWaveProperties*) pWaveProperties);
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_Prepare(IXACTWaveBank *iface,
+ XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount, IXACTWave** ppWave)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+ FIXME("(%p)->(0x%x, %u, 0x%x, %u, %p): stub!\n", This, nWaveIndex, dwFlags,
+ dwPlayOffset, nLoopCount, ppWave);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_Play(IXACTWaveBank *iface,
+ XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount, IXACTWave** ppWave)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+ FIXME("(%p)->(0x%x, %u, 0x%x, %u, %p): stub!\n", This, nWaveIndex, dwFlags, dwPlayOffset,
+ nLoopCount, ppWave);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_Stop(IXACTWaveBank *iface,
+ XACTINDEX nWaveIndex, DWORD dwFlags)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+
+ TRACE("(%p)->(%u, %u)\n", This, nWaveIndex, dwFlags);
+
+ return FACTWaveBank_Stop(This->fact_wavebank, nWaveIndex, dwFlags);
+}
+
+static HRESULT WINAPI IXACTWaveBankImpl_GetState(IXACTWaveBank *iface,
+ DWORD *pdwState)
+{
+ XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
+
+ TRACE("(%p)->(%p)\n", This, pdwState);
+
+ return FACTWaveBank_GetState(This->fact_wavebank, pdwState);
+}
+
+static const IXACTWaveBankVtbl XACTWaveBank_Vtbl =
+{
+ IXACTWaveBankImpl_Destroy,
+ IXACTWaveBankImpl_GetNumWaves,
+ IXACTWaveBankImpl_GetWaveIndex,
+ IXACTWaveBankImpl_GetWaveProperties,
+ IXACTWaveBankImpl_Prepare,
+ IXACTWaveBankImpl_Play,
+ IXACTWaveBankImpl_Stop,
+ IXACTWaveBankImpl_GetState
+};
+
typedef struct _XACTEngineImpl {
IXACTEngine IXACTEngine_iface;
@@ -574,9 +680,36 @@ static HRESULT WINAPI IXACTEngineImpl_CreateInMemoryWaveBank(IXACTEngine *iface,
DWORD dwAllocAttributes, IXACTWaveBank **ppWaveBank)
{
XACTEngineImpl *This = impl_from_IXACTEngine(iface);
- FIXME("(%p)->(%p, %u, 0x%x, 0x%x, %p): stub!\n", This, pvBuffer, dwSize, dwFlags,
+ XACTWaveBankImpl *wb;
+ FACTWaveBank *fwb;
+ UINT ret;
+
+ TRACE("(%p)->(%p, %u, 0x%x, 0x%x, %p)!\n", This, pvBuffer, dwSize, dwFlags,
dwAllocAttributes, ppWaveBank);
- return E_NOTIMPL;
+
+ ret = FACTAudioEngine_CreateInMemoryWaveBank(This->fact_engine, pvBuffer,
+ dwSize, dwFlags, dwAllocAttributes, &fwb);
+ if(ret != 0)
+ {
+ ERR("Failed to CreateWaveBank: %d\n", ret);
+ return E_FAIL;
+ }
+
+ wb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*wb));
+ if (!wb)
+ {
+ FACTWaveBank_Destroy(fwb);
+ ERR("Failed to allocate XACTWaveBankImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ wb->IXACTWaveBank_iface.lpVtbl = &XACTWaveBank_Vtbl;
+ wb->fact_wavebank = fwb;
+ *ppWaveBank = &wb->IXACTWaveBank_iface;
+
+ TRACE("Created in-memory WaveBank: %p\n", wb);
+
+ return S_OK;
}
static HRESULT WINAPI IXACTEngineImpl_CreateStreamingWaveBank(IXACTEngine *iface,
--
2.28.0

View File

@ -1,68 +0,0 @@
From 9a5dea2f6d073fa9edb1075e1437451cbb28e099 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 17:10:06 +0200
Subject: [PATCH 08/23] xactengine2_10: Implement
IXACTEngine::CreateStreamingWaveBank.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 43 +++++++++++++++++++++++++++++++--
1 file changed, 41 insertions(+), 2 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 426e37083d1..ec7a97dd5f8 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -717,8 +717,47 @@ static HRESULT WINAPI IXACTEngineImpl_CreateStreamingWaveBank(IXACTEngine *iface
IXACTWaveBank **ppWaveBank)
{
XACTEngineImpl *This = impl_from_IXACTEngine(iface);
- FIXME("(%p)->(%p, %p): stub!\n", This, pParms, ppWaveBank);
- return E_NOTIMPL;
+ FACTStreamingParameters fakeParms;
+ wrap_readfile_struct *fake;
+ XACTWaveBankImpl *wb;
+ FACTWaveBank *fwb;
+ UINT ret;
+
+ TRACE("(%p)->(%p, %p)\n", This, pParms, ppWaveBank);
+
+ /* We have to wrap the file to fix up the callbacks! */
+ fake = (wrap_readfile_struct*) CoTaskMemAlloc(
+ sizeof(wrap_readfile_struct));
+ fake->engine = This;
+ fake->file = pParms->file;
+ fakeParms.file = fake;
+ fakeParms.flags = pParms->flags;
+ fakeParms.offset = pParms->offset;
+ fakeParms.packetSize = pParms->packetSize;
+
+ ret = FACTAudioEngine_CreateStreamingWaveBank(This->fact_engine, &fakeParms,
+ &fwb);
+ if(ret != 0)
+ {
+ ERR("Failed to CreateWaveBank: %d\n", ret);
+ return E_FAIL;
+ }
+
+ wb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*wb));
+ if (!wb)
+ {
+ FACTWaveBank_Destroy(fwb);
+ ERR("Failed to allocate XACT3WaveBankImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ wb->IXACTWaveBank_iface.lpVtbl = &XACTWaveBank_Vtbl;
+ wb->fact_wavebank = fwb;
+ *ppWaveBank = &wb->IXACTWaveBank_iface;
+
+ TRACE("Created streaming WaveBank: %p\n", wb);
+
+ return S_OK;
}
static HRESULT WINAPI IXACTEngineImpl_PrepareInMemoryWave(IXACTEngine *iface,
--
2.28.0

View File

@ -1,186 +0,0 @@
From 920705457c0ab3e3e4bbe08193b5fef3dfaf92ab Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 17:20:37 +0200
Subject: [PATCH 09/23] xactengine2_10: Implement IXACTWave interface.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 147 +++++++++++++++++++++++++++++++-
1 file changed, 144 insertions(+), 3 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index ec7a97dd5f8..793cfc62afb 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -335,6 +335,120 @@ static const IXACTSoundBankVtbl XACTSoundBank_Vtbl =
IXACTSoundBankImpl_GetState
};
+typedef struct _XACTWaveImpl {
+ IXACTWave IXACTWave_iface;
+
+ FACTWave *fact_wave;
+} XACTWaveImpl;
+
+static inline XACTWaveImpl *impl_from_IXACTWave(IXACTWave *iface)
+{
+ return CONTAINING_RECORD(iface, XACTWaveImpl, IXACTWave_iface);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_Destroy(IXACTWave *iface)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+ HRESULT hr;
+
+ TRACE("(%p)\n", This);
+
+ hr = FACTWave_Destroy(This->fact_wave);
+ HeapFree(GetProcessHeap(), 0, This);
+ return hr;
+}
+
+static HRESULT WINAPI IXACTWaveImpl_Play(IXACTWave *iface)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)\n", This);
+
+ return FACTWave_Play(This->fact_wave);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_Stop(IXACTWave *iface, DWORD dwFlags)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(0x%x)\n", This, dwFlags);
+
+ return FACTWave_Stop(This->fact_wave, dwFlags);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_Pause(IXACTWave *iface, BOOL fPause)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(%u)\n", This, fPause);
+
+ return FACTWave_Pause(This->fact_wave, fPause);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_GetState(IXACTWave *iface, DWORD *pdwState)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(%p)\n", This, pdwState);
+
+ return FACTWave_GetState(This->fact_wave, pdwState);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_SetPitch(IXACTWave *iface, XACTPITCH pitch)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(%d)\n", This, pitch);
+
+ return FACTWave_SetPitch(This->fact_wave, pitch);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_SetVolume(IXACTWave *iface, XACTVOLUME volume)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(%f)\n", This, volume);
+
+ return FACTWave_SetVolume(This->fact_wave, volume);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_SetMatrixCoefficients(IXACTWave *iface,
+ UINT32 uSrcChannelCount, UINT32 uDstChannelCount,
+ float *pMatrixCoefficients)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(%u, %u, %p)\n", This, uSrcChannelCount, uDstChannelCount,
+ pMatrixCoefficients);
+
+ return FACTWave_SetMatrixCoefficients(This->fact_wave, uSrcChannelCount,
+ uDstChannelCount, pMatrixCoefficients);
+}
+
+static HRESULT WINAPI IXACTWaveImpl_GetProperties(IXACTWave *iface,
+ XACT_WAVE_INSTANCE_PROPERTIES *pProperties)
+{
+ XACTWaveImpl *This = impl_from_IXACTWave(iface);
+
+ TRACE("(%p)->(%p)\n", This, pProperties);
+
+ return FACTWave_GetProperties(This->fact_wave,
+ (FACTWaveInstanceProperties*) pProperties);
+}
+
+static const IXACTWaveVtbl XACTWave_Vtbl =
+{
+ IXACTWaveImpl_Destroy,
+ IXACTWaveImpl_Play,
+ IXACTWaveImpl_Stop,
+ IXACTWaveImpl_Pause,
+ IXACTWaveImpl_GetState,
+ IXACTWaveImpl_SetPitch,
+ IXACTWaveImpl_SetVolume,
+ IXACTWaveImpl_SetMatrixCoefficients,
+ IXACTWaveImpl_GetProperties
+};
+
typedef struct _XACTWaveBankImpl {
IXACTWaveBank IXACTWaveBank_iface;
@@ -394,9 +508,36 @@ static HRESULT WINAPI IXACTWaveBankImpl_Prepare(IXACTWaveBank *iface,
XACTLOOPCOUNT nLoopCount, IXACTWave** ppWave)
{
XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
- FIXME("(%p)->(0x%x, %u, 0x%x, %u, %p): stub!\n", This, nWaveIndex, dwFlags,
+ XACTWaveImpl *wave;
+ FACTWave *fwave;
+ UINT ret;
+
+ TRACE("(%p)->(0x%x, %u, 0x%x, %u, %p)\n", This, nWaveIndex, dwFlags,
dwPlayOffset, nLoopCount, ppWave);
- return E_NOTIMPL;
+
+ ret = FACTWaveBank_Prepare(This->fact_wavebank, nWaveIndex, dwFlags,
+ dwPlayOffset, nLoopCount, &fwave);
+ if(ret != 0)
+ {
+ ERR("Failed to CreateWave: %d\n", ret);
+ return E_FAIL;
+ }
+
+ wave = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*wave));
+ if (!wave)
+ {
+ FACTWave_Destroy(fwave);
+ ERR("Failed to allocate XACTWaveImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ wave->IXACTWave_iface.lpVtbl = &XACTWave_Vtbl;
+ wave->fact_wave = fwave;
+ *ppWave = &wave->IXACTWave_iface;
+
+ TRACE("Created Wave: %p\n", wave);
+
+ return S_OK;
}
static HRESULT WINAPI IXACTWaveBankImpl_Play(IXACTWaveBank *iface,
@@ -747,7 +888,7 @@ static HRESULT WINAPI IXACTEngineImpl_CreateStreamingWaveBank(IXACTEngine *iface
if (!wb)
{
FACTWaveBank_Destroy(fwb);
- ERR("Failed to allocate XACT3WaveBankImpl!");
+ ERR("Failed to allocate XACTWaveBankImpl!");
return E_OUTOFMEMORY;
}
--
2.28.0

View File

@ -1,65 +0,0 @@
From 4b7491ba661e9e787926feebf461412bf31f3aa4 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 17:28:01 +0200
Subject: [PATCH 10/23] xactengine2_10: Implement IXACTSoundBank::Play
function.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 39 +++++++++++++++++++++++++++++++--
1 file changed, 37 insertions(+), 2 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 793cfc62afb..7bb8134fd81 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -286,9 +286,44 @@ static HRESULT WINAPI IXACTSoundBankImpl_Play(IXACTSoundBank *iface,
IXACTCue** ppCue)
{
XACTSoundBankImpl *This = impl_from_IXACTSoundBank(iface);
- FIXME("(%p)->(%u, 0x%x, %u, %p): stub!\n", This, nCueIndex, dwFlags, timeOffset,
+ XACTCueImpl *cue;
+ FACTCue *fcue;
+ UINT ret;
+
+ TRACE("(%p)->(%u, 0x%x, %u, %p)\n", This, nCueIndex, dwFlags, timeOffset,
ppCue);
- return E_NOTIMPL;
+
+ /* If the application doesn't want a handle, don't generate one at all.
+ * Let the engine handle that memory instead.
+ * -flibit
+ */
+ if (ppCue == NULL){
+ ret = FACTSoundBank_Play(This->fact_soundbank, nCueIndex, dwFlags,
+ timeOffset, NULL);
+ }else{
+ ret = FACTSoundBank_Play(This->fact_soundbank, nCueIndex, dwFlags,
+ timeOffset, &fcue);
+ if(ret != 0)
+ goto done;
+
+ cue = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*cue));
+ if (!cue)
+ {
+ FACTCue_Destroy(fcue);
+ ERR("Failed to allocate XACTCueImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ cue->IXACTCue_iface.lpVtbl = &XACTCue_Vtbl;
+ cue->fact_cue = fcue;
+ *ppCue = &cue->IXACTCue_iface;
+ }
+
+done:
+ if(ret != 0)
+ WARN("FACTSoundBank_Play returned %d\n", ret);
+
+ return !ret ? S_OK : E_FAIL;
}
static HRESULT WINAPI IXACTSoundBankImpl_Stop(IXACTSoundBank *iface,
--
2.28.0

View File

@ -1,60 +0,0 @@
From 5df655b72d55c2c4071fd7b84d2705f922bcc1a8 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 17:31:59 +0200
Subject: [PATCH 11/23] xactengine2_10: Implement IXACTWaveBank::Play function.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 35 +++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 7bb8134fd81..2e06341b5e9 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -580,9 +580,40 @@ static HRESULT WINAPI IXACTWaveBankImpl_Play(IXACTWaveBank *iface,
XACTLOOPCOUNT nLoopCount, IXACTWave** ppWave)
{
XACTWaveBankImpl *This = impl_from_IXACTWaveBank(iface);
- FIXME("(%p)->(0x%x, %u, 0x%x, %u, %p): stub!\n", This, nWaveIndex, dwFlags, dwPlayOffset,
+ XACTWaveImpl *wave;
+ FACTWave *fwave;
+ HRESULT hr;
+
+ TRACE("(%p)->(0x%x, %u, 0x%x, %u, %p)!\n", This, nWaveIndex, dwFlags, dwPlayOffset,
nLoopCount, ppWave);
- return E_NOTIMPL;
+
+ /* If the application doesn't want a handle, don't generate one at all.
+ * Let the engine handle that memory instead.
+ * -flibit
+ */
+ if (ppWave == NULL){
+ hr = FACTWaveBank_Play(This->fact_wavebank, nWaveIndex, dwFlags,
+ dwPlayOffset, nLoopCount, NULL);
+ }else{
+ hr = FACTWaveBank_Play(This->fact_wavebank, nWaveIndex, dwFlags,
+ dwPlayOffset, nLoopCount, &fwave);
+ if(FAILED(hr))
+ return hr;
+
+ wave = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*wave));
+ if (!wave)
+ {
+ FACTWave_Destroy(fwave);
+ ERR("Failed to allocate XACT3WaveImpl!");
+ return E_OUTOFMEMORY;
+ }
+
+ wave->IXACTWave_iface.lpVtbl = &XACTWave_Vtbl;
+ wave->fact_wave = fwave;
+ *ppWave = &wave->IXACTWave_iface;
+ }
+
+ return hr;
}
static HRESULT WINAPI IXACTWaveBankImpl_Stop(IXACTWaveBank *iface,
--
2.28.0

View File

@ -1,149 +0,0 @@
From 7b7912c5dbd542e87ffc2bc78c0388ef8ad6a219 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 17:39:44 +0200
Subject: [PATCH 12/23] xactengine2_10: Implement
IXACTEngine::(Un)RegisterNotification function(s).
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
dlls/xactengine2_10/xact2_dll.c | 107 ++++++++++++++++++++++++++++++--
1 file changed, 102 insertions(+), 5 deletions(-)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index 2e06341b5e9..aada1cf53e9 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -604,7 +604,7 @@ static HRESULT WINAPI IXACTWaveBankImpl_Play(IXACTWaveBank *iface,
if (!wave)
{
FACTWave_Destroy(fwave);
- ERR("Failed to allocate XACT3WaveImpl!");
+ ERR("Failed to allocate XACTWaveImpl!");
return E_OUTOFMEMORY;
}
@@ -998,20 +998,117 @@ static HRESULT WINAPI IXACTEngineImpl_PrepareWave(IXACTEngine *iface,
return E_NOTIMPL;
}
+enum {
+ NOTIFY_SoundBank = 0x01,
+ NOTIFY_WaveBank = 0x02,
+ NOTIFY_Cue = 0x04,
+ NOTIFY_Wave = 0x08,
+ NOTIFY_cueIndex = 0x10,
+ NOTIFY_waveIndex = 0x20
+};
+
+static inline void unwrap_notificationdesc(FACTNotificationDescription *fd,
+ const XACT_NOTIFICATION_DESCRIPTION *xd)
+{
+ DWORD flags = 0;
+
+ TRACE("Type %d\n", xd->type);
+
+ memset(fd, 0, sizeof(*fd));
+
+ /* Supports SoundBank, Cue index, Cue instance */
+ if (xd->type == XACTNOTIFICATIONTYPE_CUEPREPARED || xd->type == XACTNOTIFICATIONTYPE_CUEPLAY ||
+ xd->type == XACTNOTIFICATIONTYPE_CUESTOP || xd->type == XACTNOTIFICATIONTYPE_CUEDESTROYED ||
+ xd->type == XACTNOTIFICATIONTYPE_MARKER || xd->type == XACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED)
+ {
+ flags = NOTIFY_SoundBank | NOTIFY_cueIndex | NOTIFY_Cue;
+ }
+ /* Supports WaveBank */
+ else if (xd->type == XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED || xd->type == XACTNOTIFICATIONTYPE_WAVEBANKPREPARED ||
+ xd->type == XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT)
+ {
+ flags = NOTIFY_WaveBank;
+ }
+ /* Supports NOTIFY_SoundBank */
+ else if (xd->type == XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED)
+ {
+ flags = NOTIFY_SoundBank;
+ }
+ /* Supports WaveBank, Wave index, Wave instance */
+ else if (xd->type == XACTNOTIFICATIONTYPE_WAVEPREPARED || xd->type == XACTNOTIFICATIONTYPE_WAVEDESTROYED)
+ {
+ flags = NOTIFY_WaveBank | NOTIFY_waveIndex | NOTIFY_Wave;
+ }
+ /* Supports SoundBank, SoundBank, Cue index, Cue instance, WaveBank, Wave instance */
+ else if (xd->type == XACTNOTIFICATIONTYPE_WAVEPLAY || xd->type == XACTNOTIFICATIONTYPE_WAVESTOP ||
+ xd->type == XACTNOTIFICATIONTYPE_WAVELOOPED)
+ {
+ flags = NOTIFY_SoundBank | NOTIFY_cueIndex | NOTIFY_Cue | NOTIFY_WaveBank | NOTIFY_Wave;
+ }
+
+ /* We have to unwrap the FACT object first! */
+ fd->type = xd->type;
+ fd->flags = xd->flags;
+ fd->pvContext = xd->pvContext;
+ if (flags & NOTIFY_cueIndex)
+ fd->cueIndex = xd->cueIndex;
+ if (flags & NOTIFY_waveIndex)
+ fd->waveIndex = xd->waveIndex;
+
+ if (flags & NOTIFY_Cue && xd->pCue != NULL)
+ {
+ XACTCueImpl *cue = impl_from_IXACTCue(xd->pCue);
+ if (cue)
+ fd->pCue = cue->fact_cue;
+ }
+
+ if (flags & NOTIFY_SoundBank && xd->pSoundBank != NULL)
+ {
+ XACTSoundBankImpl *sound = impl_from_IXACTSoundBank(xd->pSoundBank);
+ if (sound)
+ fd->pSoundBank = sound->fact_soundbank;
+ }
+
+ if (flags & NOTIFY_WaveBank && xd->pWaveBank != NULL)
+ {
+ XACTWaveBankImpl *bank = impl_from_IXACTWaveBank(xd->pWaveBank);
+ if (bank)
+ fd->pWaveBank = bank->fact_wavebank;
+ }
+
+ if (flags & NOTIFY_Wave && xd->pWave != NULL)
+ {
+ XACTWaveImpl *wave = impl_from_IXACTWave(xd->pWave);
+ if (wave)
+ fd->pWave = wave->fact_wave;
+ }
+}
+
static HRESULT WINAPI IXACTEngineImpl_RegisterNotification(IXACTEngine *iface,
const XACT_NOTIFICATION_DESCRIPTION *pNotificationDesc)
{
XACTEngineImpl *This = impl_from_IXACTEngine(iface);
- FIXME("(%p)->(%p): stub!\n", This, pNotificationDesc);
- return E_NOTIMPL;
+ FACTNotificationDescription fdesc;
+
+ TRACE("(%p)->(%p)\n", This, pNotificationDesc);
+
+ unwrap_notificationdesc(&fdesc, pNotificationDesc);
+ fdesc.pvContext = This;
+ return FACTAudioEngine_RegisterNotification(This->fact_engine, &fdesc);
}
static HRESULT WINAPI IXACTEngineImpl_UnRegisterNotification(IXACTEngine *iface,
const XACT_NOTIFICATION_DESCRIPTION *pNotificationDesc)
{
XACTEngineImpl *This = impl_from_IXACTEngine(iface);
- FIXME("(%p)->(%p): stub!\n", This, pNotificationDesc);
- return E_NOTIMPL;
+ FACTNotificationDescription fdesc;
+
+ TRACE("(%p)->(%p)\n", This, pNotificationDesc);
+
+ unwrap_notificationdesc(&fdesc, pNotificationDesc);
+ fdesc.pvContext = This;
+ return FACTAudioEngine_UnRegisterNotification(This->fact_engine, &fdesc);
+
}
static XACTCATEGORY WINAPI IXACTEngineImpl_GetCategory(IXACTEngine *iface,
--
2.28.0

View File

@ -1,80 +0,0 @@
From 71d01ed40a2165b55f1df91971ed9a929fbad1c7 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 18:00:15 +0200
Subject: [PATCH 13/23] xactengine2_9: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 ++++
dlls/xactengine2_9/Makefile.in | 11 +++++++++++
dlls/xactengine2_9/xactengine2_9.spec | 4 ++++
4 files changed, 21 insertions(+)
create mode 100644 dlls/xactengine2_9/Makefile.in
create mode 100644 dlls/xactengine2_9/xactengine2_9.spec
diff --git a/configure.ac b/configure.ac
index bcbeb230ed2..348a1ea38c0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_9=${enable_xactengine2_9:-no}
enable_xactengine3_0=${enable_xactengine3_0:-no}
enable_xactengine3_1=${enable_xactengine3_1:-no}
enable_xactengine3_2=${enable_xactengine3_2:-no}
@@ -3985,6 +3986,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_9)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_0)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_1)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_2)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 1a248327bb7..83926c92a0e 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,6 +22,10 @@
[
threading(both),
+#if XACT3_VER == 0x0209
+ uuid(343e68e6-8f82-4a8d-a2da-6e9a944b378c)
+#else /* XACT3_VER == 0x0209 or not defined */
uuid(65d822a4-4799-42c6-9b18-d26cf66dd320)
+#endif
]
coclass XACTEngine {}
diff --git a/dlls/xactengine2_9/Makefile.in b/dlls/xactengine2_9/Makefile.in
new file mode 100644
index 00000000000..c2351aa4f4c
--- /dev/null
+++ b/dlls/xactengine2_9/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_9.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0209
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_9/xactengine2_9.spec b/dlls/xactengine2_9/xactengine2_9.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_9/xactengine2_9.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From e0238ca892f10da17ef6ac6b02bcc3bddc29fd9d Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 18:10:31 +0200
Subject: [PATCH 14/23] xactengine2_8: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_8/Makefile.in | 11 +++++++++++
dlls/xactengine2_8/xactengine2_8.spec | 4 ++++
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_8/Makefile.in
create mode 100644 dlls/xactengine2_8/xactengine2_8.spec
diff --git a/configure.ac b/configure.ac
index 348a1ea38c0..5a99a6edf23 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_8=${enable_xactengine2_8:-no}
enable_xactengine2_9=${enable_xactengine2_9:-no}
enable_xactengine3_0=${enable_xactengine3_0:-no}
enable_xactengine3_1=${enable_xactengine3_1:-no}
@@ -3986,6 +3987,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_8)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_9)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_0)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_1)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 83926c92a0e..6a228c82db6 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0209
+#if XACT3_VER == 0x0208
+ uuid(77c56bf4-18a1-42b0-88af-5072ce814949)
+#elif XACT3_VER == 0x0209
uuid(343e68e6-8f82-4a8d-a2da-6e9a944b378c)
#else /* XACT3_VER == 0x0209 or not defined */
uuid(65d822a4-4799-42c6-9b18-d26cf66dd320)
diff --git a/dlls/xactengine2_8/Makefile.in b/dlls/xactengine2_8/Makefile.in
new file mode 100644
index 00000000000..b88b39ce1ea
--- /dev/null
+++ b/dlls/xactengine2_8/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_8.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0208
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_8/xactengine2_8.spec b/dlls/xactengine2_8/xactengine2_8.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_8/xactengine2_8.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From 413a72c90f723cf6481ca2913ad3be1dea4c71ce Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 18:47:07 +0200
Subject: [PATCH 15/23] xactengine2_7: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_7/Makefile.in | 11 +++++++++++
dlls/xactengine2_7/xactengine2_7.spec | 4 ++++
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_7/Makefile.in
create mode 100644 dlls/xactengine2_7/xactengine2_7.spec
diff --git a/configure.ac b/configure.ac
index 5a99a6edf23..947fbb172cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_7=${enable_xactengine2_7:-no}
enable_xactengine2_8=${enable_xactengine2_8:-no}
enable_xactengine2_9=${enable_xactengine2_9:-no}
enable_xactengine3_0=${enable_xactengine3_0:-no}
@@ -3987,6 +3988,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_8)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_9)
WINE_CONFIG_MAKEFILE(dlls/xactengine3_0)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 6a228c82db6..8cb332d109a 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0208
+#if XACT3_VER == 0x0207
+ uuid(cd0d66ec-8057-43f5-acbd-66dfb36fd78c)
+#elif XACT3_VER == 0x0208
uuid(77c56bf4-18a1-42b0-88af-5072ce814949)
#elif XACT3_VER == 0x0209
uuid(343e68e6-8f82-4a8d-a2da-6e9a944b378c)
diff --git a/dlls/xactengine2_7/Makefile.in b/dlls/xactengine2_7/Makefile.in
new file mode 100644
index 00000000000..d2253a49590
--- /dev/null
+++ b/dlls/xactengine2_7/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_7.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0207
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_7/xactengine2_7.spec b/dlls/xactengine2_7/xactengine2_7.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_7/xactengine2_7.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From af5093be0c67e98e0ef7ca3ddd91d75c4bda4d15 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 18:52:57 +0200
Subject: [PATCH 16/23] xactengine2_6: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_6/Makefile.in | 11 +++++++++++
dlls/xactengine2_6/xactengine2_6.spec | 4 ++++
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_6/Makefile.in
create mode 100644 dlls/xactengine2_6/xactengine2_6.spec
diff --git a/configure.ac b/configure.ac
index 947fbb172cd..dd31238b745 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_6=${enable_xactengine2_6:-no}
enable_xactengine2_7=${enable_xactengine2_7:-no}
enable_xactengine2_8=${enable_xactengine2_8:-no}
enable_xactengine2_9=${enable_xactengine2_9:-no}
@@ -3988,6 +3989,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_6)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_8)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_9)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 8cb332d109a..a9208c0139c 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0207
+#if XACT3_VER == 0x0206
+ uuid(3a2495ce-31d0-435b-8ccf-e9f0843fd960)
+#elif XACT3_VER == 0x0207
uuid(cd0d66ec-8057-43f5-acbd-66dfb36fd78c)
#elif XACT3_VER == 0x0208
uuid(77c56bf4-18a1-42b0-88af-5072ce814949)
diff --git a/dlls/xactengine2_6/Makefile.in b/dlls/xactengine2_6/Makefile.in
new file mode 100644
index 00000000000..bfac72a3434
--- /dev/null
+++ b/dlls/xactengine2_6/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_6.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0206
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_6/xactengine2_6.spec b/dlls/xactengine2_6/xactengine2_6.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_6/xactengine2_6.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From 81e8492948bb95e295e461011f0fc7e7c0382481 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 18:56:11 +0200
Subject: [PATCH 17/23] xactengine2_5: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_5/Makefile.in | 11 +++++++++++
dlls/xactengine2_5/xactengine2_5.spec | 4 ++++
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_5/Makefile.in
create mode 100644 dlls/xactengine2_5/xactengine2_5.spec
diff --git a/configure.ac b/configure.ac
index dd31238b745..5e2abdb0163 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_5=${enable_xactengine2_5:-no}
enable_xactengine2_6=${enable_xactengine2_6:-no}
enable_xactengine2_7=${enable_xactengine2_7:-no}
enable_xactengine2_8=${enable_xactengine2_8:-no}
@@ -3989,6 +3990,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_5)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_6)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_8)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index a9208c0139c..6801c854031 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0206
+#if XACT3_VER == 0x0205
+ uuid(54b68bc7-3a45-416b-a8c9-19bf19ec1df5)
+#elif XACT3_VER == 0x0206
uuid(3a2495ce-31d0-435b-8ccf-e9f0843fd960)
#elif XACT3_VER == 0x0207
uuid(cd0d66ec-8057-43f5-acbd-66dfb36fd78c)
diff --git a/dlls/xactengine2_5/Makefile.in b/dlls/xactengine2_5/Makefile.in
new file mode 100644
index 00000000000..0049d30039d
--- /dev/null
+++ b/dlls/xactengine2_5/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_5.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0205
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_5/xactengine2_5.spec b/dlls/xactengine2_5/xactengine2_5.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_5/xactengine2_5.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,241 +0,0 @@
From 27775b21b4bc2b68e75cb9f3e631b10d2621baff Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 20:11:52 +0200
Subject: [PATCH 18/23] xactengine2_4: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_10/xact2_dll.c | 24 ++++++++++++++++++++++++
dlls/xactengine2_4/Makefile.in | 11 +++++++++++
dlls/xactengine2_4/xactengine2_4.spec | 4 ++++
5 files changed, 44 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_4/Makefile.in
create mode 100644 dlls/xactengine2_4/xactengine2_4.spec
diff --git a/configure.ac b/configure.ac
index 5e2abdb0163..789b1d96e72 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_4=${enable_xactengine2_4:-no}
enable_xactengine2_5=${enable_xactengine2_5:-no}
enable_xactengine2_6=${enable_xactengine2_6:-no}
enable_xactengine2_7=${enable_xactengine2_7:-no}
@@ -3990,6 +3991,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_4)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_5)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_6)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_7)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 6801c854031..8728ea5c873 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0205
+#if XACT3_VER == 0x0204
+ uuid(bc3e0fc6-2e0d-4c45-bc61-d9c328319bd8)
+#elif XACT3_VER == 0x0205
uuid(54b68bc7-3a45-416b-a8c9-19bf19ec1df5)
#elif XACT3_VER == 0x0206
uuid(3a2495ce-31d0-435b-8ccf-e9f0843fd960)
diff --git a/dlls/xactengine2_10/xact2_dll.c b/dlls/xactengine2_10/xact2_dll.c
index aada1cf53e9..be83e0d5b96 100644
--- a/dlls/xactengine2_10/xact2_dll.c
+++ b/dlls/xactengine2_10/xact2_dll.c
@@ -167,6 +167,7 @@ static HRESULT WINAPI IXACTCueImpl_Pause(IXACTCue *iface, BOOL fPause)
return FACTCue_Pause(This->fact_cue, fPause);
}
+#if XACT3_VER >= 0x0205
static HRESULT WINAPI IXACTCueImpl_GetProperties(IXACTCue *iface,
XACT_CUE_INSTANCE_PROPERTIES **ppProperties)
{
@@ -183,6 +184,7 @@ static HRESULT WINAPI IXACTCueImpl_GetProperties(IXACTCue *iface,
*ppProperties = (XACT_CUE_INSTANCE_PROPERTIES*) fProps;
return hr;
}
+#endif
static const IXACTCueVtbl XACTCue_Vtbl =
{
@@ -198,8 +200,12 @@ static const IXACTCueVtbl XACTCue_Vtbl =
IXACTCueImpl_GetVariableIndex,
IXACTCueImpl_SetVariable,
IXACTCueImpl_GetVariable,
+#if XACT3_VER >= 0x0205
IXACTCueImpl_Pause,
IXACTCueImpl_GetProperties
+#else
+ IXACTCueImpl_Pause
+#endif
};
typedef struct _XACTSoundBankImpl {
@@ -223,6 +229,7 @@ static XACTINDEX WINAPI IXACTSoundBankImpl_GetCueIndex(IXACTSoundBank *iface,
return FACTSoundBank_GetCueIndex(This->fact_soundbank, szFriendlyName);
}
+#if XACT3_VER >= 0x0205
static HRESULT WINAPI IXACTSoundBankImpl_GetNumCues(IXACTSoundBank *iface,
XACTINDEX *pnNumCues)
{
@@ -243,6 +250,7 @@ static HRESULT WINAPI IXACTSoundBankImpl_GetCueProperties(IXACTSoundBank *iface,
return FACTSoundBank_GetCueProperties(This->fact_soundbank, nCueIndex,
(FACTCueProperties*) pProperties);
}
+#endif
static HRESULT WINAPI IXACTSoundBankImpl_Prepare(IXACTSoundBank *iface,
XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset,
@@ -361,8 +369,10 @@ static HRESULT WINAPI IXACTSoundBankImpl_GetState(IXACTSoundBank *iface,
static const IXACTSoundBankVtbl XACTSoundBank_Vtbl =
{
IXACTSoundBankImpl_GetCueIndex,
+#if XACT3_VER >= 0x0205
IXACTSoundBankImpl_GetNumCues,
IXACTSoundBankImpl_GetCueProperties,
+#endif
IXACTSoundBankImpl_Prepare,
IXACTSoundBankImpl_Play,
IXACTSoundBankImpl_Stop,
@@ -381,6 +391,7 @@ static inline XACTWaveImpl *impl_from_IXACTWave(IXACTWave *iface)
return CONTAINING_RECORD(iface, XACTWaveImpl, IXACTWave_iface);
}
+#if XACT3_VER >= 0x0205
static HRESULT WINAPI IXACTWaveImpl_Destroy(IXACTWave *iface)
{
XACTWaveImpl *This = impl_from_IXACTWave(iface);
@@ -483,6 +494,7 @@ static const IXACTWaveVtbl XACTWave_Vtbl =
IXACTWaveImpl_SetMatrixCoefficients,
IXACTWaveImpl_GetProperties
};
+#endif
typedef struct _XACTWaveBankImpl {
IXACTWaveBank IXACTWaveBank_iface;
@@ -507,6 +519,7 @@ static HRESULT WINAPI IXACTWaveBankImpl_Destroy(IXACTWaveBank *iface)
return hr;
}
+#if XACT3_VER >= 0x0205
static HRESULT WINAPI IXACTWaveBankImpl_GetNumWaves(IXACTWaveBank *iface,
XACTINDEX *pnNumWaves)
{
@@ -625,6 +638,7 @@ static HRESULT WINAPI IXACTWaveBankImpl_Stop(IXACTWaveBank *iface,
return FACTWaveBank_Stop(This->fact_wavebank, nWaveIndex, dwFlags);
}
+#endif
static HRESULT WINAPI IXACTWaveBankImpl_GetState(IXACTWaveBank *iface,
DWORD *pdwState)
@@ -639,12 +653,14 @@ static HRESULT WINAPI IXACTWaveBankImpl_GetState(IXACTWaveBank *iface,
static const IXACTWaveBankVtbl XACTWaveBank_Vtbl =
{
IXACTWaveBankImpl_Destroy,
+#if XACT3_VER >= 0x0205
IXACTWaveBankImpl_GetNumWaves,
IXACTWaveBankImpl_GetWaveIndex,
IXACTWaveBankImpl_GetWaveProperties,
IXACTWaveBankImpl_Prepare,
IXACTWaveBankImpl_Play,
IXACTWaveBankImpl_Stop,
+#endif
IXACTWaveBankImpl_GetState
};
@@ -756,6 +772,7 @@ static HRESULT WINAPI IXACTEngineImpl_GetRendererDetails(IXACTEngine *iface,
nRendererIndex, (FACTRendererDetails*) pRendererDetails);
}
+#if XACT3_VER >= 0x0205
static HRESULT WINAPI IXACTEngineImpl_GetFinalMixFormat(IXACTEngine *iface,
WAVEFORMATEXTENSIBLE *pFinalMixFormat)
{
@@ -766,6 +783,7 @@ static HRESULT WINAPI IXACTEngineImpl_GetFinalMixFormat(IXACTEngine *iface,
return FACTAudioEngine_GetFinalMixFormat(This->fact_engine,
(FAudioWaveFormatExtensible*) pFinalMixFormat);
}
+#endif
static void FACTCALL fact_notification_cb(const FACTNotification *notification)
{
@@ -967,6 +985,7 @@ static HRESULT WINAPI IXACTEngineImpl_CreateStreamingWaveBank(IXACTEngine *iface
return S_OK;
}
+#if XACT3_VER >= 0x0205
static HRESULT WINAPI IXACTEngineImpl_PrepareInMemoryWave(IXACTEngine *iface,
DWORD dwFlags, WAVEBANKENTRY entry, DWORD *pdwSeekTable,
BYTE *pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount,
@@ -997,6 +1016,7 @@ static HRESULT WINAPI IXACTEngineImpl_PrepareWave(IXACTEngine *iface,
FIXME("(%p): stub!\n", This);
return E_NOTIMPL;
}
+#endif
enum {
NOTIFY_SoundBank = 0x01,
@@ -1189,16 +1209,20 @@ static const IXACTEngineVtbl XACTEngine_Vtbl =
IXACTEngineImpl_Release,
IXACTEngineImpl_GetRendererCount,
IXACTEngineImpl_GetRendererDetails,
+#if XACT3_VER >= 0x0205
IXACTEngineImpl_GetFinalMixFormat,
+#endif
IXACTEngineImpl_Initialize,
IXACTEngineImpl_ShutDown,
IXACTEngineImpl_DoWork,
IXACTEngineImpl_CreateSoundBank,
IXACTEngineImpl_CreateInMemoryWaveBank,
IXACTEngineImpl_CreateStreamingWaveBank,
+#if XACT3_VER >= 0x0205
IXACTEngineImpl_PrepareWave,
IXACTEngineImpl_PrepareInMemoryWave,
IXACTEngineImpl_PrepareStreamingWave,
+#endif
IXACTEngineImpl_RegisterNotification,
IXACTEngineImpl_UnRegisterNotification,
IXACTEngineImpl_GetCategory,
diff --git a/dlls/xactengine2_4/Makefile.in b/dlls/xactengine2_4/Makefile.in
new file mode 100644
index 00000000000..ff25486fea5
--- /dev/null
+++ b/dlls/xactengine2_4/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_4.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0204
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_4/xactengine2_4.spec b/dlls/xactengine2_4/xactengine2_4.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_4/xactengine2_4.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From 14b0d63034c1fa95d89dc823de6a966aa3a6737d Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 20:17:19 +0200
Subject: [PATCH 19/23] xactengine2_3: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_3/Makefile.in | 11 +++++++++++
dlls/xactengine2_3/xactengine2_3.spec | 4 ++++
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_3/Makefile.in
create mode 100644 dlls/xactengine2_3/xactengine2_3.spec
diff --git a/configure.ac b/configure.ac
index 789b1d96e72..561236e4b8d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_3=${enable_xactengine2_3:-no}
enable_xactengine2_4=${enable_xactengine2_4:-no}
enable_xactengine2_5=${enable_xactengine2_5:-no}
enable_xactengine2_6=${enable_xactengine2_6:-no}
@@ -3991,6 +3992,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_3)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_4)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_5)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_6)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 8728ea5c873..3339b1ce1a7 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0204
+#if XACT3_VER == 0x0203
+ uuid(1138472b-d187-44e9-81f2-ae1b0e7785f1)
+#elif XACT3_VER == 0x0204
uuid(bc3e0fc6-2e0d-4c45-bc61-d9c328319bd8)
#elif XACT3_VER == 0x0205
uuid(54b68bc7-3a45-416b-a8c9-19bf19ec1df5)
diff --git a/dlls/xactengine2_3/Makefile.in b/dlls/xactengine2_3/Makefile.in
new file mode 100644
index 00000000000..23a27403ef6
--- /dev/null
+++ b/dlls/xactengine2_3/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_3.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0203
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_3/xactengine2_3.spec b/dlls/xactengine2_3/xactengine2_3.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_3/xactengine2_3.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From c88e79b3ff8cceb7a241ed16dafe93adf972a6d7 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 20:22:19 +0200
Subject: [PATCH 20/23] xactengine2_2: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
dlls/xactengine2_2/Makefile.in | 11 +++++++++++
dlls/xactengine2_2/xactengine2_2.spec | 4 ++++
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_2/Makefile.in
create mode 100644 dlls/xactengine2_2/xactengine2_2.spec
diff --git a/configure.ac b/configure.ac
index 561236e4b8d..6f22173a2a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,7 @@ then
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
+ enable_xactengine2_2=${enable_xactengine2_2:-no}
enable_xactengine2_3=${enable_xactengine2_3:-no}
enable_xactengine2_4=${enable_xactengine2_4:-no}
enable_xactengine2_5=${enable_xactengine2_5:-no}
@@ -3992,6 +3993,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_2)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_3)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_4)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_5)
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index 3339b1ce1a7..cd23b8de4f2 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0203
+#if XACT3_VER == 0x0202
+ uuid(c60fae90-4183-4a3f-b2f7-ac1dc49b0e5c)
+#elif XACT3_VER == 0x0203
uuid(1138472b-d187-44e9-81f2-ae1b0e7785f1)
#elif XACT3_VER == 0x0204
uuid(bc3e0fc6-2e0d-4c45-bc61-d9c328319bd8)
diff --git a/dlls/xactengine2_2/Makefile.in b/dlls/xactengine2_2/Makefile.in
new file mode 100644
index 00000000000..0fa959d7b76
--- /dev/null
+++ b/dlls/xactengine2_2/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_2.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0202
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_2/xactengine2_2.spec b/dlls/xactengine2_2/xactengine2_2.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_2/xactengine2_2.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
--
2.28.0

View File

@ -1,80 +0,0 @@
From 2e261eb2409161402f42eb97690b8b44e593259f Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 20:27:16 +0200
Subject: [PATCH 21/23] xactengine2_1: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_1/Makefile.in | 11 +++++++++++
dlls/xactengine2_1/xactengine2_1.spec | 4 ++++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_1/Makefile.in
create mode 100644 dlls/xactengine2_1/xactengine2_1.spec
diff --git a/configure.ac b/configure.ac
index 6f22173a2a8..4f974ff753b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1986,6 +1986,7 @@ then
enable_x3daudio1_5=${enable_x3daudio1_5:-no}
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
+ enable_xactengine2_1=${enable_xactengine2_1:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
enable_xactengine2_2=${enable_xactengine2_2:-no}
enable_xactengine2_3=${enable_xactengine2_3:-no}
@@ -3992,6 +3993,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_4)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_1)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_2)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_3)
diff --git a/dlls/xactengine2_1/Makefile.in b/dlls/xactengine2_1/Makefile.in
new file mode 100644
index 00000000000..8e2c959324e
--- /dev/null
+++ b/dlls/xactengine2_1/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_1.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0201
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_1/xactengine2_1.spec b/dlls/xactengine2_1/xactengine2_1.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_1/xactengine2_1.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index cd23b8de4f2..ed88c21c8f2 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0202
+#if XACT3_VER == 0x0201
+ uuid(1f1b577e-5e5a-4e8a-ba73-c657ea8e8598)
+#elif XACT3_VER == 0x0202
uuid(c60fae90-4183-4a3f-b2f7-ac1dc49b0e5c)
#elif XACT3_VER == 0x0203
uuid(1138472b-d187-44e9-81f2-ae1b0e7785f1)
--
2.28.0

View File

@ -1,80 +0,0 @@
From e8468eb77c90716bc165c2456885bfa65bf40611 Mon Sep 17 00:00:00 2001
From: Vijay Kiran Kamuju <infyquest@gmail.com>
Date: Fri, 18 Sep 2020 20:31:18 +0200
Subject: [PATCH 22/23] xactengine2_0: New Dll.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
---
configure.ac | 2 ++
dlls/xactengine2_0/Makefile.in | 11 +++++++++++
dlls/xactengine2_0/xactengine2_0.spec | 4 ++++
dlls/xactengine2_10/xact2_classes.idl | 4 +++-
4 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 dlls/xactengine2_0/Makefile.in
create mode 100644 dlls/xactengine2_0/xactengine2_0.spec
diff --git a/configure.ac b/configure.ac
index 4f974ff753b..cf29add40e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1986,6 +1986,7 @@ then
enable_x3daudio1_5=${enable_x3daudio1_5:-no}
enable_x3daudio1_6=${enable_x3daudio1_6:-no}
enable_x3daudio1_7=${enable_x3daudio1_7:-no}
+ enable_xactengine2_0=${enable_xactengine2_0:-no}
enable_xactengine2_1=${enable_xactengine2_1:-no}
enable_xactengine2_10=${enable_xactengine2_10:-no}
enable_xactengine2_2=${enable_xactengine2_2:-no}
@@ -3993,6 +3994,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_4)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
+WINE_CONFIG_MAKEFILE(dlls/xactengine2_0)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_1)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_10)
WINE_CONFIG_MAKEFILE(dlls/xactengine2_2)
diff --git a/dlls/xactengine2_0/Makefile.in b/dlls/xactengine2_0/Makefile.in
new file mode 100644
index 00000000000..796e8065c4b
--- /dev/null
+++ b/dlls/xactengine2_0/Makefile.in
@@ -0,0 +1,11 @@
+MODULE = xactengine2_0.dll
+IMPORTS = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0200
+PARENTSRC = ../xactengine2_10
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+ xact2_dll.c
+
+IDL_SRCS = xact2_classes.idl
diff --git a/dlls/xactengine2_0/xactengine2_0.spec b/dlls/xactengine2_0/xactengine2_0.spec
new file mode 100644
index 00000000000..b16365d0c9f
--- /dev/null
+++ b/dlls/xactengine2_0/xactengine2_0.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xactengine2_10/xact2_classes.idl b/dlls/xactengine2_10/xact2_classes.idl
index ed88c21c8f2..7d06830e9af 100644
--- a/dlls/xactengine2_10/xact2_classes.idl
+++ b/dlls/xactengine2_10/xact2_classes.idl
@@ -22,7 +22,9 @@
[
threading(both),
-#if XACT3_VER == 0x0201
+#if XACT3_VER == 0x0200
+ uuid(0aa000aa-f404-11d9-bd7a-0010dc4f8f81)
+#elif XACT3_VER == 0x0201
uuid(1f1b577e-5e5a-4e8a-ba73-c657ea8e8598)
#elif XACT3_VER == 0x0202
uuid(c60fae90-4183-4a3f-b2f7-ac1dc49b0e5c)
--
2.28.0

View File

@ -1,5 +0,0 @@
Fixes: [41048] xactengine2_0: Roller Coaster Rampage
Fixes: [49671] xactengine2_4: Supreme Commander demo
Fixes: [49668] xactengine2_7: Two Worlds Epic Edition
Fixes: [41468] xactengine2_9: Supreme Commander Forged Alliance
Disabled: True

View File

@ -1 +1 @@
788fd4ee44fc9877b01888fdd3cd72b9ac88228e
08c6114fbbdabe1873731356c51716e513a26348