24 #include "exiv2lib_export.h"
27 #include "metadatum.hpp"
49 typedef std::ostream& (*PrintFct)(std::ostream&,
const Value&,
const ExifData* pExifData);
60 bool operator==(
const GroupName&
groupName)
const;
69 explicit GroupName(
const std::string&
groupName);
103 ExifTags(
const ExifTags& rhs);
105 ExifTags& operator=(
const ExifTags& rhs);
113 static void taglist(std::ostream& os);
115 static void taglist(std::ostream& os,
const std::string& groupName);
118 static const char* sectionName(
const ExifKey& key);
120 static uint16_t defaultCount(
const ExifKey& key);
122 static const char*
ifdName(
const std::string& groupName);
127 static bool isMakerGroup(
const std::string& groupName);
133 static bool isExifGroup(
const std::string& groupName);
155 explicit ExifKey(
const std::string& key);
165 ExifKey(uint16_t tag,
const std::string& groupName);
187 void setIdx(
int idx);
192 virtual std::string key()
const;
193 virtual const char* familyName()
const;
197 virtual std::string tagName()
const;
198 virtual uint16_t tag()
const;
199 virtual std::string tagLabel()
const;
201 std::string tagDesc()
const;
203 TypeId defaultTypeId()
const;
205 AutoPtr clone()
const;
212 virtual ExifKey* clone_()
const;
217 std::auto_ptr<Impl> p_;
229 #endif // #ifndef TAGS_HPP_
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2527
std::string g_
Group name.
Definition: tags.hpp:70
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition: tags.hpp:140
The details of an Exif group. Groups include IFDs and binary arrays.
Definition: tags.hpp:57
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434
bool operator==(const TagDetails &td, const LensTypeAndFocalLengthAndMaxAperture <fl)
Compare tag details with a lens entry.
Definition: canonmn_int.cpp:2820
std::auto_ptr< ExifKey > AutoPtr
Shortcut for an ExifKey auto pointer.
Definition: tags.hpp:143
int ifdId_
IFD id.
Definition: tags.hpp:61
TypeId
Exiv2 value type identifiers.
Definition: types.hpp:119
const char * ifdName_
IFD name.
Definition: tags.hpp:62
const char * groupName_
Group name, unique for each group.
Definition: tags.hpp:63
int ifdId_
Link to the (preferred) IFD.
Definition: tags.hpp:91
const TagInfo * tagList(IfdId ifdId)
Return the tag list for ifdId.
Definition: tags_int.cpp:2487
Abstract base class defining the Key of a metadatum. Keys are used to identify and group metadata...
Definition: metadatum.hpp:44
const char * name_
One word tag label.
Definition: tags.hpp:88
TypeId typeId_
Type id.
Definition: tags.hpp:93
int16_t count_
The number of values (not bytes!), 0=any, -1=count not known.
Definition: tags.hpp:94
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2534
Common interface for all types of values used with metadata.
Definition: value.hpp:51
const TagInfo *(* TagListFct)()
A function returning a tag list.
Definition: tags.hpp:51
Internal Pimpl structure with private members and data of class ExifKey.
Definition: tags.cpp:210
const char * desc_
Short tag description.
Definition: tags.hpp:90
PrintFct printFct_
Pointer to tag print function.
Definition: tags.hpp:95
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
EXIV2API std::ostream & operator<<(std::ostream &os, const DataSet &dataSet)
Output operator for dataSet.
Definition: datasets.cpp:709
std::ostream &(* PrintFct)(std::ostream &, const Value &, const ExifData *pExifData)
Type for a function pointer for functions interpreting the tag value.
Definition: tags.hpp:49
Tag information.
Definition: tags.hpp:74
int sectionId_
Section id.
Definition: tags.hpp:92
void taglist(std::ostream &os, IfdId ifdId)
Print the list of tags for ifdId to the output stream os.
Definition: tags_int.cpp:2477
uint16_t tag_
Tag.
Definition: tags.hpp:87
const char * title_
Tag title.
Definition: tags.hpp:89
TagListFct tagList_
Tag list.
Definition: tags.hpp:64