20#ifndef MAKERNOTE_INT_HPP_
21#define MAKERNOTE_INT_HPP_
25#include "tifffwd_int.hpp"
26#include "tags_int.hpp"
47 std::string
readExiv2Config(
const std::string& section,
const std::string& value,
const std::string& def);
106 const std::string&
make,
136 virtual bool read(
const byte* pData,
147 virtual uint32_t
size()
const =0;
167 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
184 virtual bool read(
const byte* pData,
190 virtual uint32_t
size()
const;
199 static const byte signature_[];
215 virtual bool read(
const byte* pData,
221 virtual uint32_t
size()
const;
224 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
231 static const byte signature_[];
247 virtual bool read(
const byte* pData,
253 virtual uint32_t
size()
const;
256 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
263 static const byte signature_[];
279 virtual bool read(
const byte* pData,
286 virtual uint32_t
size()
const;
290 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
297 static const byte signature_[];
315 virtual bool read(
const byte* pData,
321 virtual uint32_t
size()
const;
331 static const byte signature_[];
347 virtual bool read(
const byte* pData,
354 virtual uint32_t
size()
const;
358 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
367 static const byte signature_[];
383 virtual bool read(
const byte* pData,
389 virtual uint32_t
size()
const;
399 static const byte signature_[];
415 virtual bool read(
const byte* pData,
421 virtual uint32_t
size()
const;
424 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
431 static const byte signature_[];
447 virtual bool read(
const byte* pData,
453 virtual uint32_t
size()
const;
462 static const byte signature_[];
476 virtual bool read(
const byte* pData,
482 virtual uint32_t
size()
const;
484 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
501 virtual bool read(
const byte* pData,
507 virtual uint32_t
size()
const;
517 static const byte signature1_[];
518 static const byte signature2_[];
534 virtual bool read(
const byte* pData,
540 virtual uint32_t
size()
const;
550 static const byte signature_[];
566 virtual bool read(
const byte* pData,
572 virtual uint32_t
size()
const;
583 static const byte signature_[];
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition: types.hpp:193
Simple IO wrapper to ensure that the header is only written if there is any other data at all.
Definition: tiffcomposite_int.hpp:121
Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directori...
Definition: tiffcomposite_int.hpp:171
TIFF makernote factory for concrete TIFF makernotes.
Definition: makernote_int.hpp:91
~TiffMnCreator()
Prevent destruction (needed if used as a policy class)
Definition: makernote_int.hpp:120
static TiffComponent * create(uint16_t tag, IfdId group, const std::string &make, const byte *pData, uint32_t size, ByteOrder byteOrder)
Create the Makernote for camera make and details from the makernote entry itself if needed....
Definition: makernote_int.cpp:167
int nikonSelector(uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const)
Function to select cfg + def of a Nikon complex binary array.
Definition: makernote_int.cpp:1258
TiffComponent * newSigmaMn(uint16_t tag, IfdId group, IfdId mnGroup, const byte *, uint32_t size, ByteOrder)
Function to create a Sigma makernote.
Definition: makernote_int.cpp:1119
TiffComponent * newPanasonicMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Panasonic makernote.
Definition: makernote_int.cpp:1052
TiffComponent *(* NewMnFct2)(uint16_t tag, IfdId group, IfdId mnGroup)
Type for a pointer to a function creating a makernote (group)
Definition: makernote_int.hpp:62
TiffComponent *(* NewMnFct)(uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
Type for a pointer to a function creating a makernote (image)
Definition: makernote_int.hpp:54
TiffComponent * newFujiMn(uint16_t tag, IfdId group, IfdId mnGroup, const byte *, uint32_t size, ByteOrder)
Function to create a Fujifilm makernote.
Definition: makernote_int.cpp:977
TiffComponent * newSony2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Sony2 makernote.
Definition: makernote_int.cpp:1164
TiffComponent * newOlympus2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Olympus II makernote.
Definition: makernote_int.cpp:951
TiffComponent * newFujiMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Fujifilm makernote.
Definition: makernote_int.cpp:989
int sonyCsSelector(uint16_t, const byte *, uint32_t, TiffComponent *const pRoot)
Function to select cfg + def of the Sony Camera Settings complex binary array.
Definition: makernote_int.cpp:1312
TiffComponent * newSonyMn(uint16_t tag, IfdId group, IfdId, const byte *pData, uint32_t size, ByteOrder)
Function to create a Sony makernote.
Definition: makernote_int.cpp:1138
TiffComponent * newPanasonicMn(uint16_t tag, IfdId group, IfdId mnGroup, const byte *, uint32_t size, ByteOrder)
Function to create a Panasonic makernote.
Definition: makernote_int.cpp:1040
int sony2010eSelector(uint16_t, const byte *, uint32_t, TiffComponent *const pRoot)
Function to select cfg + def of the Sony 2010 Miscellaneous Information complex binary array.
Definition: makernote_int.cpp:1323
TiffComponent * newNikon3Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Nikon3 makernote.
Definition: makernote_int.cpp:1033
TiffComponent * newOMSystemMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a OM Digital Solutions makernote.
Definition: makernote_int.cpp:970
DataBuf nikonCrypt(uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
Encrypt and decrypt Nikon data.
Definition: makernote_int.cpp:1274
TiffComponent * newSigmaMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Sigma makernote.
Definition: makernote_int.cpp:1131
TiffComponent * newOlympusMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Olympus makernote.
Definition: makernote_int.cpp:944
int nikonAf2Selector(uint16_t tag, const byte *, uint32_t size, TiffComponent *const)
Function to select cfg + def of a Nikon complex binary array.
Definition: makernote_int.cpp:1265
std::string getExiv2ConfigPath()
Determine the path to the Exiv2 configuration file.
Definition: makernote_int.cpp:94
TiffComponent * newCasioMn(uint16_t tag, IfdId group, IfdId, const byte *pData, uint32_t size, ByteOrder)
Function to create a Casio2 makernote.
Definition: makernote_int.cpp:1171
TiffComponent * newNikon2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Nikon2 makernote.
Definition: makernote_int.cpp:1026
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:46
TiffComponent * newSamsungMn(uint16_t tag, IfdId group, IfdId mnGroup, const byte *pData, uint32_t size, ByteOrder)
Function to create a Samsung makernote.
Definition: makernote_int.cpp:1090
TiffComponent * newSamsungMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Samsung makernote.
Definition: makernote_int.cpp:1112
TiffComponent * newPentaxMn(uint16_t tag, IfdId group, IfdId, const byte *pData, uint32_t size, ByteOrder)
Function to create an Pentax makernote.
Definition: makernote_int.cpp:1059
std::string readExiv2Config(const std::string §ion, const std::string &value, const std::string &def)
Read value from Exiv2 configuration file.
Definition: makernote_int.cpp:113
TiffComponent * newNikonMn(uint16_t tag, IfdId group, IfdId, const byte *pData, uint32_t size, ByteOrder)
Function to create a Nikon makernote. This will create the appropriate Nikon 1, 2 or 3 makernote,...
Definition: makernote_int.cpp:996
TiffComponent * newIfdMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
Definition: makernote_int.cpp:919
TiffComponent * newSony1Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Sony1 makernote.
Definition: makernote_int.cpp:1157
TiffComponent * newOMSystemMn(uint16_t tag, IfdId group, IfdId mnGroup, const byte *, uint32_t size, ByteOrder)
Function to create an OM Digital Solutions makernote.
Definition: makernote_int.cpp:958
TiffComponent * newPentaxDngMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Pentax DNG makernote.
Definition: makernote_int.cpp:1083
TiffComponent * newCasio2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Casio2 makernote.
Definition: makernote_int.cpp:1187
TiffComponent * newOlympusMn(uint16_t tag, IfdId group, IfdId, const byte *pData, uint32_t size, ByteOrder)
Function to create an Olympus makernote.
Definition: makernote_int.cpp:926
TiffComponent * newIfdMn(uint16_t tag, IfdId group, IfdId mnGroup, const byte *, uint32_t size, ByteOrder)
Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
Definition: makernote_int.cpp:907
TiffComponent * newPentaxMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Pentax makernote.
Definition: makernote_int.cpp:1076
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
EXIV2API ExifData::const_iterator make(const ExifData &ed)
Return the camera make.
Definition: easyaccess.cpp:437
ByteOrder
Type to express the byte order (little or big endian)
Definition: types.hpp:102
Makernote registry structure.
Definition: makernote_int.hpp:67
bool operator==(const std::string &key) const
Compare a TiffMnRegistry structure with a key being the make string from the image....
Definition: makernote_int.cpp:155
NewMnFct2 newMnFct2_
Makernote create function (group)
Definition: makernote_int.hpp:85
IfdId mnGroup_
Group identifier.
Definition: makernote_int.hpp:83
NewMnFct newMnFct_
Makernote create function (image)
Definition: makernote_int.hpp:84
const char * make_
Camera make.
Definition: makernote_int.hpp:82