#ifndef TIIO_MOV_H #define TIIO_MOV_H #include "openquicktime.h" #include "tlevel_io.h" #include "tthread.h" class TImageWriterMov; class TImageReaderMov; bool IsQuickTimeInstalled(); class TLevelWriterMov : public TLevelWriter { public: TLevelWriterMov(const TFilePath &path, TWriterInfo *winfo); ~TLevelWriterMov(); TImageWriterP getFrameWriter(TFrameId fid); friend class TImageWriterMov; public: static TLevelWriter *create(const TFilePath &f, TWriterInfo *winfo) { return new TLevelWriterMov(f, winfo); }; void saveSoundTrack(TSoundTrack *st); }; class TLevelReaderMov : public TLevelReader { public: TLevelReaderMov(const TFilePath &path); ~TLevelReaderMov(); TImageReaderP getFrameReader(TFrameId fid); friend class TImageReaderMov; TLevelP loadInfo(); int m_IOError; private: TThread::Mutex m_mutex; short m_refNum; short m_resId; long m_depth; int m_lx, m_ly; oqt_t *m_fileMov; int m_lastFrameDecoded; public: static TLevelReader *create(const TFilePath &f) { return new TLevelReaderMov(f); }; }; //----------------------------------------------------------------------------- class TWriterInfoMov : public TWriterInfo { //friend TImageWriterMov; public: static TWriterInfo *create(const string &ext) { return new TWriterInfoMov(); } ~TWriterInfoMov() {} TWriterInfo *clone() const { return new TWriterInfoMov(); } private: TWriterInfoMov() {} TWriterInfoMov(const TWriterInfoMov &); TWriterInfoMov &operator=(const TWriterInfoMov &); // not implemented }; #endif //TIIO_MOV_H