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 Alistair Leslie-Hughes
* Copyright (c) 2020 Vijay Kiran Kamuju
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -18,6 +19,52 @@
#ifndef __XACT3WB_H__ #ifndef __XACT3WB_H__
#define __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 typedef union WAVEBANKMINIWAVEFORMAT
{ {
struct struct
@ -29,19 +76,34 @@ typedef union WAVEBANKMINIWAVEFORMAT
DWORD wBitsPerSample : 1; DWORD wBitsPerSample : 1;
} DUMMYSTRUCTNAME; } DUMMYSTRUCTNAME;
DWORD dwValue; DWORD dwValue;
} WAVEBANKMINIWAVEFORMAT; } WAVEBANKMINIWAVEFORMAT, *LPWAVEBANKMINIWAVEFORMAT;
typedef const WAVEBANKMINIWAVEFORMAT *LPCWAVEBANKMINIWAVEFORMAT;
typedef struct WAVEBANKREGION typedef struct WAVEBANKREGION
{ {
DWORD dwOffset; DWORD dwOffset;
DWORD dwLength; DWORD dwLength;
} WAVEBANKREGION; } WAVEBANKREGION, *LPWAVEBANKREGION;
typedef const WAVEBANKREGION *LPCWAVEBANKREGION;
typedef struct WAVEBANKSAMPLEREGION typedef struct WAVEBANKSAMPLEREGION
{ {
DWORD dwStartSample; DWORD dwStartSample;
DWORD dwTotalSamples; 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 typedef struct WAVEBANKENTRY
{ {
@ -58,6 +120,29 @@ typedef struct WAVEBANKENTRY
WAVEBANKMINIWAVEFORMAT Format; WAVEBANKMINIWAVEFORMAT Format;
WAVEBANKREGION PlayRegion; WAVEBANKREGION PlayRegion;
WAVEBANKSAMPLEREGION LoopRegion; 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__ */ #endif /* __XACT3WB_H__ */