MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
lti_rawImageReader.h
Go to the documentation of this file.
00001 /* $Id$ */
00002 /* //////////////////////////////////////////////////////////////////////////
00003 //                                                                         //
00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue,   //
00005 // Suite 200, Seattle, WA 98104.  Unauthorized use or distribution         //
00006 // prohibited.  Access to and use of this code is permitted only under     //
00007 // license from LizardTech, Inc.  Portions of the code are protected by    //
00008 // US and foreign patents and other filings. All Rights Reserved.          //
00009 //                                                                         //
00011 /* PUBLIC */
00012 
00013 #ifndef LTIRAWIMAGEREADER_H
00014 #define LTIRAWIMAGEREADER_H
00015 
00016 // lt_lib_mrsid_core
00017 #include "lti_geoImageReader.h"
00018 
00019 
00020 LT_BEGIN_NAMESPACE(LizardTech)
00021 
00022 
00023 
00030 class LTIRawImageReader : public LTIGeoImageReader
00031 {
00032    LTI_REFERENCE_COUNTED_BOILERPLATE(LTIRawImageReader);
00033 public:
00047    LT_STATUS initialize(LTIOStreamInf* stream,
00048                         const LTIPixel& pixelProps,
00049                         lt_uint32 width,
00050                         lt_uint32 height,
00051                         bool useWorldFile = true);
00052 
00066    LT_STATUS initialize(const LTFileSpec& fileSpec,
00067                         const LTIPixel& pixelProps,
00068                         lt_uint32 width,
00069                         lt_uint32 height,
00070                         bool useWorldFile = true);
00071 
00085    LT_STATUS initialize(const char* file,
00086                         const LTIPixel& pixelProps,
00087                         lt_uint32 width,
00088                         lt_uint32 height,
00089                         bool useWorldFile = true);
00090 
00091 
00099 
00114    void setStreamOwnership(bool takeOwnership);
00115 
00130    void setRowBytes(lt_uint32 rowBytes);
00131 
00143    void setLayout(LTILayout layout);
00144 
00159    void setSkipBytes(lt_int64 leadingBytes, lt_int64 trailingBytes = 0);
00160 
00170    void setByteOrder(LTIEndian byteOrder);
00171 
00174 protected:
00175    LT_STATUS decodeBegin(const LTIPixel &pixelProps,
00176                          const LTIScene &fullScene);
00177    LT_STATUS decodeStrip(LTISceneBuffer &stripBuffer,
00178                          const LTIScene &stripScene);
00179    LT_STATUS decodeEnd(void);
00180 
00181    const char *getSourceName(void) const;
00182 
00183 protected:
00184    LTFileSpec* m_fileSpec;
00185 
00186 private:
00187    LTIOStreamInf* m_stream;
00188    bool m_ownsStream;
00189    lt_int64 m_fileSize;
00190    lt_uint32 m_rowBytes;
00191    LTILayout m_layout;
00192    lt_int64 m_leadingSkipBytes;
00193    lt_int64 m_trailingSkipBytes;
00194    LTIEndian m_byteOrder;
00195 
00196 };
00197 
00198 
00199 LT_END_NAMESPACE(LizardTech)
00200 
00201 
00202 #endif // LTIRAWIMAGEREADER_H