mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 08c6114fbbdabe1873731356c51716e513a26348.
This commit is contained in:
parent
39f66ddd9f
commit
27fae2dc15
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "788fd4ee44fc9877b01888fdd3cd72b9ac88228e"
|
||||
echo "08c6114fbbdabe1873731356c51716e513a26348"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -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
|
||||
|
@ -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, ¶ms);
|
||||
+ 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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -1 +1 @@
|
||||
788fd4ee44fc9877b01888fdd3cd72b9ac88228e
|
||||
08c6114fbbdabe1873731356c51716e513a26348
|
||||
|
Loading…
Reference in New Issue
Block a user