Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com --- include/Makefile.in | 1 + include/xact3wb.h | 64 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 include/xact3wb.h
diff --git a/include/Makefile.in b/include/Makefile.in index 8a05f5d01c..5dac4e66d5 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -771,6 +771,7 @@ SOURCES = \ wtypes.idl \ wuapi.idl \ x3daudio.h \ + xact3wb.h \ xapo.idl \ xapofx.h \ xaudio2.idl \ diff --git a/include/xact3wb.h b/include/xact3wb.h new file mode 100644 index 0000000000..b0dce3b2d4 --- /dev/null +++ b/include/xact3wb.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2020 Alistair Leslie-Hughes + * + * 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 __XACT3WB_H__ +#define __XACT3WB_H__ + +typedef union WAVEBANKMINIWAVEFORMAT +{ + struct + { + DWORD wFormatTag : 2; + DWORD nChannels : 3; + DWORD nSamplesPerSec : 18; + DWORD wBlockAlign : 8; + DWORD wBitsPerSample : 1; + } DUMMYSTRUCTNAME; + + DWORD dwValue; +} WAVEBANKMINIWAVEFORMAT; + +typedef struct WAVEBANKREGION +{ + DWORD dwOffset; + DWORD dwLength; +} WAVEBANKREGION; + +typedef struct WAVEBANKSAMPLEREGION +{ + DWORD dwStartSample; + DWORD dwTotalSamples; +} WAVEBANKSAMPLEREGION; + +typedef struct WAVEBANKENTRY +{ + union + { + struct + { + DWORD dwFlags : 4; + DWORD Duration : 28; + } DUMMYSTRUCTNAME; + DWORD dwFlagsAndDuration; + } NONAMELESSUNION; + + WAVEBANKMINIWAVEFORMAT Format; + WAVEBANKREGION PlayRegion; + WAVEBANKSAMPLEREGION LoopRegion; +} WAVEBANKENTRY; + +#endif /* __XACT3WB_H__ */
Alistair Leslie-Hughes leslie_alistair@hotmail.com wrote:
+typedef struct WAVEBANKENTRY +{
- union
- {
struct
{
DWORD dwFlags : 4;
DWORD Duration : 28;
} DUMMYSTRUCTNAME;
DWORD dwFlagsAndDuration;
- } NONAMELESSUNION;
- WAVEBANKMINIWAVEFORMAT Format;
- WAVEBANKREGION PlayRegion;
- WAVEBANKSAMPLEREGION LoopRegion;
+} WAVEBANKENTRY;
This one still uses NONAMELESSUNION instead of DUMMYUNIONNAME.