24 #ifndef LIBOPENRAWPP_RAWFILE_H_ 25 #define LIBOPENRAWPP_RAWFILE_H_ 30 #include <libopenraw/rawfile.h> 45 struct BuiltinColourMatrix;
53 typedef ::or_rawfile_type Type;
54 typedef ::or_rawfile_typeid TypeId;
64 static const char **fileExtensions();
71 static RawFile *newRawFile(
const char*_filename,
72 Type _typeHint = OR_RAWFILE_TYPE_UNKNOWN);
80 static RawFile *newRawFileFromMemory(
const uint8_t *buffer, uint32_t len,
81 Type _typeHint = OR_RAWFILE_TYPE_UNKNOWN);
98 const std::vector<uint32_t> & listThumbnailSizes(
void);
104 ::or_error getThumbnail(uint32_t size,
Thumbnail & thumbnail);
111 ::or_error getRawData(
RawData & rawdata, uint32_t options);
118 ::or_error getRenderedImage(
BitmapData & bitmapdata, uint32_t options);
122 int32_t getOrientation();
127 uint32_t colourMatrixSize();
136 ::or_error getColourMatrix1(
double* matrix, uint32_t & size);
137 ::or_error getColourMatrix2(
double* matrix, uint32_t & size);
142 ExifLightsourceValue getCalibrationIlluminant1();
143 ExifLightsourceValue getCalibrationIlluminant2();
145 const MetaValue *getMetaValue(int32_t meta_index);
149 const uint32_t type_id;
158 void _setTypeId(TypeId _type_id);
162 TypeId _typeId()
const;
171 virtual ::or_error _enumThumbnailSizes(std::vector<uint32_t> &list) = 0;
180 virtual ::or_error _getThumbnail(uint32_t size,
Thumbnail & thumbnail);
189 virtual ::or_error _getRawData(
RawData & data, uint32_t options) = 0;
194 virtual ::or_error _getColourMatrix(uint32_t index,
double* matrix, uint32_t & size);
195 virtual ExifLightsourceValue _getCalibrationIlluminant(uint16_t index);
196 virtual MetaValue *_getMetaValue(int32_t ) = 0;
198 TypeId _typeIdFromModel(
const std::string& make,
const std::string & model);
199 TypeId _typeIdFromMake(
const std::string& make);
204 virtual void _identifyId() = 0;
216 static Type identify(
const char*_filename);
217 static ::or_error identifyBuffer(
const uint8_t* buff,
size_t len,
221 const std::string& value);
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard. I guess it failed.