You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Added xactengine2-dll
This commit is contained in:
@@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "2cf69bb5a5b43951abb251f415ccb81e809bd32e"
|
||||
echo "36e6ea9767473204b0e1635a1d54af3868fa0188"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@@ -332,6 +332,7 @@ patch_enable_all ()
|
||||
enable_ws2_32_getaddrinfo="$1"
|
||||
enable_ws2_32_getsockopt="$1"
|
||||
enable_wtsapi32_EnumerateProcesses="$1"
|
||||
enable_xactengine2_dll="$1"
|
||||
enable_xactengine3_7_PrepareWave="$1"
|
||||
}
|
||||
|
||||
@@ -1089,6 +1090,9 @@ patch_enable ()
|
||||
wtsapi32-EnumerateProcesses)
|
||||
enable_wtsapi32_EnumerateProcesses="$2"
|
||||
;;
|
||||
xactengine2-dll)
|
||||
enable_xactengine2_dll="$2"
|
||||
;;
|
||||
xactengine3_7-PrepareWave)
|
||||
enable_xactengine3_7_PrepareWave="$2"
|
||||
;;
|
||||
@@ -5135,6 +5139,50 @@ if test "$enable_wtsapi32_EnumerateProcesses" -eq 1; then
|
||||
patch_apply wtsapi32-EnumerateProcesses/0001-wtsapi32-Partial-implementation-of-WTSEnumerateProce.patch
|
||||
fi
|
||||
|
||||
# Patchset xactengine2-dll
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#41048] xactengine2_0: Roller Coaster Rampage
|
||||
# | * [#49671] xactengine2_4: Supreme Commander demo
|
||||
# | * [#49668] xactengine2_7: Two Worlds Epic Edition
|
||||
# | * [#41468] xactengine2_9: Supreme Commander Forged Alliance
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure, configure.ac, dlls/xactengine2_0/Makefile.in, dlls/xactengine2_0/xactengine2_0.spec,
|
||||
# | dlls/xactengine2_1/Makefile.in, dlls/xactengine2_1/xactengine2_1.spec, dlls/xactengine2_10/Makefile.in,
|
||||
# | dlls/xactengine2_10/xact2_classes.idl, dlls/xactengine2_10/xact2_dll.c, dlls/xactengine2_10/xactengine2_10.spec,
|
||||
# | dlls/xactengine2_2/Makefile.in, dlls/xactengine2_2/xactengine2_2.spec, dlls/xactengine2_3/Makefile.in,
|
||||
# | dlls/xactengine2_3/xactengine2_3.spec, dlls/xactengine2_4/Makefile.in, dlls/xactengine2_4/xactengine2_4.spec,
|
||||
# | dlls/xactengine2_5/Makefile.in, dlls/xactengine2_5/xactengine2_5.spec, dlls/xactengine2_6/Makefile.in,
|
||||
# | dlls/xactengine2_6/xactengine2_6.spec, dlls/xactengine2_7/Makefile.in, dlls/xactengine2_7/xactengine2_7.spec,
|
||||
# | dlls/xactengine2_8/Makefile.in, dlls/xactengine2_8/xactengine2_8.spec, dlls/xactengine2_9/Makefile.in,
|
||||
# | dlls/xactengine2_9/xactengine2_9.spec, include/Makefile.in, include/xact.h, include/xact2wb.h
|
||||
# |
|
||||
if test "$enable_xactengine2_dll" -eq 1; then
|
||||
patch_apply xactengine2-dll/0001-include-Add-xact2wb.h.patch
|
||||
patch_apply xactengine2-dll/0002-include-Add-xact.h.patch
|
||||
patch_apply xactengine2-dll/0003-xactengine2_10-Add-new-dll.patch
|
||||
patch_apply xactengine2-dll/0004-xactengine2_10-Implement-IXACTEngine-interface.patch
|
||||
patch_apply xactengine2-dll/0005-xactengine2_10-Implement-IXACTSoundBank-interface.patch
|
||||
patch_apply xactengine2-dll/0006-xactengine2_10-Implement-IXACTCue-Interface.patch
|
||||
patch_apply xactengine2-dll/0007-xactengine2_10-Implement-IXACTWaveBank-interface.patch
|
||||
patch_apply xactengine2-dll/0008-xactengine2_10-Implement-IXACTEngine-CreateStreaming.patch
|
||||
patch_apply xactengine2-dll/0009-xactengine2_10-Implement-IXACTWave-interface.patch
|
||||
patch_apply xactengine2-dll/0010-xactengine2_10-Implement-IXACTSoundBank-Play-functio.patch
|
||||
patch_apply xactengine2-dll/0011-xactengine2_10-Implement-IXACTWaveBank-Play-function.patch
|
||||
patch_apply xactengine2-dll/0012-xactengine2_10-Implement-IXACTEngine-Un-RegisterNoti.patch
|
||||
patch_apply xactengine2-dll/0013-xactengine2_9-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0014-xactengine2_8-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0015-xactengine2_7-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0016-xactengine2_6-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0017-xactengine2_5-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0018-xactengine2_4-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0019-xactengine2_3-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0020-xactengine2_2-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0021-xactengine2_1-New-Dll.patch
|
||||
patch_apply xactengine2-dll/0022-xactengine2_0-New-Dll.patch
|
||||
fi
|
||||
|
||||
# Patchset xactengine3_7-PrepareWave
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
182
patches/xactengine2-dll/0001-include-Add-xact2wb.h.patch
Normal file
182
patches/xactengine2-dll/0001-include-Add-xact2wb.h.patch
Normal file
@@ -0,0 +1,182 @@
|
||||
From 05cdff3abe82f3b79473df940c407881f5b09eea Mon Sep 17 00:00:00 2001
|
||||
From: Vijay Kiran Kamuju <infyquest@gmail.com>
|
||||
Date: Wed, 12 Aug 2020 11:06:30 +0200
|
||||
Subject: [PATCH 01/23] include: Add xact2wb.h
|
||||
|
||||
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
|
||||
---
|
||||
include/Makefile.in | 1 +
|
||||
include/xact2wb.h | 149 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 150 insertions(+)
|
||||
create mode 100644 include/xact2wb.h
|
||||
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index d32b0a225c1..9983d1151ca 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -818,6 +818,7 @@ SOURCES = \
|
||||
wuapi.idl \
|
||||
x3daudio.h \
|
||||
xact3.h \
|
||||
+ xact2wb.h \
|
||||
xact3wb.h \
|
||||
xapo.idl \
|
||||
xapofx.h \
|
||||
diff --git a/include/xact2wb.h b/include/xact2wb.h
|
||||
new file mode 100644
|
||||
index 00000000000..2bdc7f5c0dd
|
||||
--- /dev/null
|
||||
+++ b/include/xact2wb.h
|
||||
@@ -0,0 +1,149 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2020 Vijay Kiran Kamuju
|
||||
+ *
|
||||
+ * 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
|
||||
+ */
|
||||
+#ifndef __XACT2WB_H__
|
||||
+#define __XACT2WB_H__
|
||||
+
|
||||
+#include <pshpack1.h>
|
||||
+
|
||||
+typedef DWORD WAVEBANKOFFSET;
|
||||
+
|
||||
+#define WAVEBANK_HEADER_SIGNATURE 0x444e4257 /* DNBW */
|
||||
+#define WAVEBANK_HEADER_VERSION 42
|
||||
+#define WAVEBANK_BANKNAME_LENGTH 64
|
||||
+#define WAVEBANK_ENTRYNAME_LENGTH 64
|
||||
+
|
||||
+#define WAVEBANK_TYPE_BUFFER 0x00000000
|
||||
+#define WAVEBANK_TYPE_STREAMING 0x00000001
|
||||
+#define WAVEBANK_TYPE_MASK 0x00000001
|
||||
+
|
||||
+#define WAVEBANK_FLAGS_ENTRYNAMES 0x00010000
|
||||
+#define WAVEBANK_FLAGS_COMPACT 0x00020000
|
||||
+#define WAVEBANK_FLAGS_SYNC_DISABLED 0x00040000
|
||||
+#define WAVEBANK_FLAGS_SEEKTABLES 0x00080000
|
||||
+#define WAVEBANK_FLAGS_MASK 0x000f0000
|
||||
+
|
||||
+#define WAVEBANK_DVD_SECTOR_SIZE 2048
|
||||
+#define WAVEBANK_DVD_BLOCK_SIZE (WAVEBANK_DVD_SECTOR_SIZE * 16)
|
||||
+#define WAVEBANK_ALIGNMENT_MIN 4
|
||||
+#define WAVEBANK_ALIGNMENT_DVD WAVEBANK_DVD_SECTOR_SIZE
|
||||
+
|
||||
+typedef enum WAVEBANKSEGIDX
|
||||
+{
|
||||
+ WAVEBANK_SEGIDX_BANKDATA = 0,
|
||||
+ WAVEBANK_SEGIDX_ENTRYMETADATA,
|
||||
+ WAVEBANK_SEGIDX_SEEKTABLES,
|
||||
+ WAVEBANK_SEGIDX_ENTRYNAMES,
|
||||
+ WAVEBANK_SEGIDX_ENTRYWAVEDATA,
|
||||
+ WAVEBANK_SEGIDX_COUNT
|
||||
+} WAVEBANKSEGIDX, *LPWAVEBANKSEGIDX;
|
||||
+typedef const WAVEBANKSEGIDX *LPCWAVEBANKSEGIDX;
|
||||
+
|
||||
+#define WAVEBANKMINIFORMAT_TAG_PCM 0x0
|
||||
+#define WAVEBANKMINIFORMAT_TAG_XMA 0x1
|
||||
+#define WAVEBANKMINIFORMAT_TAG_ADPCM 0x2
|
||||
+
|
||||
+#define WAVEBANKMINIFORMAT_BITDEPTH_8 0x0
|
||||
+#define WAVEBANKMINIFORMAT_BITDEPTH_16 0x1
|
||||
+
|
||||
+typedef union WAVEBANKMINIWAVEFORMAT
|
||||
+{
|
||||
+ struct
|
||||
+ {
|
||||
+ DWORD wFormatTag : 2;
|
||||
+ DWORD nChannels : 3;
|
||||
+ DWORD nSamplesPerSec : 18;
|
||||
+ DWORD wBlockAlign : 8;
|
||||
+ DWORD wBitsPerSample : 1;
|
||||
+ } DUMMYSTRUCTNAME;
|
||||
+ DWORD dwValue;
|
||||
+} WAVEBANKMINIWAVEFORMAT, *LPWAVEBANKMINIWAVEFORMAT;
|
||||
+typedef const WAVEBANKMINIWAVEFORMAT *LPCWAVEBANKMINIWAVEFORMAT;
|
||||
+
|
||||
+typedef struct WAVEBANKREGION
|
||||
+{
|
||||
+ DWORD dwOffset;
|
||||
+ DWORD dwLength;
|
||||
+} WAVEBANKREGION, *LPWAVEBANKREGION;
|
||||
+typedef const WAVEBANKREGION *LPCWAVEBANKREGION;
|
||||
+
|
||||
+typedef struct WAVEBANKSAMPLEREGION
|
||||
+{
|
||||
+ DWORD dwStartSample;
|
||||
+ DWORD dwTotalSamples;
|
||||
+} WAVEBANKSAMPLEREGION, *LPWAVEBANKSAMPLEREGION;
|
||||
+typedef const WAVEBANKSAMPLEREGION *LPCWAVEBANKSAMPLEREGION;
|
||||
+
|
||||
+typedef struct WAVEBANKHEADER
|
||||
+{
|
||||
+ DWORD dwSignature;
|
||||
+ DWORD dwVersion;
|
||||
+ DWORD dwHeaderVersion;
|
||||
+ WAVEBANKREGION Segments[WAVEBANK_SEGIDX_COUNT];
|
||||
+} WAVEBANKHEADER, *LPWAVEBANKHEADER;
|
||||
+typedef const WAVEBANKHEADER *LPCWAVEBANKHEADER;
|
||||
+
|
||||
+#define WAVEBANKENTRY_XMASTREAMS_MAX 3
|
||||
+#define WAVEBANKENTRY_XMACHANNELS_MAX 6
|
||||
+
|
||||
+#define WAVEBANKENTRY_FLAGS_READAHEAD 0x00000001
|
||||
+#define WAVEBANKENTRY_FLAGS_LOOPCACHE 0x00000002
|
||||
+#define WAVEBANKENTRY_FLAGS_REMOVELOOPTAIL 0x00000004
|
||||
+#define WAVEBANKENTRY_FLAGS_IGNORELOOP 0x00000008
|
||||
+#define WAVEBANKENTRY_FLAGS_MASK 0x00000008
|
||||
+
|
||||
+typedef struct WAVEBANKENTRY
|
||||
+{
|
||||
+ union
|
||||
+ {
|
||||
+ struct
|
||||
+ {
|
||||
+ DWORD dwFlags : 4;
|
||||
+ DWORD Duration : 28;
|
||||
+ } DUMMYSTRUCTNAME;
|
||||
+ DWORD dwFlagsAndDuration;
|
||||
+ } DUMMYUNIONNAME;
|
||||
+
|
||||
+ WAVEBANKMINIWAVEFORMAT Format;
|
||||
+ WAVEBANKREGION PlayRegion;
|
||||
+ WAVEBANKSAMPLEREGION LoopRegion;
|
||||
+} WAVEBANKENTRY, *LPWAVEBANKENTRY;
|
||||
+typedef const WAVEBANKENTRY *LPCWAVEBANKENTRY;
|
||||
+
|
||||
+typedef struct WAVEBANKENTRYCOMPACT
|
||||
+{
|
||||
+ DWORD dwOffset : 21;
|
||||
+ DWORD dwLengthDeviation : 11;
|
||||
+} WAVEBANKENTRYCOMPACT, *LPWAVEBANKENTRYCOMPACT;
|
||||
+typedef const WAVEBANKENTRYCOMPACT *LPCWAVEBANKENTRYCOMPACT;
|
||||
+
|
||||
+typedef struct WAVEBANKDATA
|
||||
+{
|
||||
+ DWORD dwFlags;
|
||||
+ DWORD dwEntryCount;
|
||||
+ CHAR szBankName[WAVEBANK_BANKNAME_LENGTH];
|
||||
+ DWORD dwEntryMetaDataElementSize;
|
||||
+ DWORD dwEntryNameElementSize;
|
||||
+ DWORD dwAlignment;
|
||||
+ WAVEBANKMINIWAVEFORMAT CompactFormat;
|
||||
+ FILETIME BuildTime;
|
||||
+} WAVEBANKDATA, *LPWAVEBANKDATA;
|
||||
+typedef const WAVEBANKDATA *LPCWAVEBANKDATA;
|
||||
+
|
||||
+#include <poppack.h>
|
||||
+
|
||||
+#endif /* __XACT2WB_H__ */
|
||||
--
|
||||
2.28.0
|
||||
|
886
patches/xactengine2-dll/0002-include-Add-xact.h.patch
Normal file
886
patches/xactengine2-dll/0002-include-Add-xact.h.patch
Normal file
File diff suppressed because it is too large
Load Diff
160
patches/xactengine2-dll/0003-xactengine2_10-Add-new-dll.patch
Normal file
160
patches/xactengine2-dll/0003-xactengine2_10-Add-new-dll.patch
Normal file
@@ -0,0 +1,160 @@
|
||||
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
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,178 @@
|
||||
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
|
||||
|
@@ -0,0 +1,233 @@
|
||||
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 = (IXACTCue*)&cue->IXACTCue_iface;
|
||||
+
|
||||
+ TRACE("Created Cue: %p\n", cue);
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI IXACTSoundBankImpl_Play(IXACTSoundBank *iface,
|
||||
--
|
||||
2.28.0
|
||||
|
@@ -0,0 +1,169 @@
|
||||
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
|
||||
|
@@ -0,0 +1,68 @@
|
||||
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
|
||||
|
@@ -0,0 +1,186 @@
|
||||
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
|
||||
|
@@ -0,0 +1,65 @@
|
||||
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 = (IXACTCue*)&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
|
||||
|
@@ -0,0 +1,60 @@
|
||||
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
|
||||
|
@@ -0,0 +1,149 @@
|
||||
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
|
||||
|
80
patches/xactengine2-dll/0013-xactengine2_9-New-Dll.patch
Normal file
80
patches/xactengine2-dll/0013-xactengine2_9-New-Dll.patch
Normal file
@@ -0,0 +1,80 @@
|
||||
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
|
||||
|
80
patches/xactengine2-dll/0014-xactengine2_8-New-Dll.patch
Normal file
80
patches/xactengine2-dll/0014-xactengine2_8-New-Dll.patch
Normal file
@@ -0,0 +1,80 @@
|
||||
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
|
||||
|
80
patches/xactengine2-dll/0015-xactengine2_7-New-Dll.patch
Normal file
80
patches/xactengine2-dll/0015-xactengine2_7-New-Dll.patch
Normal file
@@ -0,0 +1,80 @@
|
||||
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
|
||||
|
80
patches/xactengine2-dll/0016-xactengine2_6-New-Dll.patch
Normal file
80
patches/xactengine2-dll/0016-xactengine2_6-New-Dll.patch
Normal file
@@ -0,0 +1,80 @@
|
||||
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
|
||||
|
80
patches/xactengine2-dll/0017-xactengine2_5-New-Dll.patch
Normal file
80
patches/xactengine2-dll/0017-xactengine2_5-New-Dll.patch
Normal file
@@ -0,0 +1,80 @@
|
||||
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
|
||||
|
241
patches/xactengine2-dll/0018-xactengine2_4-New-Dll.patch
Normal file
241
patches/xactengine2-dll/0018-xactengine2_4-New-Dll.patch
Normal file
@@ -0,0 +1,241 @@
|
||||
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
|
||||
|
80
patches/xactengine2-dll/0019-xactengine2_3-New-Dll.patch
Normal file
80
patches/xactengine2-dll/0019-xactengine2_3-New-Dll.patch
Normal file
@@ -0,0 +1,80 @@
|
||||
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
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user