 |
Exiv2
|
Go to the documentation of this file.
30 #ifndef MAKERNOTE_INT_HPP_
31 #define MAKERNOTE_INT_HPP_
145 virtual bool read(
const byte* pData,
156 virtual uint32_t
size()
const =0;
177 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
194 virtual bool read(
const byte* pData,
200 virtual uint32_t
size()
const;
209 static const byte signature_[];
225 virtual bool read(
const byte* pData,
231 virtual uint32_t
size()
const;
234 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
241 static const byte signature_[];
257 virtual bool read(
const byte* pData,
264 virtual uint32_t
size()
const;
268 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
275 static const byte signature_[];
293 virtual bool read(
const byte* pData,
299 virtual uint32_t
size()
const;
309 static const byte signature_[];
325 virtual bool read(
const byte* pData,
332 virtual uint32_t
size()
const;
336 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
345 static const byte signature_[];
361 virtual bool read(
const byte* pData,
367 virtual uint32_t
size()
const;
377 static const byte signature_[];
393 virtual bool read(
const byte* pData,
399 virtual uint32_t
size()
const;
402 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
409 static const byte signature_[];
425 virtual bool read(
const byte* pData,
431 virtual uint32_t
size()
const;
440 static const byte signature_[];
454 virtual bool read(
const byte* pData,
460 virtual uint32_t
size()
const;
462 virtual uint32_t
baseOffset(uint32_t mnOffset)
const;
479 virtual bool read(
const byte* pData,
485 virtual uint32_t
size()
const;
495 static const byte signature1_[];
496 static const byte signature2_[];
512 virtual bool read(
const byte* pData,
518 virtual uint32_t
size()
const;
528 static const byte signature_[];
544 virtual bool read(
const byte* pData,
550 virtual uint32_t
size()
const;
561 static const byte signature_[];
786 #endif // #ifndef MAKERNOTE_INT_HPP_
void accept(TiffVisitor &visitor)
Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of ...
Definition: tiffcomposite_int.cpp:887
const NikonArrayIdx nikonArrayIdx[]
Nikon binary array version lookup table.
NewMnFct newMnFct_
Makernote create function (image)
Definition: makernote_int.hpp:94
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:1235
void init(uint16_t tag, IfdId group)
Initialize the Finder for a new search.
Definition: tiffvisitor_int.cpp:124
int idx_
Index into the array set.
Definition: makernote_int.cpp:1141
byte * pData_
Pointer to the buffer, 0 if none has been allocated.
Definition: types.hpp:269
Structure for an index into the array set of complex binary arrays.
Definition: makernote_int.cpp:1121
This abstract base class provides the common functionality of an IFD directory entry and defines an e...
Definition: tiffcomposite_int.hpp:414
Internal operations on a TIFF composite tree, implemented as visitor classes.
EXIV2API ExifData::const_iterator make(const ExifData &ed)
Return the camera make.
Definition: easyaccess.cpp:428
~TiffMnCreator()
Prevent destruction (needed if used as a policy class)
Definition: makernote_int.hpp:130
TiffComponent * newCasio2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Casio2 makernote.
Definition: makernote_int.cpp:1113
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:54
Type definitions for Exiv2 and related functionality.
const char * ver_
Version string.
Definition: makernote_int.cpp:1139
TiffComponent * newFujiMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Fujifilm makernote.
Definition: makernote_int.cpp:915
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:871
TiffComponent * newNikon2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Nikon2 makernote.
Definition: makernote_int.cpp:952
TiffComponent * result() const
Return the search result. 0 if no TIFF component was found for the tag and group combination.
Definition: tiffvisitor_int.hpp:210
Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directori...
Definition: tiffcomposite_int.hpp:174
Makernote registry structure.
Definition: makernote_int.hpp:77
uint16_t tag_
Tag number of the binary array.
Definition: makernote_int.cpp:1138
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:1188
uint32_t start_
Start of the encrypted data.
Definition: makernote_int.cpp:1142
virtual long count() const =0
Return the number of components of the value.
#define EXV_COUNTOF(a)
Macro to determine the size of an array.
Definition: types.hpp:517
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:1246
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:1097
Key(uint16_t tag, const char *ver, uint32_t size)
Constructor.
Definition: makernote_int.cpp:1125
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:985
Internal TIFF parser related typedefs and forward definitions.
const Value * pValue() const
Return a const pointer to the converted value of this component.
Definition: tiffcomposite_int.hpp:476
Simple IO wrapper to ensure that the header is only written if there is any other data at all.
Definition: tiffcomposite_int.hpp:124
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:1016
TiffComponent * newNikon3Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Nikon3 makernote.
Definition: makernote_int.cpp:959
bool operator==(const Key &key) const
Comparison operator for a key.
Definition: makernote_int.cpp:1131
TiffComponent * newSamsungMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Samsung makernote.
Definition: makernote_int.cpp:1038
std::string getExiv2ConfigPath()
Determine the path to the Exiv2 configuration file.
Definition: makernote_int.cpp:94
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:966
uint16_t tag_
Tag number.
Definition: makernote_int.cpp:1126
TiffComponent * newIfdMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
Definition: makernote_int.cpp:864
Key for comparisons.
Definition: makernote_int.cpp:1123
Internal class TiffParserWorker to parse TIFF data.
uint8_t byte
1 byte unsigned integer type.
Definition: types.hpp:105
DataBuf nikonCrypt(uint16_t tag, const byte *pData, uint32_t size, TiffComponent *const pRoot)
Encrypt and decrypt Nikon data.
Definition: makernote_int.cpp:1197
Search the composite for a component with tag and group. Return a pointer to the component or 0,...
Definition: tiffvisitor_int.hpp:164
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition: types.hpp:204
void alloc(long size)
Allocate a data buffer of at least the given size. Note that if the requested size is less than the c...
Definition: types.cpp:161
std::string toString() const
Return the value as a string. Implemented in terms of write(std::ostream& os) const of the concrete c...
Definition: value.cpp:175
long size_
The current size of the buffer.
Definition: types.hpp:271
TiffComponent * newSony2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Sony2 makernote.
Definition: makernote_int.cpp:1090
int ParseError()
Return the result of ini_parse(), i.e., 0 on success, line number of first error on parse error,...
Definition: ini.cpp:216
TiffComponent * newOlympusMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Olympus makernote.
Definition: makernote_int.cpp:889
const T * find(T(&src)[N], const K &key)
Find an element that matches key in the array src.
Definition: types.hpp:508
std::string Get(std::string section, std::string name, std::string default_value)
Get a string value from INI file, returning default_value if not found.
Definition: ini.cpp:221
TiffComponent * newPanasonicMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Panasonic makernote.
Definition: makernote_int.cpp:978
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:64
virtual long toLong(long n=0) const =0
Convert the n-th component of the value to a long. The behaviour of this method may be undefined if t...
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:1181
Makernote factory and registry, IFD makernote header, and camera vendor specific makernote implementa...
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
const char * ver_
Version string.
Definition: makernote_int.cpp:1127
TiffComponent *(* NewMnFct2)(uint16_t tag, IfdId group, IfdId mnGroup)
Type for a pointer to a function creating a makernote (group)
Definition: makernote_int.hpp:72
TiffComponent * newSony1Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Sony1 makernote.
Definition: makernote_int.cpp:1083
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:1045
TiffComponent * newPentaxDngMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Pentax DNG makernote.
Definition: makernote_int.cpp:1009
TiffComponent * newPentaxMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Pentax makernote.
Definition: makernote_int.cpp:1002
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:1064
ByteOrder
Type to express the byte order (little or big endian)
Definition: types.hpp:113
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:852
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:922
TiffComponent * newOlympus2Mn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create an Olympus II makernote.
Definition: makernote_int.cpp:896
Read an INI file into easy-to-access name/value pairs. (Note that I've gone for simplicity here rathe...
Definition: ini.hpp:138
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
long write(const byte *pData, long wcount)
Wraps the corresponding BasicIo::write() method.
Definition: tiffcomposite_int.cpp:69
TiffComponent * newSigmaMn2(uint16_t tag, IfdId group, IfdId mnGroup)
Function to create a Sigma makernote.
Definition: makernote_int.cpp:1057
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:166
EXIV2API ExifData::const_iterator model(const ExifData &ed)
Return the camera model.
Definition: easyaccess.cpp:436
@ string
IPTC string type.
Definition: types.hpp:147
NewMnFct2 newMnFct2_
Makernote create function (group)
Definition: makernote_int.hpp:95
uint32_t size_
Size of the data (not the version string)
Definition: makernote_int.cpp:1128
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:154
uint32_t size_
Size of the data.
Definition: makernote_int.cpp:1140
TIFF makernote factory for concrete TIFF makernotes.
Definition: makernote_int.hpp:101
Tiff IFD Makernote. This is a concrete class suitable for all IFD makernotes.
Definition: tiffcomposite_int.hpp:1149
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:903
IfdId mnGroup_
Group identifier.
Definition: makernote_int.hpp:93
const char * make_
Camera make.
Definition: makernote_int.hpp:92
EXIV2API uint32_t getULong(const byte *buf, ByteOrder byteOrder)
Read a 4 byte unsigned long value from the data buffer.
Definition: types.cpp:283
Internal classes used in a TIFF composite structure.