#ifndef __Plugin_Zim__ #define __Plugin_Zim__ class CompressedImageEncoder : public ImageEncoder { public: CompressedImageEncoder(String (*compress)(String data), String (*decompress)(String data), int magic_tag, int save_bpp); virtual ~CompressedImageEncoder(); virtual void SaveRaw(Stream& stream, const Vector& pages); virtual Array LoadRaw(Stream& stream, const Vector& page_index); virtual Array InfoRaw(Stream& stream); private: String (*compress)(String data); String (*decompress)(String data); int magic_tag; }; class ZImageEncoder : public CompressedImageEncoder { public: ZImageEncoder(int save_bpp = 0); virtual ~ZImageEncoder(); static One New() { return new ZImageEncoder; } }; class BZImageEncoder : public CompressedImageEncoder { public: BZImageEncoder(int save_bpp = 0); virtual ~BZImageEncoder(); static One New() { return new BZImageEncoder; } }; #endif//__Plugin_Zim__