25 #include "makernotedir.hpp"
26 #include "io/stream.hpp"
27 #include "ifdfilecontainer.hpp"
42 LOGDBG1(
"createMakerNote()\n");
44 auto file = container.file();
45 file->seek(
offset, SEEK_SET);
46 file->read(&data, 18);
48 if (memcmp(
"Nikon\0", data, 6) == 0) {
50 return std::make_shared<MakerNoteDir>(
53 else if (data[6] == 2) {
55 return std::make_shared<MakerNoteDir>(
59 return std::make_shared<MakerNoteDir>(
64 if (memcmp(
"OLYMPUS\0", data, 8) == 0) {
65 return std::make_shared<MakerNoteDir>(
69 if (memcmp(
"OLYMP\0", data, 6) == 0) {
70 return std::make_shared<MakerNoteDir>(
74 if (memcmp(
"MLT0", data + 10, 4) == 0) {
75 return std::make_shared<MakerNoteDir>(
79 return std::make_shared<MakerNoteDir>(
offset, container,
offset,
"");
82 MakerNoteDir::MakerNoteDir(off_t _offset,
85 const std::string &
id)
86 :
MakerNoteDir(
"", 0, _offset, _container, mnote_offset, id)
90 MakerNoteDir::MakerNoteDir(
const char* magic,
size_t hlen,
92 IfdFileContainer & _container,
94 const std::string &
id)
95 : IfdDir(_offset, _container)
96 , m_magic(magic ? magic :
"")
98 , m_mnote_offset(mnote_offset)
103 MakerNoteDir::~MakerNoteDir()