wine-staging/patches/xactengine2-dll/0001-include-Add-xact2wb.h.patch

183 lines
5.4 KiB
Diff
Raw Normal View History

2020-09-19 01:08:01 -07:00
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