22 #ifndef OR_INTERNALS_ORFFILE_H_
23 #define OR_INTERNALS_ORFFILE_H_
29 #include <libopenraw/consts.h>
31 #include "rawfile.hpp"
34 #include "ifdfile.hpp"
35 #include "io/stream.hpp"
43 class OrfFile :
public IfdFile {
45 static RawFile *factory(
const IO::Stream::Ptr &);
46 OrfFile(
const IO::Stream::Ptr &);
49 OrfFile(
const OrfFile &) =
delete;
50 OrfFile &operator=(
const OrfFile &) =
delete;
52 enum { ORF_COMPRESSION = 0x10000 };
55 virtual IfdDir::Ref _locateCfaIfd()
override;
56 virtual IfdDir::Ref _locateMainIfd()
override;
58 ::or_error _enumThumbnailSizes(std::vector<uint32_t> &list)
override;
59 virtual ::or_error _getRawData(RawData &data, uint32_t options)
override;
60 virtual uint32_t _translateCompressionType(
61 IFD::TiffCompress tiffCompression)
override;
64 static RawFile::TypeId _typeIdFromModel(
const std::string &model);
66 static const IfdFile::camera_ids_t s_def[];