| |
| |
| #ifndef TIIO_INCLUDED |
| #define TIIO_INCLUDED |
| |
| #include "tcommon.h" |
| #include <string> |
| #include <QStringList> |
| #include "timageinfo.h" |
| |
| #undef DVAPI |
| #undef DVVAR |
| |
| #ifdef TNZCORE_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| class TVectorImage; |
| class TPropertyGroup; |
| |
| namespace Tiio |
| { |
| |
| |
| |
| enum RowOrder { BOTTOM2TOP, |
| TOP2BOTTOM }; |
| |
| |
| |
| |
| |
| class DVAPI Exception |
| { |
| }; |
| |
| |
| |
| class DVAPI Reader |
| { |
| |
| protected: |
| TImageInfo m_info; |
| |
| public: |
| Reader(); |
| virtual ~Reader(); |
| |
| virtual void open(FILE *file) = 0; |
| |
| const TImageInfo &getImageInfo() const { return m_info; } |
| |
| virtual TPropertyGroup *getProperties() const { return 0; } |
| |
| void readLine(char *buffer) { readLine(buffer, 0, m_info.m_lx - 1, 1); } |
| void readLine(short *buffer) { readLine(buffer, 0, m_info.m_lx - 1, 1); } |
| virtual void readLine(char *buffer, int x0, int x1, int shrink) = 0; |
| virtual void readLine(short *, int, int, int) { assert(false); } |
| |
| |
| virtual int skipLines(int lineCount) = 0; |
| |
| virtual RowOrder getRowOrder() const { return BOTTOM2TOP; } |
| virtual bool read16BitIsEnabled() const { return false; } |
| |
| |
| |
| |
| |
| virtual void enable16BitRead(bool) {} |
| |
| virtual void getTzpPaletteColorNames(map<int, pair<string, string>> &pltColorNames) const { assert(false); } |
| |
| private: |
| |
| Reader(const Reader &); |
| Reader &operator=(const Reader &); |
| }; |
| |
| |
| |
| class DVAPI Writer |
| { |
| |
| protected: |
| TImageInfo m_info; |
| TPropertyGroup *m_properties; |
| static int m_bwThreshold; |
| |
| public: |
| static void getSupportedFormats(QStringList &formats, bool onlyRenderFormats); |
| static void setBlackAndWhiteThreshold(int threshold) { m_bwThreshold = threshold; } |
| |
| Writer(); |
| virtual ~Writer(); |
| |
| virtual void open(FILE *file, const TImageInfo &inafo) = 0; |
| |
| TPropertyGroup *getProperties() { return m_properties; } |
| |
| virtual void writeLine(char *buffer) = 0; |
| virtual void writeLine(short *) { assert(false); } |
| |
| virtual void flush() {} |
| |
| virtual RowOrder getRowOrder() const { return BOTTOM2TOP; } |
| virtual bool write64bitSupported() const { return false; } |
| |
| void setProperties(TPropertyGroup *properties); |
| |
| private: |
| |
| Writer(const Writer &); |
| Writer &operator=(const Writer &); |
| }; |
| |
| |
| |
| class DVAPI VectorReader |
| { |
| public: |
| VectorReader() {} |
| virtual ~VectorReader() {} |
| |
| virtual void open(FILE *file) = 0; |
| |
| virtual TVectorImage *read() = 0; |
| }; |
| |
| |
| |
| class DVAPI VectorWriter |
| { |
| public: |
| VectorWriter() {} |
| virtual ~VectorWriter() {} |
| |
| virtual void open(FILE *file) = 0; |
| virtual void write(TVectorImage *) = 0; |
| }; |
| |
| |
| |
| typedef Reader *ReaderMaker(); |
| typedef Writer *WriterMaker(); |
| |
| typedef VectorReader *VectorReaderMaker(); |
| typedef VectorWriter *VectorWriterMaker(); |
| |
| |
| |
| DVAPI Tiio::Reader *makeReader(std::string ext); |
| DVAPI Tiio::Writer *makeWriter(std::string ext); |
| |
| DVAPI Tiio::VectorReader *makeVectorReader(std::string ext); |
| DVAPI Tiio::VectorWriter *makeVectorWriter(std::string ext); |
| |
| DVAPI TPropertyGroup *makeWriterProperties(std::string ext); |
| |
| |
| |
| DVAPI void defineReaderMaker(const char *ext, Tiio::ReaderMaker *fn); |
| DVAPI void defineWriterMaker(const char *ext, Tiio::WriterMaker *fn, bool isRenderFormat); |
| |
| DVAPI void defineVectorReaderMaker(const char *ext, Tiio::VectorReaderMaker *fn); |
| DVAPI void defineVectorWriterMaker(const char *ext, Tiio::VectorWriterMaker *fn, bool isRenderFormat); |
| |
| DVAPI void defineWriterProperties(const char *ext, TPropertyGroup *); |
| |
| DVAPI bool isQuicktimeInstalled(); |
| |
| |
| |
| } |
| |
| #endif |
| |