Exiv2
Loading...
Searching...
No Matches
tags_int.hpp
Go to the documentation of this file.
1// ***************************************************************** -*- C++ -*-
2/*
3 * Copyright (C) 2004-2018 Exiv2 authors
4 * This program is part of the Exiv2 distribution.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
19 */
28#ifndef TAGS_INT_HPP_
29#define TAGS_INT_HPP_
30
31// *****************************************************************************
32// included header files
33#include "types.hpp"
34#include "tags.hpp"
35#include "value.hpp"
36
37// + standard includes
38#include <string>
39#include <iostream>
40#include <memory>
41
42// *****************************************************************************
43// namespace extensions
44
45namespace Exiv2 {
46 class ExifData;
47
48 namespace Internal {
49
50// *****************************************************************************
51// class definitions
52
54 enum IfdId {
55 ifdIdNotSet,
56 ifd0Id,
57 ifd1Id,
58 ifd2Id,
59 ifd3Id,
60 exifId,
61 gpsId,
62 iopId,
63 mpfId,
64 subImage1Id,
65 subImage2Id,
66 subImage3Id,
67 subImage4Id,
68 subImage5Id,
69 subImage6Id,
70 subImage7Id,
71 subImage8Id,
72 subImage9Id,
73 subThumb1Id,
74 panaRawId,
75 mnId,
76 canonId,
77 canonCsId,
78 canonSiId,
79 canonCfId,
80 canonPiId,
81 canonPaId,
82 canonTiId,
83 canonFiId,
84 canonPrId,
85 casioId,
86 casio2Id,
87 fujiId,
88 minoltaId,
89 minoltaCs5DId,
90 minoltaCs7DId,
91 minoltaCsOldId,
92 minoltaCsNewId,
93 nikon1Id,
94 nikon2Id,
95 nikon3Id,
96 nikonPvId,
97 nikonVrId,
98 nikonPcId,
99 nikonWtId,
100 nikonIiId,
101 nikonAfId,
102 nikonAf21Id,
103 nikonAf22Id,
104 nikonAFTId,
105 nikonFiId,
106 nikonMeId,
107 nikonFl1Id,
108 nikonFl2Id,
109 nikonFl3Id,
110 nikonSi1Id,
111 nikonSi2Id,
112 nikonSi3Id,
113 nikonSi4Id,
114 nikonSi5Id,
115 nikonSi6Id,
116 nikonLd1Id,
117 nikonLd2Id,
118 nikonLd3Id,
119 nikonCb1Id,
120 nikonCb2Id,
121 nikonCb2aId,
122 nikonCb2bId,
123 nikonCb3Id,
124 nikonCb4Id,
125 olympusId,
126 olympus2Id,
127 olympusCsId,
128 olympusEqId,
129 olympusRdId,
130 olympusRd2Id,
131 olympusIpId,
132 olympusFiId,
133 olympusFe1Id,
134 olympusFe2Id,
135 olympusFe3Id,
136 olympusFe4Id,
137 olympusFe5Id,
138 olympusFe6Id,
139 olympusFe7Id,
140 olympusFe8Id,
141 olympusFe9Id,
142 olympusRiId,
143 panasonicId,
144 pentaxId,
145 pentaxDngId,
146 samsung2Id,
147 samsungPvId,
148 samsungPwId,
149 sigmaId,
150 sony1Id,
151 sony2Id,
152 sonyMltId,
153 sony1CsId,
154 sony1Cs2Id,
155 sony2CsId,
156 sony2Cs2Id,
157 sony2FpId,
158 sony2010eId,
159 sony1MltCs7DId,
160 sony1MltCsOldId,
161 sony1MltCsNewId,
162 sony1MltCsA100Id,
163 lastId,
164 ignoreId = lastId
165 };
166
171 enum SectionId { sectionIdNotSet,
172 imgStruct, recOffset, imgCharacter, otherTags, exifFormat,
173 exifVersion, imgConfig, userInfo, relatedFile, dateTime,
174 captureCond, gpsTags, iopTags, mpfTags, makerTags, dngTags, panaRaw,
175 tiffEp, tiffPm6, adobeOpi,
176 lastSectionId };
177
179 struct SectionInfo {
181 const char* name_;
182 const char* desc_;
183 };
184
189 struct TagDetails {
190 int64_t val_;
191 const char* label_;
192
194 bool operator==(long key) const { return val_ == key; }
195 }; // struct TagDetails
196
202 uint32_t mask_;
203 const char* label_;
204 }; // struct TagDetailsBitmask
205
211 const char* voc_;
212 const char* label_;
213
221 bool operator==(const std::string& key) const;
222 }; // struct TagDetails
223
228 template <int N, const TagDetails (&array)[N]>
229 std::ostream& printTag(std::ostream& os, const Value& value, const ExifData*)
230 {
231 const TagDetails* td = find(array, value.toLong());
232 if (td) {
233 os << exvGettext(td->label_);
234 }
235 else {
236 os << "(" << value << ")";
237 }
238 return os;
239 }
240
242#define EXV_PRINT_TAG(array) printTag<EXV_COUNTOF(array), array>
243
248 template <int N, const TagDetailsBitmask (&array)[N]>
249 std::ostream& printTagBitmask(std::ostream& os, const Value& value, const ExifData*)
250 {
251 const uint32_t val = static_cast<uint32_t>(value.toLong());
252 if (val == 0 && N > 0) {
253 const TagDetailsBitmask* td = *(&array);
254 if (td->mask_ == 0) return os << exvGettext(td->label_);
255 }
256 bool sep = false;
257 for (int i = 0; i < N; ++i) {
258 // *& acrobatics is a workaround for a MSVC 7.1 bug
259 const TagDetailsBitmask* td = *(&array) + i;
260
261 if (val & td->mask_) {
262 if (sep) {
263 os << ", " << exvGettext(td->label_);
264 }
265 else {
266 os << exvGettext(td->label_);
267 sep = true;
268 }
269 }
270 }
271 return os;
272 }
273
275#define EXV_PRINT_TAG_BITMASK(array) printTagBitmask<EXV_COUNTOF(array), array>
276
281 template <int N, const TagVocabulary (&array)[N]>
282 std::ostream& printTagVocabulary(std::ostream& os, const Value& value, const ExifData*)
283 {
284 const TagVocabulary* td = find(array, value.toString());
285 if (td) {
286 os << exvGettext(td->label_);
287 }
288 else {
289 os << "(" << value << ")";
290 }
291 return os;
292 }
293
295#define EXV_PRINT_VOCABULARY(array) printTagVocabulary<EXV_COUNTOF(array), array>
296
297// *****************************************************************************
298// free functions
299
301 const TagInfo* ifdTagList();
303 const TagInfo* exifTagList();
305 const TagInfo* iopTagList();
307 const TagInfo* gpsTagList();
309 const TagInfo* mnTagList();
311 const TagInfo* mpfTagList();
312
313 const GroupInfo* groupList();
314 const TagInfo* tagList(const std::string& groupName);
315
317 IfdId groupId(const std::string& groupName);
319 const char* ifdName(IfdId ifdId);
321 const char* groupName(IfdId ifdId);
322
324 bool isMakerIfd(IfdId ifdId);
326 bool isExifIfd(IfdId ifdId);
327
329 void taglist(std::ostream& os, IfdId ifdId);
331 const TagInfo* tagList(IfdId ifdId);
333 const TagInfo* tagInfo(uint16_t tag, IfdId ifdId);
335 const TagInfo* tagInfo(const std::string& tagName, IfdId ifdId);
343 uint16_t tagNumber(const std::string& tagName, IfdId ifdId);
344
346
347
348 std::ostream& printValue(std::ostream& os, const Value& value, const ExifData*);
350 std::ostream& printLong(std::ostream& os, const Value& value, const ExifData*);
352 std::ostream& printFloat(std::ostream& os, const Value& value, const ExifData*);
354 std::ostream& printDegrees(std::ostream& os, const Value& value, const ExifData*);
356 std::ostream& printUcs2(std::ostream& os, const Value& value, const ExifData*);
358 std::ostream& printExifUnit(std::ostream& os, const Value& value, const ExifData*);
360 std::ostream& print0x0000(std::ostream& os, const Value& value, const ExifData*);
362 std::ostream& print0x0005(std::ostream& os, const Value& value, const ExifData*);
364 std::ostream& print0x0006(std::ostream& os, const Value& value, const ExifData*);
366 std::ostream& print0x0007(std::ostream& os, const Value& value, const ExifData*);
368 std::ostream& print0x0009(std::ostream& os, const Value& value, const ExifData*);
370 std::ostream& print0x000a(std::ostream& os, const Value& value, const ExifData*);
372 std::ostream& print0x000c(std::ostream& os, const Value& value, const ExifData*);
374 std::ostream& print0x0019(std::ostream& os, const Value& value, const ExifData*);
376 std::ostream& print0x001e(std::ostream& os, const Value& value, const ExifData*);
378 std::ostream& print0x0112(std::ostream& os, const Value& value, const ExifData*);
380 std::ostream& print0x0213(std::ostream& os, const Value& value, const ExifData*);
382 std::ostream& print0x8298(std::ostream& os, const Value& value, const ExifData*);
384 std::ostream& print0x829a(std::ostream& os, const Value& value, const ExifData*);
386 std::ostream& print0x829d(std::ostream& os, const Value& value, const ExifData*);
388 std::ostream& print0x8822(std::ostream& os, const Value& value, const ExifData*);
390 std::ostream& print0x8827(std::ostream& os, const Value& value, const ExifData*);
392 std::ostream& print0x9101(std::ostream& os, const Value& value, const ExifData*);
394 std::ostream& print0x9201(std::ostream& os, const Value& value, const ExifData*);
396 std::ostream& print0x9202(std::ostream& os, const Value& value, const ExifData*);
398 std::ostream& print0x9204(std::ostream& os, const Value& value, const ExifData*);
400 std::ostream& print0x9206(std::ostream& os, const Value& value, const ExifData*);
402 std::ostream& print0x9207(std::ostream& os, const Value& value, const ExifData*);
404 std::ostream& print0x9208(std::ostream& os, const Value& value, const ExifData*);
406 std::ostream& print0x920a(std::ostream& os, const Value& value, const ExifData*);
408 std::ostream& print0xa001(std::ostream& os, const Value& value, const ExifData*);
410 std::ostream& print0xa217(std::ostream& os, const Value& value, const ExifData*);
412 std::ostream& print0xa300(std::ostream& os, const Value& value, const ExifData*);
414 std::ostream& print0xa301(std::ostream& os, const Value& value, const ExifData*);
416 std::ostream& print0xa401(std::ostream& os, const Value& value, const ExifData*);
418 std::ostream& print0xa402(std::ostream& os, const Value& value, const ExifData*);
420 std::ostream& print0xa403(std::ostream& os, const Value& value, const ExifData*);
422 std::ostream& print0xa404(std::ostream& os, const Value& value, const ExifData*);
424 std::ostream& print0xa405(std::ostream& os, const Value& value, const ExifData*);
426 std::ostream& print0xa406(std::ostream& os, const Value& value, const ExifData*);
428 std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData*);
430 std::ostream& print0xa409(std::ostream& os, const Value& value, const ExifData*);
432 std::ostream& print0xa40c(std::ostream& os, const Value& value, const ExifData*);
434 std::ostream& printGPSDirRef(std::ostream& os, const Value& value, const ExifData*);
436 std::ostream& printNormalSoftHard(std::ostream& os, const Value& value, const ExifData*);
438 std::ostream& printExifVersion(std::ostream& os, const Value& value, const ExifData*);
440 std::ostream& printXmpVersion(std::ostream& os, const Value& value, const ExifData*);
442 std::ostream& printXmpDate(std::ostream& os, const Value& value, const ExifData*);
444 std::ostream& printBitmask(std::ostream& os, const Value& value, const ExifData*);
446
448 float fnumber(float apertureValue);
449
451 URational exposureTime(float shutterSpeedValue);
452
453}} // namespace Internal, Exiv2
454
455#endif // #ifndef TAGS_INT_HPP_
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition exif.hpp:434
Common interface for all types of values used with metadata.
Definition value.hpp:60
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...
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
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition tags_int.cpp:2158
std::ostream & print0xa405(std::ostream &os, const Value &value, const ExifData *)
Print 35mm equivalent focal length.
Definition tags_int.cpp:2747
std::ostream & print0xa407(std::ostream &os, const Value &value, const ExifData *metadata)
Print gain control.
Definition tags_int.cpp:2782
std::ostream & print0x9206(std::ostream &os, const Value &value, const ExifData *)
Print the subject distance.
Definition tags_int.cpp:2553
bool isMakerIfd(IfdId ifdId)
Return true if ifdId is a makernote IFD id. (Note: returns false for makerIfd)
Definition tags_int.cpp:2063
std::ostream & printUcs2(std::ostream &os, const Value &value, const ExifData *)
Print function converting from UCS-2LE to UTF-8.
Definition tags_int.cpp:2260
std::ostream & print0xa001(std::ostream &os, const Value &value, const ExifData *metadata)
Print color space.
Definition tags_int.cpp:2652
std::ostream & print0xa300(std::ostream &os, const Value &value, const ExifData *metadata)
Print file source.
Definition tags_int.cpp:2680
std::ostream & print0x9202(std::ostream &os, const Value &value, const ExifData *)
Print f-number converted from APEX aperture value.
Definition tags_int.cpp:2517
std::ostream & printDegrees(std::ostream &os, const Value &value, const ExifData *)
Print a longitude or latitude value.
Definition tags_int.cpp:2243
std::ostream & printTag(std::ostream &os, const Value &value, const ExifData *)
Generic pretty-print function to translate a long value to a description by looking up a reference ta...
Definition tags_int.hpp:229
std::ostream & print0x8827(std::ostream &os, const Value &value, const ExifData *)
Print ISO speed ratings.
Definition tags_int.cpp:2481
URational exposureTime(float shutterSpeedValue)
Calculate the exposure time from an APEX shutter speed value.
Definition tags_int.cpp:2201
std::ostream & print0xa409(std::ostream &os, const Value &value, const ExifData *metadata)
Print saturation.
Definition tags_int.cpp:2794
std::ostream & print0x0009(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS status.
Definition tags_int.cpp:2362
std::ostream & print0xa217(std::ostream &os, const Value &value, const ExifData *metadata)
Print sensing method.
Definition tags_int.cpp:2668
std::ostream & print0x000c(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS speed ref.
Definition tags_int.cpp:2372
std::ostream & print0xa40c(std::ostream &os, const Value &value, const ExifData *metadata)
Print subject distance range.
Definition tags_int.cpp:2808
std::ostream & print0x829a(std::ostream &os, const Value &value, const ExifData *)
Print the exposure time.
Definition tags_int.cpp:2422
std::ostream & print0x829d(std::ostream &os, const Value &value, const ExifData *)
Print the f-number.
Definition tags_int.cpp:2445
SectionId
Section identifiers to logically group tags. A section consists of nothing more than a name,...
Definition tags_int.hpp:171
const TagInfo * mpfTagList()
Return read-only list of built-in mfp Tags http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/MPF....
Definition tags_int.cpp:2004
std::ostream & print0x0019(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS destination distance ref.
Definition tags_int.cpp:2377
std::ostream & printExifUnit(std::ostream &os, const Value &value, const ExifData *metadata)
Print function for Exif units.
Definition tags_int.cpp:2286
void taglist(std::ostream &os, IfdId ifdId)
Print the list of tags for ifdId to the output stream os.
Definition tags_int.cpp:2101
std::ostream & print0xa403(std::ostream &os, const Value &value, const ExifData *metadata)
Print white balance.
Definition tags_int.cpp:2724
std::ostream & print0x0005(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS altitude ref.
Definition tags_int.cpp:2306
const TagInfo * tagList(IfdId ifdId)
Return the tag list for ifdId.
Definition tags_int.cpp:2111
std::ostream & print0x9201(std::ostream &os, const Value &value, const ExifData *)
Print exposure time converted from APEX shutter speed value.
Definition tags_int.cpp:2504
std::ostream & print0x000a(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS measurement mode.
Definition tags_int.cpp:2367
const TagInfo * iopTagList()
Return read-only list of built-in IOP tags.
Definition tags_int.cpp:2037
std::ostream & print0x0112(std::ostream &os, const Value &value, const ExifData *metadata)
Print orientation.
Definition tags_int.cpp:2387
std::ostream & printExifVersion(std::ostream &os, const Value &value, const ExifData *)
Print any version packed in 4 Bytes format : major major minor minor.
Definition tags_int.cpp:2836
std::ostream & printBitmask(std::ostream &os, const Value &value, const ExifData *metadata)
Print a bitmask as (none) | n | n,m... where: (none) = no bits set | n = bit n from left (0=left-most...
Definition tags_int.cpp:2170
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition tags_int.cpp:2151
std::ostream & printNormalSoftHard(std::ostream &os, const Value &value, const ExifData *metadata)
Print contrast, sharpness (normal, soft, hard)
Definition tags_int.cpp:2831
std::ostream & print0x0213(std::ostream &os, const Value &value, const ExifData *metadata)
Print YCbCrPositioning.
Definition tags_int.cpp:2397
std::ostream & print0x920a(std::ostream &os, const Value &value, const ExifData *)
Print the actual focal length of the lens.
Definition tags_int.cpp:2626
const TagInfo * tagInfo(uint16_t tag, IfdId ifdId)
Return the tag info for tag and ifdId.
Definition tags_int.cpp:2118
std::ostream & print0xa401(std::ostream &os, const Value &value, const ExifData *metadata)
Print custom rendered.
Definition tags_int.cpp:2701
uint16_t tagNumber(const std::string &tagName, IfdId ifdId)
Return the tag number for one combination of IFD id and tagName. If the tagName is not known,...
Definition tags_int.cpp:2214
float fnumber(float apertureValue)
Calculate F number from an APEX aperture value.
Definition tags_int.cpp:2196
std::ostream & printTagBitmask(std::ostream &os, const Value &value, const ExifData *)
Generic print function to translate a long value to a description by looking up bitmasks in a referen...
Definition tags_int.hpp:249
std::ostream & printGPSDirRef(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS direction ref.
Definition tags_int.cpp:2819
std::ostream & printXmpVersion(std::ostream &os, const Value &value, const ExifData *)
Print any version encoded in the ASCII string majormajorminorminor.
Definition tags_int.cpp:2851
const TagInfo * gpsTagList()
Return read-only list of built-in GPS tags.
Definition tags_int.cpp:1934
std::ostream & print0x9101(std::ostream &os, const Value &value, const ExifData *)
Print components configuration specific to compressed data.
Definition tags_int.cpp:2486
std::ostream & print0x0000(std::ostream &os, const Value &value, const ExifData *)
Print GPS version.
Definition tags_int.cpp:2291
std::ostream & print0xa402(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure mode.
Definition tags_int.cpp:2713
std::ostream & print0xa404(std::ostream &os, const Value &value, const ExifData *)
Print digital zoom ratio.
Definition tags_int.cpp:2729
IfdId groupId(const std::string &groupName)
Return the group id for a group name.
Definition tags_int.cpp:2143
std::ostream & print0x8298(std::ostream &os, const Value &value, const ExifData *)
Print the copyright.
Definition tags_int.cpp:2402
std::ostream & printTagVocabulary(std::ostream &os, const Value &value, const ExifData *)
Generic pretty-print function to translate a controlled vocabulary value (string) to a description by...
Definition tags_int.hpp:282
std::ostream & print0x0006(std::ostream &os, const Value &value, const ExifData *)
Print GPS altitude.
Definition tags_int.cpp:2311
std::ostream & printFloat(std::ostream &os, const Value &value, const ExifData *)
Print a Rational or URational value in floating point format.
Definition tags_int.cpp:2232
const TagInfo * exifTagList()
Return read-only list of built-in Exif IFD tags.
Definition tags_int.cpp:1761
IfdId
Type to specify the IFD to which a metadata belongs.
Definition tags_int.hpp:54
const TagInfo * ifdTagList()
Return read-only list of built-in IFD0/1 tags.
Definition tags_int.cpp:1429
std::ostream & print0x9204(std::ostream &os, const Value &value, const ExifData *)
Print the exposure bias value.
Definition tags_int.cpp:2532
std::ostream & printXmpDate(std::ostream &os, const Value &value, const ExifData *)
Print a date following the format YYYY-MM-DDTHH:MM:SSZ.
Definition tags_int.cpp:2860
std::ostream & print0xa406(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene capture type.
Definition tags_int.cpp:2768
std::ostream & printValue(std::ostream &os, const Value &value, const ExifData *)
Default print function, using the Value output operator.
Definition tags_int.cpp:2165
bool isExifIfd(IfdId ifdId)
Return true if ifdId is an Exif IFD id.
Definition tags_int.cpp:2073
const TagInfo * mnTagList()
Return read-only list of built-in Exiv2 Makernote info tags.
Definition tags_int.cpp:2056
std::ostream & print0x9208(std::ostream &os, const Value &value, const ExifData *metadata)
Print light source.
Definition tags_int.cpp:2621
std::ostream & print0x8822(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure program.
Definition tags_int.cpp:2476
std::ostream & print0x001e(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS differential correction.
Definition tags_int.cpp:2382
std::ostream & printLong(std::ostream &os, const Value &value, const ExifData *)
Print the value converted to a long.
Definition tags_int.cpp:2225
std::ostream & print0x9207(std::ostream &os, const Value &value, const ExifData *metadata)
Print metering mode.
Definition tags_int.cpp:2591
std::ostream & print0xa301(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene type.
Definition tags_int.cpp:2690
std::ostream & print0x0007(std::ostream &os, const Value &value, const ExifData *)
Print GPS timestamp.
Definition tags_int.cpp:2326
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition asfvideo.hpp:36
const T * find(T(&src)[N], const K &key)
Find an element that matches key in the array src.
Definition types.hpp:508
EXIV2API const char * exvGettext(const char *str)
Translate a string using the gettext framework. This wrapper hides all the implementation details fro...
Definition types.cpp:576
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition types.hpp:108
The details of a section.
Definition tags_int.hpp:179
const char * name_
Section name (one word)
Definition tags_int.hpp:181
SectionId sectionId_
Section id.
Definition tags_int.hpp:180
const char * desc_
Section description.
Definition tags_int.hpp:182
Helper structure for lookup tables for translations of bitmask values to human readable labels.
Definition tags_int.hpp:201
uint32_t mask_
Bitmask value.
Definition tags_int.hpp:202
const char * label_
Description of the tag value.
Definition tags_int.hpp:203
Helper structure for lookup tables for translations of numeric tag values to human readable labels.
Definition tags_int.hpp:189
const char * label_
Translation of the tag value.
Definition tags_int.hpp:191
int64_t val_
Tag value.
Definition tags_int.hpp:190
bool operator==(long key) const
Comparison operator for use with the find template.
Definition tags_int.hpp:194
Helper structure for lookup tables for translations of controlled vocabulary strings to their descrip...
Definition tags_int.hpp:210
const char * voc_
Vocabulary string.
Definition tags_int.hpp:211
const char * label_
Description of the vocabulary string.
Definition tags_int.hpp:212
bool operator==(const std::string &key) const
Comparison operator for use with the find template.
Definition tags.cpp:97
Exif tag and type information.
Type definitions for Exiv2 and related functionality.
Value interface and concrete subclasses.