Module: wine Branch: master Commit: 948a6a47b8dbd0ddd86cad04de03f0e4ba81b65d URL: https://source.winehq.org/git/wine.git/?a=commit;h=948a6a47b8dbd0ddd86cad04d...
Author: Vijay Kiran Kamuju infyquest@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@gmail.com Signed-off-by: Alexandre Julliard julliard@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__ */