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>
This commit is contained in:
Vijay Kiran Kamuju 2020-03-20 13:37:35 +01:00 committed by Alexandre Julliard
parent 77e9ca7b4c
commit 948a6a47b8
1 changed files with 89 additions and 4 deletions

View File

@ -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__ */