tags_int.hpp
// ***************************************************************** -*- C++ -*-
/*
* Copyright (C) 2004-2021 Exiv2 authors
* This program is part of the Exiv2 distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
*/
#ifndef TAGS_INT_HPP_
#define TAGS_INT_HPP_
// *****************************************************************************
// included header files
#include "types.hpp"
#include "tags.hpp"
#include "value.hpp"
// + standard includes
#include <string>
#include <iostream>
#include <memory>
// *****************************************************************************
// namespace extensions
namespace Exiv2 {
class ExifData;
namespace Internal {
// *****************************************************************************
// class definitions
enum IfdId {
ifdIdNotSet,
ifd0Id,
ifd1Id,
ifd2Id,
ifd3Id,
exifId,
gpsId,
iopId,
mpfId,
subImage1Id,
subImage2Id,
subImage3Id,
subImage4Id,
subImage5Id,
subImage6Id,
subImage7Id,
subImage8Id,
subImage9Id,
subThumb1Id,
panaRawId,
mnId,
canonId,
canonAf2Id,
canonAf3Id,
canonAfCId,
canonAfMiAdjId,
canonAmId,
canonAsId,
canonCbId,
canonCiId,
canonCsId,
canonFilId,
canonFlId,
canonHdrId,
canonLeId,
canonMeId,
canonMoID,
canonMvId,
canonRawBId,
canonSiId,
canonCfId,
canonContrastId,
canonFcd1Id,
canonFcd2Id,
canonFcd3Id,
canonLiOpId,
canonMyColorID,
canonPiId,
canonPaId,
canonTiId,
canonFiId,
canonPrId,
canonPreID,
canonVigCorId,
canonVigCor2Id,
canonWbId,
casioId,
casio2Id,
fujiId,
minoltaId,
minoltaCs5DId,
minoltaCs7DId,
minoltaCsOldId,
minoltaCsNewId,
nikon1Id,
nikon2Id,
nikon3Id,
nikonPvId,
nikonVrId,
nikonPcId,
nikonWtId,
nikonIiId,
nikonAfId,
nikonAf21Id,
nikonAf22Id,
nikonAFTId,
nikonFiId,
nikonMeId,
nikonFl1Id,
nikonFl2Id,
nikonFl3Id,
nikonSi1Id,
nikonSi2Id,
nikonSi3Id,
nikonSi4Id,
nikonSi5Id,
nikonSi6Id,
nikonLd1Id,
nikonLd2Id,
nikonLd3Id,
nikonLd4Id,
nikonCb1Id,
nikonCb2Id,
nikonCb2aId,
nikonCb2bId,
nikonCb3Id,
nikonCb4Id,
olympusId,
olympus2Id,
olympusCsId,
olympusEqId,
olympusRdId,
olympusRd2Id,
olympusIpId,
olympusFiId,
olympusFe1Id,
olympusFe2Id,
olympusFe3Id,
olympusFe4Id,
olympusFe5Id,
olympusFe6Id,
olympusFe7Id,
olympusFe8Id,
olympusFe9Id,
olympusRiId,
panasonicId,
pentaxId,
pentaxDngId,
samsung2Id,
samsungPvId,
samsungPwId,
sigmaId,
sony1Id,
sony2Id,
sonyMltId,
sony1CsId,
sony1Cs2Id,
sony2CsId,
sony2Cs2Id,
sony2FpId,
sony2010eId,
sony1MltCs7DId,
sony1MltCsOldId,
sony1MltCsNewId,
sony1MltCsA100Id,
tagInfoMvId,
lastId,
ignoreId = lastId
};
enum SectionId { sectionIdNotSet,
imgStruct, // 4.6.4 A
recOffset, // 4.6.4 B
imgCharacter, // 4.6.4 C
otherTags, // 4.6.4 D
exifFormat, // 4.6.3
exifVersion, // 4.6.5 A
imgConfig, // 4.6.5 C
userInfo, // 4.6.5 D
relatedFile, // 4.6.5 E
dateTime, // 4.6.5 F
captureCond, // 4.6.5 G
gpsTags, // 4.6.6
iopTags, // 4.6.7
mpfTags,
makerTags, // MakerNote
dngTags, // DNG Spec
panaRaw,
tiffEp, // TIFF-EP Spec
tiffPm6,
adobeOpi,
lastSectionId };
struct SectionInfo {
SectionId sectionId_;
const char* name_;
const char* desc_;
};
struct TagDetails {
int64_t val_;
const char* label_;
bool operator==(long key) const { return val_ == key; }
}; // struct TagDetails
struct TagDetailsBitmask {
uint32_t mask_;
const char* label_;
}; // struct TagDetailsBitmask
struct TagVocabulary {
const char* voc_;
const char* label_;
bool operator==(const std::string& key) const;
}; // struct TagDetails
template <int N, const TagDetails (&array)[N]>
std::ostream& printTag(std::ostream& os, const Value& value, const ExifData*)
{
const TagDetails* td = find(array, value.toLong());
if (td) {
os << exvGettext(td->label_);
}
else {
os << "(" << value << ")";
}
return os;
}
#define EXV_PRINT_TAG(array) printTag<EXV_COUNTOF(array), array>
template <int N, const TagDetailsBitmask (&array)[N]>
std::ostream& printTagBitmask(std::ostream& os, const Value& value, const ExifData*)
{
const uint32_t val = static_cast<uint32_t>(value.toLong());
if (val == 0 && N > 0) {
const TagDetailsBitmask* td = *(&array);
if (td->mask_ == 0) return os << exvGettext(td->label_);
}
bool sep = false;
for (int i = 0; i < N; ++i) {
// *& acrobatics is a workaround for a MSVC 7.1 bug
const TagDetailsBitmask* td = *(&array) + i;
if (val & td->mask_) {
if (sep) {
os << ", " << exvGettext(td->label_);
}
else {
os << exvGettext(td->label_);
sep = true;
}
}
}
return os;
}
#define EXV_PRINT_TAG_BITMASK(array) printTagBitmask<EXV_COUNTOF(array), array>
template <int N, const TagVocabulary (&array)[N]>
std::ostream& printTagVocabulary(std::ostream& os, const Value& value, const ExifData*)
{
const TagVocabulary* td = find(array, value.toString());
if (td) {
os << exvGettext(td->label_);
}
else {
os << "(" << value << ")";
}
return os;
}
#define EXV_PRINT_VOCABULARY(array) printTagVocabulary<EXV_COUNTOF(array), array>
// *****************************************************************************
// free functions
const TagInfo* ifdTagList();
const TagInfo* exifTagList();
const TagInfo* iopTagList();
const TagInfo* gpsTagList();
const TagInfo* mnTagList();
const TagInfo* mpfTagList();
const GroupInfo* groupList();
const TagInfo* tagList(const std::string& groupName);
IfdId groupId(const std::string& groupName);
const char* ifdName(IfdId ifdId);
const char* groupName(IfdId ifdId);
bool isMakerIfd(IfdId ifdId);
bool isExifIfd(IfdId ifdId);
void taglist(std::ostream& os, IfdId ifdId);
const TagInfo* tagList(IfdId ifdId);
const TagInfo* tagInfo(uint16_t tag, IfdId ifdId);
const TagInfo* tagInfo(const std::string& tagName, IfdId ifdId);
uint16_t tagNumber(const std::string& tagName, IfdId ifdId);
std::ostream& printValue(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printLong(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printFloat(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printDegrees(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printUcs2(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printExifUnit(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0000(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0005(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0006(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0007(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0009(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x000a(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x000c(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0019(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x001e(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0112(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x0213(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x8298(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x829a(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x829d(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x8822(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x8827(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9101(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9201(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9202(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9204(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9206(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9207(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x9208(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0x920a(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa001(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa217(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa300(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa301(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa401(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa402(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa403(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa404(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa405(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa406(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa409(std::ostream& os, const Value& value, const ExifData*);
std::ostream& print0xa40c(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printGPSDirRef(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printNormalSoftHard(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printExifVersion(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printXmpVersion(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printXmpDate(std::ostream& os, const Value& value, const ExifData*);
std::ostream& printBitmask(std::ostream& os, const Value& value, const ExifData*);
float fnumber(float apertureValue);
URational exposureTime(float shutterSpeedValue);
}} // namespace Internal, Exiv2
#endif // #ifndef TAGS_INT_HPP_
Exiv2::ExifData
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434
Exiv2::Value
Common interface for all types of values used with metadata.
Definition: value.hpp:51
Exiv2::Value::toLong
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...
Exiv2::Value::toString
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:168
Exiv2::Internal::groupName
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2540
Exiv2::Internal::print0xa405
std::ostream & print0xa405(std::ostream &os, const Value &value, const ExifData *)
Print 35mm equivalent focal length.
Definition: tags_int.cpp:3116
Exiv2::Internal::print0xa407
std::ostream & print0xa407(std::ostream &os, const Value &value, const ExifData *metadata)
Print gain control.
Definition: tags_int.cpp:3151
Exiv2::Internal::print0x9206
std::ostream & print0x9206(std::ostream &os, const Value &value, const ExifData *)
Print the subject distance.
Definition: tags_int.cpp:2947
Exiv2::Internal::isMakerIfd
bool isMakerIfd(IfdId ifdId)
Return true if ifdId is a makernote IFD id. (Note: returns false for makerIfd)
Definition: tags_int.cpp:2445
Exiv2::Internal::printUcs2
std::ostream & printUcs2(std::ostream &os, const Value &value, const ExifData *)
Print function converting from UCS-2LE to UTF-8.
Definition: tags_int.cpp:2654
Exiv2::Internal::print0xa001
std::ostream & print0xa001(std::ostream &os, const Value &value, const ExifData *metadata)
Print color space.
Definition: tags_int.cpp:3021
Exiv2::Internal::print0xa300
std::ostream & print0xa300(std::ostream &os, const Value &value, const ExifData *metadata)
Print file source.
Definition: tags_int.cpp:3049
Exiv2::Internal::print0x9202
std::ostream & print0x9202(std::ostream &os, const Value &value, const ExifData *)
Print f-number converted from APEX aperture value.
Definition: tags_int.cpp:2911
Exiv2::Internal::printDegrees
std::ostream & printDegrees(std::ostream &os, const Value &value, const ExifData *)
Print a longitude or latitude value.
Definition: tags_int.cpp:2637
Exiv2::Internal::print0x8827
std::ostream & print0x8827(std::ostream &os, const Value &value, const ExifData *)
Print ISO speed ratings.
Definition: tags_int.cpp:2875
Exiv2::Internal::exposureTime
URational exposureTime(float shutterSpeedValue)
Calculate the exposure time from an APEX shutter speed value.
Definition: tags_int.cpp:2585
Exiv2::Internal::print0xa409
std::ostream & print0xa409(std::ostream &os, const Value &value, const ExifData *metadata)
Print saturation.
Definition: tags_int.cpp:3163
Exiv2::Internal::print0x0009
std::ostream & print0x0009(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS status.
Definition: tags_int.cpp:2756
Exiv2::Internal::print0xa217
std::ostream & print0xa217(std::ostream &os, const Value &value, const ExifData *metadata)
Print sensing method.
Definition: tags_int.cpp:3037
Exiv2::Internal::print0x000c
std::ostream & print0x000c(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS speed ref.
Definition: tags_int.cpp:2766
Exiv2::Internal::print0xa40c
std::ostream & print0xa40c(std::ostream &os, const Value &value, const ExifData *metadata)
Print subject distance range.
Definition: tags_int.cpp:3177
Exiv2::Internal::print0x829a
std::ostream & print0x829a(std::ostream &os, const Value &value, const ExifData *)
Print the exposure time.
Definition: tags_int.cpp:2816
Exiv2::Internal::print0x829d
std::ostream & print0x829d(std::ostream &os, const Value &value, const ExifData *)
Print the f-number.
Definition: tags_int.cpp:2839
Exiv2::Internal::SectionId
SectionId
Section identifiers to logically group tags. A section consists of nothing more than a name,...
Definition: tags_int.hpp:191
Exiv2::Internal::mpfTagList
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:2386
Exiv2::Internal::print0x0019
std::ostream & print0x0019(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS destination distance ref.
Definition: tags_int.cpp:2771
Exiv2::Internal::printExifUnit
std::ostream & printExifUnit(std::ostream &os, const Value &value, const ExifData *metadata)
Print function for Exif units.
Definition: tags_int.cpp:2680
Exiv2::Internal::taglist
void taglist(std::ostream &os, IfdId ifdId)
Print the list of tags for ifdId to the output stream os.
Definition: tags_int.cpp:2483
Exiv2::Internal::print0xa403
std::ostream & print0xa403(std::ostream &os, const Value &value, const ExifData *metadata)
Print white balance.
Definition: tags_int.cpp:3093
Exiv2::Internal::print0x0005
std::ostream & print0x0005(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS altitude ref.
Definition: tags_int.cpp:2700
Exiv2::Internal::tagList
const TagInfo * tagList(IfdId ifdId)
Return the tag list for ifdId.
Definition: tags_int.cpp:2493
Exiv2::Internal::print0x9201
std::ostream & print0x9201(std::ostream &os, const Value &value, const ExifData *)
Print exposure time converted from APEX shutter speed value.
Definition: tags_int.cpp:2898
Exiv2::Internal::print0x000a
std::ostream & print0x000a(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS measurement mode.
Definition: tags_int.cpp:2761
Exiv2::Internal::iopTagList
const TagInfo * iopTagList()
Return read-only list of built-in IOP tags.
Definition: tags_int.cpp:2419
Exiv2::Internal::print0x0112
std::ostream & print0x0112(std::ostream &os, const Value &value, const ExifData *metadata)
Print orientation.
Definition: tags_int.cpp:2781
Exiv2::Internal::printExifVersion
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:3199
Exiv2::Internal::printBitmask
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:2552
Exiv2::Internal::ifdName
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2533
Exiv2::Internal::printNormalSoftHard
std::ostream & printNormalSoftHard(std::ostream &os, const Value &value, const ExifData *metadata)
Print contrast, sharpness (normal, soft, hard)
Definition: tags_int.cpp:3194
Exiv2::Internal::print0x0213
std::ostream & print0x0213(std::ostream &os, const Value &value, const ExifData *metadata)
Print YCbCrPositioning.
Definition: tags_int.cpp:2791
Exiv2::Internal::print0x920a
std::ostream & print0x920a(std::ostream &os, const Value &value, const ExifData *)
Print the actual focal length of the lens.
Definition: tags_int.cpp:2995
Exiv2::Internal::tagInfo
const TagInfo * tagInfo(uint16_t tag, IfdId ifdId)
Return the tag info for tag and ifdId.
Definition: tags_int.cpp:2500
Exiv2::Internal::print0xa401
std::ostream & print0xa401(std::ostream &os, const Value &value, const ExifData *metadata)
Print custom rendered.
Definition: tags_int.cpp:3070
Exiv2::Internal::tagNumber
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:2608
Exiv2::Internal::fnumber
float fnumber(float apertureValue)
Calculate F number from an APEX aperture value.
Definition: tags_int.cpp:2580
Exiv2::Internal::printGPSDirRef
std::ostream & printGPSDirRef(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS direction ref.
Definition: tags_int.cpp:3182
Exiv2::Internal::printTagVocabulary
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:318
Exiv2::Internal::printXmpVersion
std::ostream & printXmpVersion(std::ostream &os, const Value &value, const ExifData *)
Print any version encoded in the ASCII string majormajorminorminor.
Definition: tags_int.cpp:3214
Exiv2::Internal::gpsTagList
const TagInfo * gpsTagList()
Return read-only list of built-in GPS tags.
Definition: tags_int.cpp:2316
Exiv2::Internal::print0x9101
std::ostream & print0x9101(std::ostream &os, const Value &value, const ExifData *)
Print components configuration specific to compressed data.
Definition: tags_int.cpp:2880
Exiv2::Internal::print0x0000
std::ostream & print0x0000(std::ostream &os, const Value &value, const ExifData *)
Print GPS version.
Definition: tags_int.cpp:2685
Exiv2::Internal::print0xa402
std::ostream & print0xa402(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure mode.
Definition: tags_int.cpp:3082
Exiv2::Internal::printTagBitmask
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:285
Exiv2::Internal::print0xa404
std::ostream & print0xa404(std::ostream &os, const Value &value, const ExifData *)
Print digital zoom ratio.
Definition: tags_int.cpp:3098
Exiv2::Internal::groupId
IfdId groupId(const std::string &groupName)
Return the group id for a group name.
Definition: tags_int.cpp:2525
Exiv2::Internal::print0x8298
std::ostream & print0x8298(std::ostream &os, const Value &value, const ExifData *)
Print the copyright.
Definition: tags_int.cpp:2796
Exiv2::Internal::print0x0006
std::ostream & print0x0006(std::ostream &os, const Value &value, const ExifData *)
Print GPS altitude.
Definition: tags_int.cpp:2705
Exiv2::Internal::printFloat
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:2626
Exiv2::Internal::exifTagList
const TagInfo * exifTagList()
Return read-only list of built-in Exif IFD tags.
Definition: tags_int.cpp:2096
Exiv2::Internal::IfdId
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:46
Exiv2::Internal::ifdTagList
const TagInfo * ifdTagList()
Return read-only list of built-in IFD0/1 tags.
Definition: tags_int.cpp:1709
Exiv2::Internal::print0x9204
std::ostream & print0x9204(std::ostream &os, const Value &value, const ExifData *)
Print the exposure bias value.
Definition: tags_int.cpp:2926
Exiv2::Internal::printXmpDate
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:3223
Exiv2::Internal::print0xa406
std::ostream & print0xa406(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene capture type.
Definition: tags_int.cpp:3137
Exiv2::Internal::printValue
std::ostream & printValue(std::ostream &os, const Value &value, const ExifData *)
Default print function, using the Value output operator.
Definition: tags_int.cpp:2547
Exiv2::Internal::isExifIfd
bool isExifIfd(IfdId ifdId)
Return true if ifdId is an Exif IFD id.
Definition: tags_int.cpp:2455
Exiv2::Internal::mnTagList
const TagInfo * mnTagList()
Return read-only list of built-in Exiv2 Makernote info tags.
Definition: tags_int.cpp:2438
Exiv2::Internal::print0x9208
std::ostream & print0x9208(std::ostream &os, const Value &value, const ExifData *metadata)
Print light source.
Definition: tags_int.cpp:2990
Exiv2::Internal::print0x8822
std::ostream & print0x8822(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure program.
Definition: tags_int.cpp:2870
Exiv2::Internal::print0x001e
std::ostream & print0x001e(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS differential correction.
Definition: tags_int.cpp:2776
Exiv2::Internal::printTag
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:265
Exiv2::Internal::printLong
std::ostream & printLong(std::ostream &os, const Value &value, const ExifData *)
Print the value converted to a long.
Definition: tags_int.cpp:2619
Exiv2::Internal::print0x9207
std::ostream & print0x9207(std::ostream &os, const Value &value, const ExifData *metadata)
Print metering mode.
Definition: tags_int.cpp:2985
Exiv2::Internal::print0xa301
std::ostream & print0xa301(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene type.
Definition: tags_int.cpp:3059
Exiv2::Internal::print0x0007
std::ostream & print0x0007(std::ostream &os, const Value &value, const ExifData *)
Print GPS timestamp.
Definition: tags_int.cpp:2720
Exiv2
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Exiv2::exvGettext
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:571
Exiv2::apertureValue
EXIV2API ExifData::const_iterator apertureValue(const ExifData &ed)
Return the aperture value.
Definition: easyaccess.cpp:482
Exiv2::shutterSpeedValue
EXIV2API ExifData::const_iterator shutterSpeedValue(const ExifData &ed)
Return the shutter speed value.
Definition: easyaccess.cpp:473
Exiv2::find
const T * find(T(&src)[N], const K &key)
Find an element that matches key in the array src.
Definition: types.hpp:497
Exiv2::URational
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition: types.hpp:97
Exiv2::GroupInfo
The details of an Exif group. Groups include IFDs and binary arrays.
Definition: tags.hpp:57
Exiv2::Internal::SectionInfo
The details of a section.
Definition: tags_int.hpp:215
Exiv2::Internal::SectionInfo::name_
const char * name_
Section name (one word)
Definition: tags_int.hpp:217
Exiv2::Internal::SectionInfo::sectionId_
SectionId sectionId_
Section id.
Definition: tags_int.hpp:216
Exiv2::Internal::SectionInfo::desc_
const char * desc_
Section description.
Definition: tags_int.hpp:218
Exiv2::Internal::TagDetailsBitmask
Helper structure for lookup tables for translations of bitmask values to human readable labels.
Definition: tags_int.hpp:237
Exiv2::Internal::TagDetailsBitmask::mask_
uint32_t mask_
Bitmask value.
Definition: tags_int.hpp:238
Exiv2::Internal::TagDetailsBitmask::label_
const char * label_
Description of the tag value.
Definition: tags_int.hpp:239
Exiv2::Internal::TagDetails
Helper structure for lookup tables for translations of numeric tag values to human readable labels.
Definition: tags_int.hpp:225
Exiv2::Internal::TagDetails::label_
const char * label_
Translation of the tag value.
Definition: tags_int.hpp:227
Exiv2::Internal::TagDetails::val_
int64_t val_
Tag value.
Definition: tags_int.hpp:226
Exiv2::Internal::TagDetails::operator==
bool operator==(long key) const
Comparison operator for use with the find template.
Definition: tags_int.hpp:230
Exiv2::Internal::TagVocabulary
Helper structure for lookup tables for translations of controlled vocabulary strings to their descrip...
Definition: tags_int.hpp:246
Exiv2::Internal::TagVocabulary::voc_
const char * voc_
Vocabulary string.
Definition: tags_int.hpp:247
Exiv2::Internal::TagVocabulary::label_
const char * label_
Description of the vocabulary string.
Definition: tags_int.hpp:248
Exiv2::Internal::TagVocabulary::operator==
bool operator==(const std::string &key) const
Comparison operator for use with the find template.
Definition: tags.cpp:90
Exiv2::TagInfo
Tag information.
Definition: tags.hpp:74