Exiv2
olympusmn_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  */
37 #ifndef OLYMPUSMN_INT_HPP_
38 #define OLYMPUSMN_INT_HPP_
39 
40 // *****************************************************************************
41 // included header files
42 #include "tags.hpp"
43 #include "types.hpp"
44 
45 // + standard includes
46 #include <string>
47 #include <iosfwd>
48 #include <memory>
49 
50 // *****************************************************************************
51 // namespace extensions
52 namespace Exiv2 {
53  namespace Internal {
54 
55 // *****************************************************************************
56 // class definitions
57 
60  public:
62  static const TagInfo* tagList();
64  static const TagInfo* tagListCs();
66  static const TagInfo* tagListEq();
68  static const TagInfo* tagListRd();
70  static const TagInfo* tagListRd2();
72  static const TagInfo* tagListIp();
74  static const TagInfo* tagListFi();
76  static const TagInfo* tagListFe();
78  static const TagInfo* tagListRi();
79 
81 
82  static std::ostream& print0x0200(std::ostream& os, const Value& value, const ExifData*);
85  static std::ostream& print0x0204(std::ostream& os, const Value& value, const ExifData*);
87  static std::ostream& print0x1015(std::ostream& os, const Value& value, const ExifData*);
89  static std::ostream& print0x0201(std::ostream& os, const Value& value, const ExifData*);
91  static std::ostream& print0x0209(std::ostream& os, const Value& value, const ExifData*);
93  static std::ostream& printEq0x0301(std::ostream& os, const Value& value, const ExifData*);
95  static std::ostream& printCs0x0301(std::ostream& os, const Value& value, const ExifData*);
97  static std::ostream& print0x050f(std::ostream& os, const Value& value, const ExifData*);
99  static std::ostream& print0x0527(std::ostream& os, const Value& value, const ExifData*);
101  static std::ostream& print0x0529(std::ostream& os, const Value& value, const ExifData*);
103  static std::ostream& print0x1209(std::ostream& os, const Value& value, const ExifData*);
105  static std::ostream& print0x0305(std::ostream& os, const Value& value, const ExifData*);
107  static std::ostream& print0x0308(std::ostream& os, const Value& value, const ExifData*);
109  static std::ostream& printGeneric(std::ostream& os, const Value& value, const ExifData*);
111 
112  private:
114  static const TagInfo tagInfo_[];
115  static const TagInfo tagInfoCs_[];
116  static const TagInfo tagInfoEq_[];
117  static const TagInfo tagInfoRd_[];
118  static const TagInfo tagInfoRd2_[];
119  static const TagInfo tagInfoIp_[];
120  static const TagInfo tagInfoFi_[];
121  static const TagInfo tagInfoFe_[];
122  static const TagInfo tagInfoRi_[];
123 
124  }; // class OlympusMakerNote
125 
126 }} // namespace Internal, Exiv2
127 
128 #endif // #ifndef OLYMPUSMN_INT_HPP_
Exiv2::Internal::OlympusMakerNote::tagListRd2
static const TagInfo * tagListRd2()
Return read-only list of built-in Olympus Raw Development 2 tags.
Definition: olympusmn_int.cpp:918
Exiv2::Internal::TagDetails
Helper structure for lookup tables for translations of numeric tag values to human readable labels.
Definition: tags_int.hpp:188
Exiv2::Internal::OlympusMakerNote::print0x0200
static std::ostream & print0x0200(std::ostream &os, const Value &value, const ExifData *)
Print 'Special Mode'.
Definition: olympusmn_int.cpp:1156
Exiv2::Internal::olympusNoYes
const TagDetails olympusNoYes[]
NoYes, multiple tags.
Exiv2::Internal::olympusWhiteBalance
const TagDetails olympusWhiteBalance[]
WhiteBalance, tag 0x0500.
Exiv2::Internal::OlympusMakerNote::tagListFe
static const TagInfo * tagListFe()
Return read-only list of built-in Olympus FE tags.
Definition: olympusmn_int.cpp:1045
Exiv2::Internal::olympusRd2WhiteBalance
const TagDetails olympusRd2WhiteBalance[]
OlympusRd2 WhiteBalance, tag 0x0101.
olympusmn_int.hpp
Olympus makernote tags. References: [1] Exif file format, Appendix 1: MakerNote of Olympus Digicams ...
Exiv2::Internal::olympusRd2PictureMode
const TagDetails olympusRd2PictureMode[]
OlympusRd2 PictureMode, tag 0x010c.
Exiv2::Internal::OlympusMakerNote::print0x0209
static std::ostream & print0x0209(std::ostream &os, const Value &value, const ExifData *)
Print Olympus CamerID.
Definition: olympusmn_int.cpp:1406
Exiv2::Value::toRational
virtual Rational toRational(long n=0) const =0
Convert the n-th component of the value to a Rational. The behaviour of this method may be undefined ...
Exiv2::Value::size
virtual long size() const =0
Return the size of the value in bytes.
Exiv2::ExifData::findKey
iterator findKey(const ExifKey &key)
Find the first Exifdatum with the given key, return an iterator to it.
Definition: exif.cpp:581
Exiv2::Value
Common interface for all types of values used with metadata.
Definition: value.hpp:60
Exiv2::Internal::OlympusMakerNote::print0x0204
static std::ostream & print0x0204(std::ostream &os, const Value &value, const ExifData *)
Print Digital Zoom Factor.
Definition: olympusmn_int.cpp:1187
Exiv2::Internal::olympusFlashControlMode
const TagDetails olympusFlashControlMode[]
FlashControlMode, tag 0x0404.
EXV_PRINT_TAG_BITMASK
#define EXV_PRINT_TAG_BITMASK(array)
Shortcut for the printTagBitmask template which requires typing the array name only once.
Definition: tags_int.hpp:274
Exiv2::Internal::OlympusMakerNote::print0x0201
static std::ostream & print0x0201(std::ostream &os, const Value &value, const ExifData *)
Print Olympus equipment Lens type.
Definition: olympusmn_int.cpp:1256
Exiv2::Internal::olympusExposureMode
const TagDetails olympusExposureMode[]
ExposureMode, tag 0x0200.
Exiv2::Internal::olympusColorSpace
const TagDetails olympusColorSpace[]
ColorSpace, tag 0x0507.
types.hpp
Type definitions for Exiv2 and related functionality.
Exiv2::ExifData::const_iterator
ExifMetadata::const_iterator const_iterator
ExifMetadata const iterator type.
Definition: exif.hpp:439
Exiv2::Internal::olympusRd2PM_BWFilter
const TagDetails olympusRd2PM_BWFilter[]
OlympusRd2 PM_BWFilter, tag 0x0110.
Exiv2::Internal::olympusSceneMode
const TagDetails olympusSceneMode[]
SceneMode, tag 0x403 and CameraSettings tag 0x509.
Exiv2::undefined
@ undefined
Exif UNDEFINED type, an 8-bit byte that may contain anything.
Definition: types.hpp:137
Exiv2::Value::typeId
TypeId typeId() const
Return the type identifier (Exif data format type).
Definition: value.hpp:113
Exiv2::Internal::olympusOffOn
const TagDetails olympusOffOn[]
OffOn, multiple tags.
Exiv2::Internal::olympusMeteringMode
const TagDetails olympusMeteringMode[]
MeteringMode, tag 0x0202.
Exiv2::signedShort
@ signedShort
Exif SSHORT type, a 16-bit (2-byte) signed (twos-complement) integer.
Definition: types.hpp:138
Exiv2::Internal::olympusIpAspectRatio
const TagDetails olympusIpAspectRatio[]
OlympusIp olympusIpAspectRatio, tag 0x101c.
Exiv2::asciiString
@ asciiString
Exif ASCII type, 8-bit byte.
Definition: types.hpp:132
Exiv2::Internal::olympusFocusMode
const TagDetails olympusFocusMode[]
FocusMode, tag 0x100b.
Exiv2::Internal::OlympusMakerNote::printCs0x0301
static std::ostream & printCs0x0301(std::ostream &os, const Value &value, const ExifData *)
Print Olympus camera settings Focus Mode.
Definition: olympusmn_int.cpp:1455
Exiv2::Internal::OlympusMakerNote::tagListEq
static const TagInfo * tagListEq()
Return read-only list of built-in Olympus Equipment tags.
Definition: olympusmn_int.cpp:780
Exiv2::Internal::OlympusMakerNote::print0x0529
static std::ostream & print0x0529(std::ostream &os, const Value &value, const ExifData *)
Print Olympus ArtFilter.
Definition: olympusmn_int.cpp:1516
Exiv2::Internal::olympusEqFlashType
const TagDetails olympusEqFlashType[]
OlympusEq FlashType, tag 0x1000.
Exiv2::Value::count
virtual long count() const =0
Return the number of components of the value.
Exiv2::ExifData::end
iterator end()
End of the metadata.
Definition: exif.hpp:492
Exiv2::Internal::olympusFiExternalFlashBounce
const TagDetails olympusFiExternalFlashBounce[]
OlympusFi ExternalFlashBounce, tag 0x1204.
Exiv2::Internal::olympusImageStabilization
const TagDetails olympusImageStabilization[]
Olympus ImageStabilization, tag 0x0604.
Exiv2::Internal::olympusFlashDevice
const TagDetails olympusFlashDevice[]
FlashDevice, tag 0x1005.
Exiv2::Internal::OlympusMakerNote::print0x0305
static std::ostream & print0x0305(std::ostream &os, const Value &value, const ExifData *)
Print Olympus focus distance.
Definition: olympusmn_int.cpp:1600
Exiv2::unsignedLong
@ unsignedLong
Exif LONG type, 32-bit (4-byte) unsigned integer.
Definition: types.hpp:134
Exiv2::Internal::olympusRd2PMPictureTone
const TagDetails olympusRd2PMPictureTone[]
OlympusRd2 PMPictureTone, tag 0x0111.
Exiv2::Internal::olympusCCDScanMode
const TagDetails olympusCCDScanMode[]
CCDScanMode, tag 0x1039.
Exiv2::Internal::OlympusMakerNote::tagListCs
static const TagInfo * tagListCs()
Return read-only list of built-in Olympus Camera Settings tags.
Definition: olympusmn_int.cpp:723
Exiv2::Internal::olympusFlashRemoteControl
const TagDetails olympusFlashRemoteControl[]
FlashRemoteControl, tag 0x0403.
Exiv2::Value::toFloat
virtual float toFloat(long n=0) const =0
Convert the n-th component of the value to a float. The behaviour of this method may be undefined if ...
Exiv2::Internal::olympusAFSearch
const TagDetails olympusAFSearch[]
AFSearch, tag 0x0303.
Exiv2::Internal::olympusRdColorSpace
const TagDetails olympusRdColorSpace[]
OlympusRd ColorSpace, tag 0x0108.
Exiv2::Internal::olympusModifiedSaturation
const TagDetails olympusModifiedSaturation[]
ModifiedSaturation, tag 0x0504.
Exiv2::unsignedRational
@ unsignedRational
Exif RATIONAL type, two LONGs: numerator and denumerator of a fraction.
Definition: types.hpp:135
Exiv2::Internal::OlympusMakerNote::print0x1015
static std::ostream & print0x1015(std::ostream &os, const Value &value, const ExifData *)
Print White Balance Mode.
Definition: olympusmn_int.cpp:1204
Exiv2::Internal::OlympusMakerNote::print0x0527
static std::ostream & print0x0527(std::ostream &os, const Value &value, const ExifData *)
Print Olympus camera settings Noise Filter.
Definition: olympusmn_int.cpp:1136
Exiv2::Internal::olympusRd2ColorSpace
const TagDetails olympusRd2ColorSpace[]
OlympusRd2 ColorSpace, tag 0x0109.
EXV_PRINT_TAG
#define EXV_PRINT_TAG(array)
Shortcut for the printTag template which requires typing the array name only once.
Definition: tags_int.hpp:241
Exiv2::byte
uint8_t byte
1 byte unsigned integer type.
Definition: types.hpp:105
Exiv2::Internal::olympusFlashMode
const TagDetailsBitmask olympusFlashMode[]
FlashMode, tag 0x0400.
Exiv2::Internal::OlympusMakerNote::tagList
static const TagInfo * tagList()
Return read-only list of built-in Olympus tags.
Definition: olympusmn_int.cpp:469
Exiv2::Internal::olympusPictureMode
const TagDetails olympusPictureMode[]
PictureMode, tag 0x0520.
Exiv2::Internal::olympusRdSettings
const TagDetailsBitmask olympusRdSettings[]
OlympusRd Settings, tag 0x010c.
Exiv2::Internal::OlympusMakerNote::tagListRd
static const TagInfo * tagListRd()
Return read-only list of built-in Olympus Raw Development tags.
Definition: olympusmn_int.cpp:839
Exiv2::unsignedByte
@ unsignedByte
Exif BYTE type, 8-bit unsigned integer.
Definition: types.hpp:131
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:2162
Exiv2::ExifKey
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition: tags.hpp:148
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:175
Exiv2::Internal::olympusRdEditStatus
const TagDetails olympusRdEditStatus[]
OlympusRd EditStatus, tag 0x010b.
Exiv2::Internal::olympusSharpness
const TagDetails olympusSharpness[]
Sharpness, tag 0x100f.
Exiv2::Internal::OlympusMakerNote::printEq0x0301
static std::ostream & printEq0x0301(std::ostream &os, const Value &value, const ExifData *)
Print Olympus equipment Extender.
Definition: olympusmn_int.cpp:1421
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::unsignedShort
@ unsignedShort
Exif SHORT type, 16-bit (2-byte) unsigned integer.
Definition: types.hpp:133
Exiv2::Internal::OlympusMakerNote::tagListIp
static const TagInfo * tagListIp()
Return read-only list of built-in Olympus Image Processing tags.
Definition: olympusmn_int.cpp:999
Exiv2::Internal::olympusMacro
const TagDetails olympusMacro[]
Macro, tag 0x0202.
makernote_int.hpp
Makernote factory and registry, IFD makernote header, and camera vendor specific makernote implementa...
Exiv2
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Exiv2::Rational
std::pair< int32_t, int32_t > Rational
8 byte signed rational type.
Definition: types.hpp:110
value.hpp
Value interface and concrete subclasses.
Exiv2::signedLong
@ signedLong
Exif SLONG type, a 32-bit (4-byte) signed (twos-complement) integer.
Definition: types.hpp:139
image.hpp
Exiv2::Internal::OlympusMakerNote::printGeneric
static std::ostream & printGeneric(std::ostream &os, const Value &value, const ExifData *)
Print Olympus generic.
Exiv2::Internal::OlympusMakerNote
MakerNote for Olympus cameras.
Definition: olympusmn_int.hpp:59
Exiv2::signedRational
@ signedRational
Exif SRATIONAL type, two SLONGs: numerator and denumerator of a fraction.
Definition: types.hpp:140
Exiv2::Internal::olympusRd2Engine
const TagDetails olympusRd2Engine[]
OlympusRd2 Engine, tag 0x010b.
Exiv2::Internal::olympusCsFocusMode
const TagDetails olympusCsFocusMode[]
FocusMode, tag 0x0301.
Exiv2::TagInfo
Tag information.
Definition: tags.hpp:82
Exiv2::Internal::olympusContrast
const TagDetails olympusContrast[]
Contrast, tag 0x1029.
Exiv2::Internal::olympusRdEngine
const TagDetails olympusRdEngine[]
OlympusRd Engine, tag 0x0109.
Exiv2::Internal::olympusFocusProcess
const TagDetails olympusFocusProcess[]
FocusProcess, tag 0x0302.
Exiv2::Internal::olympusEqFlashModel
const TagDetails olympusEqFlashModel[]
OlympusEq FlashModel, tag 0x1001.
Exiv2::Internal::olympusFocusRange
const TagDetails olympusFocusRange[]
FocusRange, tag 0x100a.
Exiv2::Internal::OlympusMakerNote::print0x1209
static std::ostream & print0x1209(std::ostream &os, const Value &value, const ExifData *)
Print Olympus focus info ManualFlash.
Definition: olympusmn_int.cpp:1582
Exiv2::Internal::OlympusMakerNote::print0x050f
static std::ostream & print0x050f(std::ostream &os, const Value &value, const ExifData *)
Print Olympus camera settings Gradation.
Definition: olympusmn_int.cpp:1113
Exiv2::Internal::readExiv2Config
std::string readExiv2Config(const std::string &section, const std::string &value, const std::string &def)
Read value from Exiv2 configuration file.
Definition: makernote_int.cpp:113
tags_int.hpp
Internal Exif tag and type information.
Exiv2::Internal::olympusOneTouchWb
const TagDetails olympusOneTouchWb[]
OneTouchWB, tag 0x0302.
Exiv2::Internal::olympusRiLightSource
const TagDetails olympusRiLightSource[]
OlympusRi LightSource, tag 0x1000.
Exiv2::Internal::olympusQuality
const TagDetails olympusQuality[]
Quality, tag 0x0201.
Exiv2::Internal::olympusMacroMode
const TagDetails olympusMacroMode[]
MacroMode, tag 0x0300.
tags.hpp
Exif tag and type information.
Exiv2::Internal::olympusNoiseReduction
const TagDetailsBitmask olympusNoiseReduction[]
NoiseReduction, tag 0x050a.
Exiv2::model
EXIV2API ExifData::const_iterator model(const ExifData &ed)
Return the camera model.
Definition: easyaccess.cpp:436
Exiv2::string
@ string
IPTC string type.
Definition: types.hpp:147
Exiv2::Internal::olympusPictureModeTone
const TagDetails olympusPictureModeTone[]
PictureModeTone, tag 0x0526.
Exiv2::Internal::olympusPictureModeBWFilter
const TagDetails olympusPictureModeBWFilter[]
PictureModeBWFilter, tag 0x0525.
Exiv2::Internal::olympusIpMultipleExposureMode
const TagDetails olympusIpMultipleExposureMode[]
OlympusIp MultipleExposureMode, tag 0x101c.
Exiv2::Internal::OlympusMakerNote::tagListRi
static const TagInfo * tagListRi()
Return read-only list of built-in Olympus Raw Info tags.
Definition: olympusmn_int.cpp:1107
Exiv2::Internal::OlympusMakerNote::print0x0308
static std::ostream & print0x0308(std::ostream &os, const Value &value, const ExifData *)
Print Olympus focus info AF Point.
Definition: olympusmn_int.cpp:1623
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:2834
Exiv2::Internal::olympusCsQuality
const TagDetails olympusCsQuality[]
OlympusCs Quality, tag 0x0603.
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::Internal::OlympusMakerNote::tagListFi
static const TagInfo * tagListFi()
Return read-only list of built-in Olympus Focus Info tags.
Definition: olympusmn_int.cpp:1034