Files
Work/codec/FOURCC.HPP
2024-08-07 09:12:07 -04:00

93 lines
1.4 KiB
C++

#ifndef _AVIFILE_FOURCC_HPP_
#define _AVIFILE_FOURCC_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _AVIFILE_AVIDEFS_HPP_
#include <avifile/avidefs.hpp>
#endif
class FOURCC
{
public:
FOURCC(void);
FOURCC(String driverName);
FOURCC(DWORD fccValue);
FOURCC(const FOURCC &someFOURCC);
virtual ~FOURCC();
FOURCC &operator=(const FOURCC &someFOURCC);
WORD operator==(const FOURCC &someFOURCC)const;
String toString(void)const;
DWORD toDWORD(void)const;
operator DWORD(void)const;
private:
DWORD makeFOURCC(String stringFOURCC)const;
String makeFOURCCString(void)const;
VFWFOURCC mFOURCC;
};
inline
FOURCC::FOURCC(void)
: mFOURCC(0)
{
}
inline
FOURCC::FOURCC(const FOURCC &someFOURCC)
{
*this=someFOURCC;
}
inline
FOURCC::FOURCC(String stringFOURCC)
: mFOURCC(makeFOURCC(stringFOURCC))
{
}
inline
FOURCC::FOURCC(DWORD fccValue)
: mFOURCC(fccValue)
{
}
inline
FOURCC::~FOURCC()
{
}
inline
String FOURCC::toString(void)const
{
return makeFOURCCString();
}
inline
FOURCC::operator DWORD(void)const
{
return mFOURCC;
}
inline
DWORD FOURCC::toDWORD(void)const
{
return mFOURCC;
}
inline
FOURCC &FOURCC::operator=(const FOURCC &someFOURCC)
{
mFOURCC=(DWORD)someFOURCC;
return *this;
}
inline
WORD FOURCC::operator==(const FOURCC &someFOURCC)const
{
return (DWORD)*this==(DWORD)someFOURCC;
}
#endif