mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
183 lines
5.4 KiB
Diff
183 lines
5.4 KiB
Diff
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
|
|
|