1 #ifndef __MMIO 2 #define __MMIO 1 3 4 typedef unsigned long DWORD; 5 typedef unsigned short WORD; 6 typedef unsigned char BYTE; 7 8 #ifndef mmioFOURCC 9 #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ 10 ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \ 11 ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) ) 12 #endif 13 14 #define FOURCC DWORD 15 16 typedef struct 17 { 18 WORD left; 19 WORD top; 20 WORD right; 21 WORD bottom; 22 } RECT, LPRECT; 23 24 #ifndef _WAVEFORMATEX_ 25 #define _WAVEFORMATEX_ 26 typedef struct __attribute__((__packed__)) _WAVEFORMATEX { 27 WORD wFormatTag; 28 WORD nChannels; 29 DWORD nSamplesPerSec; 30 DWORD nAvgBytesPerSec; 31 WORD nBlockAlign; 32 WORD wBitsPerSample; 33 WORD cbSize; 34 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; 35 #endif /* _WAVEFORMATEX_ */ 36 37 #ifndef _BITMAPINFOHEADER_ 38 #define _BITMAPINFOHEADER_ 39 typedef struct __attribute__((__packed__)) 40 { 41 int biSize; 42 int biWidth; 43 int biHeight; 44 short biPlanes; 45 short biBitCount; 46 int biCompression; 47 int biSizeImage; 48 int biXPelsPerMeter; 49 int biYPelsPerMeter; 50 int biClrUsed; 51 int biClrImportant; 52 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER; 53 #endif 54 55 /* this macro helps print FOURCC */ 56 #define INT_2_CHAR_ARG(i)\ 57 ,((char *)&i)[0]?((char *)&i)[0]:' '\ 58 ,((char *)&i)[1]?((char *)&i)[1]:' '\ 59 ,((char *)&i)[2]?((char *)&i)[2]:' '\ 60 ,((char *)&i)[3]?((char *)&i)[3]:' ' 61 62 typedef struct 63 { 64 unsigned short wTag; 65 const char *name; 66 }wTagNames; 67 extern wTagNames wtagNames[]; 68 extern const char *wtag_find_name(unsigned short wtag); 69 70 #endif 71