227 lines
5.0 KiB
C++
227 lines
5.0 KiB
C++
#ifndef _AVIFILE_ICMDECOMPRESS_HPP_
|
|
#define _AVIFILE_ICMDECOMPRESS_HPP_
|
|
#ifndef _AVIFILE_AVIDEFS_HPP_
|
|
#include <avifile/avidefs.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_AVIBITMAP_HPP_
|
|
#include <avifile/avibmp.hpp>
|
|
#endif
|
|
#ifndef _AVIFILE_MOVIEDATA_HPP_
|
|
#include <avifile/movidata.hpp>
|
|
#endif
|
|
|
|
class ICMDecompress : private ICDECOMPRESS
|
|
{
|
|
public:
|
|
enum Flags{HurryUp=ICDECOMPRESS_HURRYUP,Update=ICDECOMPRESS_UPDATE,
|
|
PreRoll=ICDECOMPRESS_PREROLL,NullFrame=ICDECOMPRESS_NULLFRAME,
|
|
NotKeyFrame=ICDECOMPRESS_NOTKEYFRAME};
|
|
ICMDecompress(void);
|
|
ICMDecompress(const ICMDecompress &someICMDecompress);
|
|
virtual ~ICMDecompress();
|
|
ICMDecompress &operator=(const ICMDecompress &someICMDecompress);
|
|
WORD operator==(const ICMDecompress &someICMDecompress);
|
|
DWORD flags(void)const;
|
|
void flags(DWORD flags);
|
|
LPBITMAPINFOHEADER srcBitmapInfoHeaderPtr(void)const;
|
|
void srcBitmapInfoHeaderPtr(LPBITMAPINFOHEADER lpBitmapInfoHeader);
|
|
void srcBitmapInfoPtr(AVIBitmap &someAVIBitmap);
|
|
LPBITMAPINFOHEADER dstBitmapInfoHeaderPtr(void)const;
|
|
void dstBitmapInfoHeaderPtr(LPBITMAPINFOHEADER lpBitmapInfoHeader);
|
|
void dstBitmapInfoPtr(AVIBitmap &someAVIBitmap);
|
|
LPVOID srcInputPtr(void)const;
|
|
void srcInputPtr(LPVOID lpDataBuffer);
|
|
void srcInputPtr(MovieData &someMovieData);
|
|
LPVOID dstInputPtr(void)const;
|
|
void dstInputPtr(LPVOID lpDataBuffer);
|
|
void dstInputPtr(MovieData &someMovieData);
|
|
DWORD chunkID(void)const;
|
|
void chunkID(DWORD chunkID);
|
|
WORD hasHurryUp(void)const;
|
|
WORD hasUpdate(void)const;
|
|
WORD hasPreRoll(void)const;
|
|
WORD hasNullFrame(void)const;
|
|
WORD hasNotKeyFrame(void)const;
|
|
static LONG size(void);
|
|
private:
|
|
};
|
|
|
|
inline
|
|
ICMDecompress::ICMDecompress(void)
|
|
{
|
|
flags(0L);
|
|
srcBitmapInfoHeaderPtr((LPBITMAPINFOHEADER)0);
|
|
dstBitmapInfoHeaderPtr((LPBITMAPINFOHEADER)0);
|
|
srcInputPtr((LPVOID)0);
|
|
dstInputPtr((LPVOID)0);
|
|
chunkID(0L);
|
|
}
|
|
|
|
inline
|
|
ICMDecompress::ICMDecompress(const ICMDecompress &someICMDecompress)
|
|
{
|
|
*this=someICMDecompress;
|
|
}
|
|
|
|
inline
|
|
ICMDecompress::~ICMDecompress()
|
|
{
|
|
}
|
|
|
|
inline
|
|
ICMDecompress &ICMDecompress::operator=(const ICMDecompress &someICMDecompress)
|
|
{
|
|
flags(someICMDecompress.flags());
|
|
srcBitmapInfoHeaderPtr(someICMDecompress.srcBitmapInfoHeaderPtr());
|
|
dstBitmapInfoHeaderPtr(someICMDecompress.dstBitmapInfoHeaderPtr());
|
|
srcInputPtr(someICMDecompress.srcInputPtr());
|
|
dstInputPtr(someICMDecompress.dstInputPtr());
|
|
chunkID(someICMDecompress.chunkID());
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
WORD ICMDecompress::operator==(const ICMDecompress &someICMDecompress)
|
|
{
|
|
return (flags()==someICMDecompress.flags()&&
|
|
srcBitmapInfoHeaderPtr()==someICMDecompress.srcBitmapInfoHeaderPtr()&&
|
|
dstBitmapInfoHeaderPtr()==someICMDecompress.dstBitmapInfoHeaderPtr()&&
|
|
srcInputPtr()==someICMDecompress.srcInputPtr()&&
|
|
dstInputPtr()==someICMDecompress.dstInputPtr()&&
|
|
chunkID()==someICMDecompress.chunkID());
|
|
}
|
|
|
|
inline
|
|
DWORD ICMDecompress::flags(void)const
|
|
{
|
|
return ICDECOMPRESS::dwFlags;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::flags(DWORD flags)
|
|
{
|
|
ICDECOMPRESS::dwFlags=flags;
|
|
}
|
|
|
|
inline
|
|
LPBITMAPINFOHEADER ICMDecompress::srcBitmapInfoHeaderPtr(void)const
|
|
{
|
|
return ICDECOMPRESS::lpbiInput;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::srcBitmapInfoHeaderPtr(LPBITMAPINFOHEADER lpBitmapInfoHeader)
|
|
{
|
|
ICDECOMPRESS::lpbiInput=lpBitmapInfoHeader;
|
|
}
|
|
|
|
inline
|
|
LPBITMAPINFOHEADER ICMDecompress::dstBitmapInfoHeaderPtr(void)const
|
|
{
|
|
return ICDECOMPRESS::lpbiOutput;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::dstBitmapInfoHeaderPtr(LPBITMAPINFOHEADER lpBitmapInfoHeader)
|
|
{
|
|
ICDECOMPRESS::lpbiOutput=lpBitmapInfoHeader;
|
|
}
|
|
|
|
inline
|
|
LPVOID ICMDecompress::srcInputPtr(void)const
|
|
{
|
|
return ICDECOMPRESS::lpInput;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::srcInputPtr(LPVOID lpDataBuffer)
|
|
{
|
|
ICDECOMPRESS::lpInput=lpDataBuffer;
|
|
}
|
|
|
|
inline
|
|
LPVOID ICMDecompress::dstInputPtr(void)const
|
|
{
|
|
return ICDECOMPRESS::lpOutput;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::dstInputPtr(LPVOID lpDataBuffer)
|
|
{
|
|
ICDECOMPRESS::lpOutput=lpDataBuffer;
|
|
}
|
|
|
|
inline
|
|
DWORD ICMDecompress::chunkID(void)const
|
|
{
|
|
return ICDECOMPRESS::ckid;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::chunkID(DWORD chunkID)
|
|
{
|
|
ICDECOMPRESS::ckid=chunkID;
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::dstBitmapInfoPtr(AVIBitmap &someAVIBitmap)
|
|
{
|
|
ICDECOMPRESS::lpbiOutput=&((BITMAPINFOHEADER&)someAVIBitmap);
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::srcBitmapInfoPtr(AVIBitmap &someAVIBitmap)
|
|
{
|
|
ICDECOMPRESS::lpbiInput=&((BITMAPINFOHEADER&)someAVIBitmap);
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::srcInputPtr(MovieData &someMovieData)
|
|
{
|
|
ICDECOMPRESS::lpInput=(BYTE*)&someMovieData[0];
|
|
}
|
|
|
|
inline
|
|
void ICMDecompress::dstInputPtr(MovieData &someMovieData)
|
|
{
|
|
ICDECOMPRESS::lpOutput=(BYTE*)&someMovieData[0];
|
|
}
|
|
|
|
inline
|
|
WORD ICMDecompress::hasHurryUp(void)const
|
|
{
|
|
return flags()&HurryUp;
|
|
}
|
|
|
|
inline
|
|
WORD ICMDecompress::hasUpdate(void)const
|
|
{
|
|
return flags()&Update;
|
|
}
|
|
|
|
inline
|
|
WORD ICMDecompress::hasPreRoll(void)const
|
|
{
|
|
return flags()&PreRoll;
|
|
}
|
|
|
|
inline
|
|
WORD ICMDecompress::hasNullFrame(void)const
|
|
{
|
|
return flags()&NullFrame;
|
|
}
|
|
|
|
inline
|
|
WORD ICMDecompress::hasNotKeyFrame(void)const
|
|
{
|
|
return flags()&NotKeyFrame;
|
|
}
|
|
|
|
inline
|
|
LONG ICMDecompress::size(void)
|
|
{
|
|
return sizeof(ICDECOMPRESS);
|
|
}
|
|
#endif
|
|
|