crwfile.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __CRWFILE_H_
00025 #define __CRWFILE_H_
00026
00027 #include <libopenraw++/rawfile.h>
00028
00029 #include "rawfilefactory.h"
00030
00031 namespace OpenRaw {
00032
00033 class Thumbnail;
00034
00035 namespace IO {
00036 class File;
00037 }
00038
00039 namespace Internals {
00040 class CIFFContainer;
00041
00042 class CRWFile
00043 : public OpenRaw::RawFile
00044 {
00045 public:
00046 static RawFile *factory(IO::Stream *);
00047 CRWFile(IO::Stream *);
00048 virtual ~CRWFile();
00049
00050 protected:
00051
00052
00053 virtual ::or_error _enumThumbnailSizes(std::vector<uint32_t> &list);
00054
00055 virtual ::or_error _getThumbnail(uint32_t size, Thumbnail & thumbnail);
00056
00057 virtual ::or_error _getRawData(RawData & data, uint32_t options);
00058 virtual MetaValue *_getMetaValue(int32_t meta_index);
00059
00060 virtual void _identifyId();
00061 private:
00062 CRWFile(const CRWFile&);
00063 CRWFile & operator=(const CRWFile&);
00064
00065 IO::Stream *m_io;
00066 CIFFContainer *m_container;
00067 uint32_t m_x;
00068 uint32_t m_y;
00069
00070 static const RawFile::camera_ids_t s_def[];
00071 };
00072 }
00073
00074 }
00075
00076 #endif