Vijay Kiran Kamuju : include: Add missing packing, structs and defines for xact3wb.h.
Alexandre Julliard
julliard at winehq.org
Fri Jun 12 16:01:18 CDT 2020
Module: wine
Branch: master
Commit: 948a6a47b8dbd0ddd86cad04de03f0e4ba81b65d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=948a6a47b8dbd0ddd86cad04de03f0e4ba81b65d
Author: Vijay Kiran Kamuju <infyquest at gmail.com>
Date: Fri Mar 20 13:37:35 2020 +0100
include: Add missing packing, structs and defines for xact3wb.h.
Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/xact3wb.h | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 89 insertions(+), 4 deletions(-)
diff --git a/include/xact3wb.h b/include/xact3wb.h
index b4c5a53d40..c68d7a30fa 100644
--- a/include/xact3wb.h
+++ b/include/xact3wb.h
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020 Alistair Leslie-Hughes
+ * 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
@@ -18,6 +19,52 @@
#ifndef __XACT3WB_H__
#define __XACT3WB_H__
+#include <pshpack1.h>
+
+typedef DWORD WAVEBANKOFFSET;
+
+#define WAVEBANK_HEADER_SIGNATURE 0x444e4257 /* DNBW */
+#define WAVEBANK_HEADER_VERSION 44
+#define WAVEBANK_BANKNAME_LENGTH 64
+#define WAVEBANK_ENTRYNAME_LENGTH 64
+
+#define WAVEBANK_MAX_DATA_SEGMENT_SIZE 0xffffffff
+#define WAVEBANK_COMPACT_DATA_SEGMENT_SIZE 0x001fffff
+
+#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_TAG_WMA 0x3
+
+#define WAVEBANKMINIFORMAT_BITDEPTH_8 0x0
+#define WAVEBANKMINIFORMAT_BITDEPTH_16 0x1
+
typedef union WAVEBANKMINIWAVEFORMAT
{
struct
@@ -29,19 +76,34 @@ typedef union WAVEBANKMINIWAVEFORMAT
DWORD wBitsPerSample : 1;
} DUMMYSTRUCTNAME;
DWORD dwValue;
-} WAVEBANKMINIWAVEFORMAT;
+} WAVEBANKMINIWAVEFORMAT, *LPWAVEBANKMINIWAVEFORMAT;
+typedef const WAVEBANKMINIWAVEFORMAT *LPCWAVEBANKMINIWAVEFORMAT;
typedef struct WAVEBANKREGION
{
DWORD dwOffset;
DWORD dwLength;
-} WAVEBANKREGION;
+} WAVEBANKREGION, *LPWAVEBANKREGION;
+typedef const WAVEBANKREGION *LPCWAVEBANKREGION;
typedef struct WAVEBANKSAMPLEREGION
{
DWORD dwStartSample;
DWORD dwTotalSamples;
-} WAVEBANKSAMPLEREGION;
+} 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
typedef struct WAVEBANKENTRY
{
@@ -58,6 +120,29 @@ typedef struct WAVEBANKENTRY
WAVEBANKMINIWAVEFORMAT Format;
WAVEBANKREGION PlayRegion;
WAVEBANKSAMPLEREGION LoopRegion;
-} WAVEBANKENTRY;
+} 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;
+ WAVEBANKMINIFORMAT CompactFormat;
+ FILETIME BuildTime;
+} WAVEBANKDATA, *LPWAVEBANKDATA;
+typedef const WAVEBANKDATA *LPCWAVEBANKDATA;
+
+#include <poppack.h>
#endif /* __XACT3WB_H__ */
More information about the wine-cvs
mailing list