/*----------------------------------------------------------------------+ | msvidc.h - Microsoft Video 1 Compressor - header file | | | | Copyright (c) 1990-1994 Microsoft Corporation. | | Portions Copyright Media Vision Inc. | | All Rights Reserved. | | | | You have a non-exclusive, worldwide, royalty-free, and perpetual | | license to use this source code in developing hardware, software | | (limited to drivers and other software required for hardware | | functionality), and firmware for video display and/or processing | | boards. Microsoft makes no warranties, express or implied, with | | respect to the Video 1 codec, including without limitation warranties | | of merchantability or fitness for a particular purpose. Microsoft | | shall not be liable for any damages whatsoever, including without | | limitation consequential damages arising from your use of the Video 1 | | codec. | | | | | +----------------------------------------------------------------------*/ #ifndef RC_INVOKED #include #include "decmprss.h" // Must include DECMPRSS.H first #include "compress.h" #endif #define ID_SCROLL 100 #define ID_TEXT 101 #define IDS_DESCRIPTION 42 #define IDS_NAME 43 #define IDS_ABOUT 44 extern HMODULE ghModule; #define ALIGNULONG(i) ((i+3)&(~3)) /* ULONG aligned ! */ #define WIDTHBYTES(i) ((unsigned)((i+31)&(~31))/8) /* ULONG aligned ! */ #define DIBWIDTHBYTES(bi) (int)WIDTHBYTES((int)(bi).biWidth * (int)(bi).biBitCount) #ifndef _WIN32 extern long FAR PASCAL muldiv32(long, long, long); #endif // in invcmap.c LPVOID FAR PASCAL MakeITable(LPRGBQUAD lprgbq, int nColors); typedef WORD RGB555; typedef DWORD RGBDWORD; typedef BYTE HUGE *HPBYTE; typedef WORD HUGE *HPWORD; typedef LONG HUGE *HPLONG; typedef RGBDWORD HUGE *HPRGBDWORD; typedef RGB555 HUGE *HPRGB555; typedef RGBTRIPLE HUGE *HPRGBTRIPLE; typedef RGBQUAD HUGE *HPRGBQUAD; typedef struct { UINT wTemporalRatio; // 100 = 1.0, 50 = .50 etc... } ICSTATE; typedef struct { DWORD dwFlags; // flags from ICOPEN DECOMPPROC DecompressProc; // current decomp proc... DECOMPPROC DecompressTest; // decomp proc... ICSTATE CurrentState; // current state of compressor. int nCompress; // count of COMPRESS_BEGIN calls int nDecompress; // count of DECOMPRESS_BEGIN calls int nDraw; // count of DRAW_BEGIN calls LONG (CALLBACK *Status) (LPARAM lParam, UINT message, LONG l); LPARAM lParam; LPBYTE lpITable; RGBQUAD rgbqOut[256]; } INSTINFO, *PINSTINFO; #ifdef _WIN32 #define VideoLoad() TRUE #else BOOL NEAR PASCAL VideoLoad(void); #endif void NEAR PASCAL VideoFree(void); INSTINFO *NEAR PASCAL VideoOpen(ICOPEN FAR *icinfo); LONG NEAR PASCAL VideoClose(INSTINFO * pinst); LONG NEAR PASCAL GetState(INSTINFO * pinst, LPVOID pv, DWORD dwSize); LONG NEAR PASCAL SetState(INSTINFO * pinst, LPVOID pv, DWORD dwSize); LONG NEAR PASCAL GetInfo(INSTINFO * pinst, ICINFO FAR *icinfo, DWORD dwSize); #define QueryAbout(x) (TRUE) //BOOL NEAR PASCAL QueryAbout(INSTINFO * pinst); LONG NEAR PASCAL About(INSTINFO * pinst, HWND hwnd); #define QueryConfigure(x) (TRUE) //BOOL NEAR PASCAL QueryConfigure(INSTINFO * pinst); LONG NEAR PASCAL Configure(INSTINFO * pinst, HWND hwnd); LONG FAR PASCAL CompressBegin(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut); LONG FAR PASCAL CompressQuery(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut); LONG FAR PASCAL CompressGetFormat(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut); LONG FAR PASCAL Compress(INSTINFO * pinst,ICCOMPRESS FAR *icinfo, DWORD dwSize); LONG FAR PASCAL CompressGetSize(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut); LONG FAR PASCAL CompressEnd(INSTINFO * lpinst); LONG NEAR PASCAL DecompressGetFormat(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut); LONG NEAR PASCAL DecompressGetPalette(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut); LONG NEAR PASCAL DecompressBegin(INSTINFO * pinst, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, LPVOID pSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, LPVOID pDst, int xDst, int yDst, int dxDst, int dyDst); LONG NEAR PASCAL DecompressQuery(INSTINFO * pinst, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, LPVOID pSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, LPVOID pDst, int xDst, int yDst, int dxDst, int dyDst); LONG NEAR PASCAL Decompress(INSTINFO * pinst, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, LPVOID pSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, LPVOID pDst, int xDst, int yDst, int dxDst, int dyDst); LONG NEAR PASCAL DecompressEnd(INSTINFO * pinst); LONG NEAR PASCAL DrawQuery(INSTINFO * pinst,ICDRAWBEGIN FAR *icinfo, DWORD dwSize); LONG NEAR PASCAL DrawBegin(INSTINFO * pinst,ICDRAWBEGIN FAR *icinfo, DWORD dwSize); LONG NEAR PASCAL Draw(INSTINFO * pinst,ICDRAW FAR *icinfo, DWORD dwSize); LONG NEAR PASCAL DrawEnd(INSTINFO * pinst); #ifdef DEBUG extern void FAR CDECL dprintf(LPSTR, ...); // Allow DPF statements to span multiple lines #define DPF( _x_ ) dprintf _x_ #else #define DPF(x) #endif #ifdef DEBUG /* Assert() macros */ #define Assert(expr) _Assert((expr), __FILE__, __LINE__) #define AssertEval(expr) _Assert((expr), __FILE__, __LINE__) /* prototypes */ BOOL FAR PASCAL _Assert(BOOL fExpr, LPSTR szFile, int iLine); #else /* Assert() macros */ #define Assert(expr) (TRUE) #define AssertEval(expr) (expr) #endif