Add a comment that explains why this header has no multiple inclusion guards.
[mplayer/greg.git] / libmpdemux / ms_hdr.h
blob4595f269dd4c67765e96ef5bf61ef1ff967f1b92
1 #ifndef MS_HDR_H
2 #define MS_HDR_H
4 #ifndef _WAVEFORMATEX_
5 #define _WAVEFORMATEX_
6 typedef struct __attribute__((__packed__)) _WAVEFORMATEX {
7 unsigned short wFormatTag;
8 unsigned short nChannels;
9 unsigned int nSamplesPerSec;
10 unsigned int nAvgBytesPerSec;
11 unsigned short nBlockAlign;
12 unsigned short wBitsPerSample;
13 unsigned short cbSize;
14 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
15 #endif /* _WAVEFORMATEX_ */
17 #ifndef _MPEGLAYER3WAVEFORMAT_
18 #define _MPEGLAYER3WAVEFORMAT_
19 typedef struct __attribute__((__packed__)) mpeglayer3waveformat_tag {
20 WAVEFORMATEX wf;
21 unsigned short wID;
22 unsigned int fdwFlags;
23 unsigned short nBlockSize;
24 unsigned short nFramesPerBlock;
25 unsigned short nCodecDelay;
26 } MPEGLAYER3WAVEFORMAT;
27 #endif /* _MPEGLAYER3WAVEFORMAT_ */
29 /* windows.h #includes wingdi.h on MinGW. */
30 #if !defined(_BITMAPINFOHEADER_) && !defined(_WINGDI_H)
31 #define _BITMAPINFOHEADER_
32 typedef struct __attribute__((__packed__))
34 int biSize;
35 int biWidth;
36 int biHeight;
37 short biPlanes;
38 short biBitCount;
39 int biCompression;
40 int biSizeImage;
41 int biXPelsPerMeter;
42 int biYPelsPerMeter;
43 int biClrUsed;
44 int biClrImportant;
45 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
46 typedef struct {
47 BITMAPINFOHEADER bmiHeader;
48 int bmiColors[1];
49 } BITMAPINFO, *LPBITMAPINFO;
50 #endif
52 #ifndef le2me_BITMAPINFOHEADER
53 #ifdef WORDS_BIGENDIAN
54 #define le2me_BITMAPINFOHEADER(h) { \
55 (h)->biSize = le2me_32((h)->biSize); \
56 (h)->biWidth = le2me_32((h)->biWidth); \
57 (h)->biHeight = le2me_32((h)->biHeight); \
58 (h)->biPlanes = le2me_16((h)->biPlanes); \
59 (h)->biBitCount = le2me_16((h)->biBitCount); \
60 (h)->biCompression = le2me_32((h)->biCompression); \
61 (h)->biSizeImage = le2me_32((h)->biSizeImage); \
62 (h)->biXPelsPerMeter = le2me_32((h)->biXPelsPerMeter); \
63 (h)->biYPelsPerMeter = le2me_32((h)->biYPelsPerMeter); \
64 (h)->biClrUsed = le2me_32((h)->biClrUsed); \
65 (h)->biClrImportant = le2me_32((h)->biClrImportant); \
67 #define le2me_WAVEFORMATEX(h) { \
68 (h)->wFormatTag = le2me_16((h)->wFormatTag); \
69 (h)->nChannels = le2me_16((h)->nChannels); \
70 (h)->nSamplesPerSec = le2me_32((h)->nSamplesPerSec); \
71 (h)->nAvgBytesPerSec = le2me_32((h)->nAvgBytesPerSec); \
72 (h)->nBlockAlign = le2me_16((h)->nBlockAlign); \
73 (h)->wBitsPerSample = le2me_16((h)->wBitsPerSample); \
74 (h)->cbSize = le2me_16((h)->cbSize); \
76 #else
77 #define le2me_BITMAPINFOHEADER(h) /**/
78 #define le2me_WAVEFORMATEX(h) /**/
79 #endif
80 #endif
82 #endif /* MS_HDR_H */