Exiv2
Classes | Namespaces | Macros | Enumerations | Functions
tags_int.hpp File Reference

Internal Exif tag and type information. More...

#include "types.hpp"
#include "tags.hpp"
#include "value.hpp"
#include <string>
#include <iostream>
#include <memory>

Go to the source code of this file.

Classes

struct  Exiv2::Internal::SectionInfo
 The details of a section. More...
 
struct  Exiv2::Internal::TagDetails
 Helper structure for lookup tables for translations of numeric tag values to human readable labels. More...
 
struct  Exiv2::Internal::TagDetailsBitmask
 Helper structure for lookup tables for translations of bitmask values to human readable labels. More...
 
struct  Exiv2::Internal::TagVocabulary
 Helper structure for lookup tables for translations of controlled vocabulary strings to their descriptions. More...
 

Namespaces

 Exiv2
 Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of the objects of this namespace.
 
 Exiv2::Internal
 Contains internal objects which are not published and are not part of the libexiv2 API.
 

Macros

#define EXV_PRINT_TAG(array)   printTag<EXV_COUNTOF(array), array>
 Shortcut for the printTag template which requires typing the array name only once.
 
#define EXV_PRINT_TAG_BITMASK(array)   printTagBitmask<EXV_COUNTOF(array), array>
 Shortcut for the printTagBitmask template which requires typing the array name only once.
 
#define EXV_PRINT_VOCABULARY(array)   printTagVocabulary<EXV_COUNTOF(array), array>
 Shortcut for the printTagVocabulary template which requires typing the array name only once.
 

Enumerations

enum  Exiv2::Internal::IfdId {
  ifdIdNotSet, ifd0Id, ifd1Id, ifd2Id,
  ifd3Id, exifId, gpsId, iopId,
  mpfId, subImage1Id, subImage2Id, subImage3Id,
  subImage4Id, subImage5Id, subImage6Id, subImage7Id,
  subImage8Id, subImage9Id, subThumb1Id, panaRawId,
  mnId, canonId, canonCsId, canonSiId,
  canonCfId, canonPiId, canonPaId, canonTiId,
  canonFiId, canonPrId, 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,
  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, sony1MltCs7DId,
  sony1MltCsOldId, sony1MltCsNewId, sony1MltCsA100Id, lastId,
  ignoreId = lastId
}
 Type to specify the IFD to which a metadata belongs.
 
enum  Exiv2::Internal::SectionId {
  sectionIdNotSet, imgStruct, recOffset, imgCharacter,
  otherTags, exifFormat, exifVersion, imgConfig,
  userInfo, relatedFile, dateTime, captureCond,
  gpsTags, iopTags, mpfTags, makerTags,
  dngTags, panaRaw, tiffEp, tiffPm6,
  adobeOpi, lastSectionId
}
 Section identifiers to logically group tags. A section consists of nothing more than a name, based on the Exif standard.
 

Functions

template<int N, const TagDetails(&) array>
std::ostream & Exiv2::Internal::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 table.
 
template<int N, const TagDetailsBitmask(&) array>
std::ostream & Exiv2::Internal::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 reference table.
 
template<int N, const TagVocabulary(&) array>
std::ostream & Exiv2::Internal::printTagVocabulary (std::ostream &os, const Value &value, const ExifData *)
 Generic pretty-print function to translate a controlled vocabulary value (string) to a description by looking up a reference table.
 
const TagInfo * Exiv2::Internal::ifdTagList ()
 Return read-only list of built-in IFD0/1 tags.
 
const TagInfo * Exiv2::Internal::exifTagList ()
 Return read-only list of built-in Exif IFD tags.
 
const TagInfo * Exiv2::Internal::iopTagList ()
 Return read-only list of built-in IOP tags.
 
const TagInfo * Exiv2::Internal::gpsTagList ()
 Return read-only list of built-in GPS tags.
 
const TagInfo * Exiv2::Internal::mnTagList ()
 Return read-only list of built-in Exiv2 Makernote info tags.
 
const TagInfo * Exiv2::Internal::mpfTagList ()
 Return read-only list of built-in mfp Tags http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/MPF.html.
 
const GroupInfo * Exiv2::Internal::groupList ()
 
const TagInfo * Exiv2::Internal::tagList (const std::string &groupName)
 
IfdId Exiv2::Internal::groupId (const std::string &groupName)
 Return the group id for a group name.
 
const char * Exiv2::Internal::ifdName (IfdId ifdId)
 Return the name of the IFD.
 
const char * Exiv2::Internal::groupName (IfdId ifdId)
 Return the group name for a group id.
 
bool Exiv2::Internal::isMakerIfd (IfdId ifdId)
 Return true if ifdId is a makernote IFD id. (Note: returns false for makerIfd)
 
bool Exiv2::Internal::isExifIfd (IfdId ifdId)
 Return true if ifdId is an Exif IFD id.
 
void Exiv2::Internal::taglist (std::ostream &os, IfdId ifdId)
 Print the list of tags for ifdId to the output stream os.
 
const TagInfo * Exiv2::Internal::tagList (IfdId ifdId)
 Return the tag list for ifdId.
 
const TagInfo * Exiv2::Internal::tagInfo (uint16_t tag, IfdId ifdId)
 Return the tag info for tag and ifdId.
 
const TagInfo * Exiv2::Internal::tagInfo (const std::string &tagName, IfdId ifdId)
 Return the tag info for tagName and ifdId.
 
uint16_t Exiv2::Internal::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, it expects tag names in the form "0x01ff" and converts them to unsigned integer. More...
 
float Exiv2::Internal::fnumber (float apertureValue)
 Calculate F number from an APEX aperture value.
 
URational Exiv2::Internal::exposureTime (float shutterSpeedValue)
 Calculate the exposure time from an APEX shutter speed value.
 
Functions printing interpreted tag values
std::ostream & Exiv2::Internal::printValue (std::ostream &os, const Value &value, const ExifData *)
 Default print function, using the Value output operator.
 
std::ostream & Exiv2::Internal::printLong (std::ostream &os, const Value &value, const ExifData *)
 Print the value converted to a long.
 
std::ostream & Exiv2::Internal::printFloat (std::ostream &os, const Value &value, const ExifData *)
 Print a Rational or URational value in floating point format.
 
std::ostream & Exiv2::Internal::printDegrees (std::ostream &os, const Value &value, const ExifData *)
 Print a longitude or latitude value.
 
std::ostream & Exiv2::Internal::printUcs2 (std::ostream &os, const Value &value, const ExifData *)
 Print function converting from UCS-2LE to UTF-8.
 
std::ostream & Exiv2::Internal::printExifUnit (std::ostream &os, const Value &value, const ExifData *)
 Print function for Exif units.
 
std::ostream & Exiv2::Internal::print0x0000 (std::ostream &os, const Value &value, const ExifData *)
 Print GPS version.
 
std::ostream & Exiv2::Internal::print0x0005 (std::ostream &os, const Value &value, const ExifData *)
 Print GPS altitude ref.
 
std::ostream & Exiv2::Internal::print0x0006 (std::ostream &os, const Value &value, const ExifData *)
 Print GPS altitude.
 
std::ostream & Exiv2::Internal::print0x0007 (std::ostream &os, const Value &value, const ExifData *)
 Print GPS timestamp.
 
std::ostream & Exiv2::Internal::print0x0009 (std::ostream &os, const Value &value, const ExifData *)
 Print GPS status.
 
std::ostream & Exiv2::Internal::print0x000a (std::ostream &os, const Value &value, const ExifData *)
 Print GPS measurement mode.
 
std::ostream & Exiv2::Internal::print0x000c (std::ostream &os, const Value &value, const ExifData *)
 Print GPS speed ref.
 
std::ostream & Exiv2::Internal::print0x0019 (std::ostream &os, const Value &value, const ExifData *)
 Print GPS destination distance ref.
 
std::ostream & Exiv2::Internal::print0x001e (std::ostream &os, const Value &value, const ExifData *)
 Print GPS differential correction.
 
std::ostream & Exiv2::Internal::print0x0112 (std::ostream &os, const Value &value, const ExifData *)
 Print orientation.
 
std::ostream & Exiv2::Internal::print0x0213 (std::ostream &os, const Value &value, const ExifData *)
 Print YCbCrPositioning.
 
std::ostream & Exiv2::Internal::print0x8298 (std::ostream &os, const Value &value, const ExifData *)
 Print the copyright.
 
std::ostream & Exiv2::Internal::print0x829a (std::ostream &os, const Value &value, const ExifData *)
 Print the exposure time.
 
std::ostream & Exiv2::Internal::print0x829d (std::ostream &os, const Value &value, const ExifData *)
 Print the f-number.
 
std::ostream & Exiv2::Internal::print0x8822 (std::ostream &os, const Value &value, const ExifData *)
 Print exposure program.
 
std::ostream & Exiv2::Internal::print0x8827 (std::ostream &os, const Value &value, const ExifData *)
 Print ISO speed ratings.
 
std::ostream & Exiv2::Internal::print0x9101 (std::ostream &os, const Value &value, const ExifData *)
 Print components configuration specific to compressed data.
 
std::ostream & Exiv2::Internal::print0x9201 (std::ostream &os, const Value &value, const ExifData *)
 Print exposure time converted from APEX shutter speed value.
 
std::ostream & Exiv2::Internal::print0x9202 (std::ostream &os, const Value &value, const ExifData *)
 Print f-number converted from APEX aperture value.
 
std::ostream & Exiv2::Internal::print0x9204 (std::ostream &os, const Value &value, const ExifData *)
 Print the exposure bias value.
 
std::ostream & Exiv2::Internal::print0x9206 (std::ostream &os, const Value &value, const ExifData *)
 Print the subject distance.
 
std::ostream & Exiv2::Internal::print0x9207 (std::ostream &os, const Value &value, const ExifData *)
 Print metering mode.
 
std::ostream & Exiv2::Internal::print0x9208 (std::ostream &os, const Value &value, const ExifData *)
 Print light source.
 
std::ostream & Exiv2::Internal::print0x920a (std::ostream &os, const Value &value, const ExifData *)
 Print the actual focal length of the lens.
 
std::ostream & Exiv2::Internal::print0x9286 (std::ostream &os, const Value &value, const ExifData *)
 Print the user comment.
 
std::ostream & Exiv2::Internal::print0xa001 (std::ostream &os, const Value &value, const ExifData *)
 Print color space.
 
std::ostream & Exiv2::Internal::print0xa217 (std::ostream &os, const Value &value, const ExifData *)
 Print sensing method.
 
std::ostream & Exiv2::Internal::print0xa300 (std::ostream &os, const Value &value, const ExifData *)
 Print file source.
 
std::ostream & Exiv2::Internal::print0xa301 (std::ostream &os, const Value &value, const ExifData *)
 Print scene type.
 
std::ostream & Exiv2::Internal::print0xa401 (std::ostream &os, const Value &value, const ExifData *)
 Print custom rendered.
 
std::ostream & Exiv2::Internal::print0xa402 (std::ostream &os, const Value &value, const ExifData *)
 Print exposure mode.
 
std::ostream & Exiv2::Internal::print0xa403 (std::ostream &os, const Value &value, const ExifData *)
 Print white balance.
 
std::ostream & Exiv2::Internal::print0xa404 (std::ostream &os, const Value &value, const ExifData *)
 Print digital zoom ratio.
 
std::ostream & Exiv2::Internal::print0xa405 (std::ostream &os, const Value &value, const ExifData *)
 Print 35mm equivalent focal length.
 
std::ostream & Exiv2::Internal::print0xa406 (std::ostream &os, const Value &value, const ExifData *)
 Print scene capture type.
 
std::ostream & Exiv2::Internal::print0xa407 (std::ostream &os, const Value &value, const ExifData *)
 Print gain control.
 
std::ostream & Exiv2::Internal::print0xa409 (std::ostream &os, const Value &value, const ExifData *)
 Print saturation.
 
std::ostream & Exiv2::Internal::print0xa40c (std::ostream &os, const Value &value, const ExifData *)
 Print subject distance range.
 
std::ostream & Exiv2::Internal::printGPSDirRef (std::ostream &os, const Value &value, const ExifData *)
 Print GPS direction ref.
 
std::ostream & Exiv2::Internal::printNormalSoftHard (std::ostream &os, const Value &value, const ExifData *)
 Print contrast, sharpness (normal, soft, hard)
 
std::ostream & Exiv2::Internal::printExifVersion (std::ostream &os, const Value &value, const ExifData *)
 Print any version packed in 4 Bytes format : major major minor minor.
 
std::ostream & Exiv2::Internal::printXmpVersion (std::ostream &os, const Value &value, const ExifData *)
 Print any version encoded in the ASCII string majormajorminorminor.
 
std::ostream & Exiv2::Internal::printXmpDate (std::ostream &os, const Value &value, const ExifData *)
 Print a date following the format YYYY-MM-DDTHH:MM:SSZ.
 

Detailed Description

Internal Exif tag and type information.

Author
Andreas Huggel (ahu) ahuggel@gmx.net
Date
15-Jan-04, ahu: created
11-Feb-04, ahu: isolated as a component