#ifndef _AVIFILE_MOVIEDATA_HPP_ #define _AVIFILE_MOVIEDATA_HPP_ #ifndef _COMMON_GLOBALDATA_HPP_ #include #endif class MovieData : public GlobalData { public: enum DataType{Audio,DIBCompressed,DIBUnCompressed,IV,Unknown}; MovieData(DataType dataType=Unknown); MovieData(const MovieData &someMovieData); MovieData(const GlobalData &movieData); virtual ~MovieData(); MovieData &operator=(const MovieData &someMovieData); MovieData &operator=(const GlobalData &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 &movieData) : mDataType(Unknown), mStreamNumber(0) { *this=movieData; } inline MovieData::~MovieData() { } inline MovieData &MovieData::operator=(const GlobalData &movieData) { mDataType=Unknown; mStreamNumber=0; (GlobalData&)*this=movieData; return *this; } inline MovieData &MovieData::operator=(const MovieData &someMovieData) { dataType(someMovieData.dataType()); streamNumber(someMovieData.streamNumber()); (GlobalData&)*this=(GlobalData&)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&)*this==(GlobalData&)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