Files
Work/avifile/MOVIDATA.HPP
2024-08-07 09:12:07 -04:00

101 lines
2.1 KiB
C++

#ifndef _AVIFILE_MOVIEDATA_HPP_
#define _AVIFILE_MOVIEDATA_HPP_
#ifndef _COMMON_GLOBALDATA_HPP_
#include <common/gdata.hpp>
#endif
class MovieData : public GlobalData<BYTE>
{
public:
enum DataType{Audio,DIBCompressed,DIBUnCompressed,IV,Unknown};
MovieData(DataType dataType=Unknown);
MovieData(const MovieData &someMovieData);
MovieData(const GlobalData<BYTE> &movieData);
virtual ~MovieData();
MovieData &operator=(const MovieData &someMovieData);
MovieData &operator=(const GlobalData<BYTE> &movieData);
bool operator==(const MovieData &someMovieData)const;
DataType dataType(void)const;
void dataType(DataType dataType);
WORD streamNumber(void)const;
void streamNumber(WORD streamNumber);
private:
DataType mDataType;
WORD mStreamNumber;
};
inline
MovieData::MovieData(DataType dataType)
: mDataType(dataType), mStreamNumber(0)
{
}
inline
MovieData::MovieData(const MovieData &someMovieData)
{
*this=someMovieData;
}
inline
MovieData::MovieData(const GlobalData<BYTE> &movieData)
: mDataType(Unknown), mStreamNumber(0)
{
*this=movieData;
}
inline
MovieData::~MovieData()
{
}
inline
MovieData &MovieData::operator=(const GlobalData<BYTE> &movieData)
{
mDataType=Unknown;
mStreamNumber=0;
(GlobalData<BYTE>&)*this=movieData;
return *this;
}
inline
MovieData &MovieData::operator=(const MovieData &someMovieData)
{
dataType(someMovieData.dataType());
streamNumber(someMovieData.streamNumber());
(GlobalData<BYTE>&)*this=(GlobalData<BYTE>&)someMovieData;
return *this;
}
inline
bool MovieData::operator==(const MovieData &someMovieData)const
{
if(!(dataType()==someMovieData.dataType()))return FALSE;
if(!(streamNumber()==someMovieData.streamNumber()))return FALSE;
return (GlobalData<BYTE>&)*this==(GlobalData<BYTE>&)someMovieData;
}
inline
MovieData::DataType MovieData::dataType(void)const
{
return mDataType;
}
inline
void MovieData::dataType(DataType dataType)
{
mDataType=dataType;
}
inline
WORD MovieData::streamNumber(void)const
{
return mStreamNumber;
}
inline
void MovieData::streamNumber(WORD streamNumber)
{
mStreamNumber=streamNumber;
}
#endif