71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#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
|