00001 00036 #ifndef INC_SPATMOD_IMAGESOURCEJPEG_H 00037 #define INC_SPATMOD_IMAGESOURCEJPEG_H 00038 00039 #ifndef INC_SPATMOD_IMAGESOURCEFILE_H 00040 #include <spatmod/imagesourcefile.h> 00041 #endif 00042 00043 #ifndef GENERATING_DOXYGEN_OUTPUT 00044 class JPEGEXT; 00045 #endif 00046 00047 namespace SPATMOD { 00048 namespace IMAGE { 00049 00050 //===================================================================================================================== 00051 00053 class SOURCE_JPEG : public SOURCE_FILE { 00054 public: 00055 00057 explicit SOURCE_JPEG ( 00058 const FILEPATH& FilePath 00059 ); 00060 00063 explicit SOURCE_JPEG ( 00064 SIMPLE_ARRAY<UINT8>& MemBuffer 00065 ); 00066 00069 SOURCE_JPEG ( 00070 UINT8*& MemBuffer, 00071 UINT32 BufferSize 00072 ); 00073 00075 virtual ~SOURCE_JPEG (); 00076 00077 private: 00078 #ifndef GENERATING_DOXYGEN_OUTPUT 00079 JPEGEXT *m_pReader; 00080 bool m_DoingPull; 00081 SIMPLE_ARRAY<UINT8> m_ReadBuffer; 00082 00083 // BASE overrides. 00084 virtual ERRVALUE v_GetDimensions (DIMENSIONS& dimensions, double zoom) const; 00085 virtual ZOOMABILITY v_GetZoomAbility (SIMPLE_ARRAY<double>& ZoomsAllowed) const; 00086 virtual float v_QueryIterator (const SECTION_ITERATOR& iterator) const; 00087 00088 // STAGE overrides. 00089 virtual void v_GetMetadataThisOnly (MISTRING& result, METADATACONTENT content, METADATAFORMAT format) const; 00090 virtual ERRVALUE v_Initialize (); 00091 virtual ERRVALUE v_PullBegin (const SECTION_ITERATOR& iterator); 00092 virtual ERRVALUE v_PullEnd (); 00093 virtual ERRVALUE v_PullSubSection (const SECTION& SubSection, BUFFER& buffer); 00094 00095 // Unimplemented 00096 SOURCE_JPEG (const SOURCE_JPEG&); 00097 SOURCE_JPEG& operator= (const SOURCE_JPEG&); 00098 #endif // GENERATING_DOXYGEN_OUTPUT 00099 00100 }; 00101 00102 //===================================================================================================================== 00103 00104 } // End namespace IMAGE 00105 } // End namespace SPATMOD 00106 00107 #endif // INC_SPATMOD_IMAGESOURCEJPEG_H 00108
1.6.1