// ***************************************************************** -*- 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 , 5 th Floor , Boston , MA 02110 - 1301 USA .
*/
// *****************************************************************************
// included header files
# include "types.hpp"
# include "olympusmn_int.hpp"
# include "value.hpp"
# include "image.hpp"
# include "tags_int.hpp"
# include "makernote_int.hpp"
# include "i18n.h" // NLS support.
// + standard includes
# include <string>
# include <sstream>
# include <iomanip>
# include <cassert>
# include <cstring>
// *****************************************************************************
// class member definitions
namespace Exiv2 {
namespace Internal {
//! OffOn, multiple tags
extern const TagDetails olympusOffOn [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 1 , N_ ( " On " ) }
} ;
//! NoYes, multiple tags
extern const TagDetails olympusNoYes [ ] = {
{ 0 , N_ ( " No " ) } ,
{ 1 , N_ ( " Yes " ) }
} ;
//! Quality, tag 0x0201
extern const TagDetails olympusQuality [ ] = {
{ 1 , N_ ( " Standard Quality (SQ) " ) } ,
{ 2 , N_ ( " High Quality (HQ) " ) } ,
{ 3 , N_ ( " Super High Quality (SHQ) " ) } ,
{ 6 , N_ ( " Raw " ) }
} ;
//! Macro, tag 0x0202
extern const TagDetails olympusMacro [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 1 , N_ ( " On " ) } ,
{ 2 , N_ ( " Super macro " ) }
} ;
//! OneTouchWB, tag 0x0302
extern const TagDetails olympusOneTouchWb [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 1 , N_ ( " On " ) } ,
{ 2 , N_ ( " On (preset) " ) }
} ;
//! SceneMode, tag 0x403 and CameraSettings tag 0x509
extern const TagDetails olympusSceneMode [ ] = {
{ 0 , N_ ( " Standard " ) } ,
{ 6 , N_ ( " Auto " ) } ,
{ 7 , N_ ( " Sport " ) } ,
{ 8 , N_ ( " Portrait " ) } ,
{ 9 , N_ ( " Landscape+Portrait " ) } ,
{ 10 , N_ ( " Landscape " ) } ,
{ 11 , N_ ( " Night Scene " ) } ,
{ 12 , N_ ( " Self Portrait " ) } ,
{ 13 , N_ ( " Panorama " ) } ,
{ 14 , N_ ( " 2 in 1 " ) } ,
{ 15 , N_ ( " Movie " ) } ,
{ 16 , N_ ( " Landscape+Portrait " ) } ,
{ 17 , N_ ( " Night+Portrait " ) } ,
{ 18 , N_ ( " Indoor " ) } ,
{ 19 , N_ ( " Fireworks " ) } ,
{ 20 , N_ ( " Sunset " ) } ,
{ 22 , N_ ( " Macro " ) } ,
{ 23 , N_ ( " Super Macro " ) } ,
{ 24 , N_ ( " Food " ) } ,
{ 25 , N_ ( " Documents " ) } ,
{ 26 , N_ ( " Museum " ) } ,
{ 27 , N_ ( " Shoot & Select " ) } ,
{ 28 , N_ ( " Beach & Snow " ) } ,
{ 29 , N_ ( " Self Portrait+Timer " ) } ,
{ 30 , N_ ( " Candle " ) } ,
{ 31 , N_ ( " Available Light " ) } ,
{ 32 , N_ ( " Behind Glass " ) } ,
{ 33 , N_ ( " My Mode " ) } ,
{ 34 , N_ ( " Pet " ) } ,
{ 35 , N_ ( " Underwater Wide1 " ) } ,
{ 36 , N_ ( " Underwater Macro " ) } ,
{ 37 , N_ ( " Shoot & Select1 " ) } ,
{ 38 , N_ ( " Shoot & Select2 " ) } ,
{ 39 , N_ ( " High Key " ) } ,
{ 40 , N_ ( " Digital Image Stabilization " ) } ,
{ 41 , N_ ( " Auction " ) } ,
{ 42 , N_ ( " Beach " ) } ,
{ 43 , N_ ( " Snow " ) } ,
{ 44 , N_ ( " Underwater Wide2 " ) } ,
{ 45 , N_ ( " Low Key " ) } ,
{ 46 , N_ ( " Children " ) } ,
{ 47 , N_ ( " Vivid " ) } ,
{ 48 , N_ ( " Nature Macro " ) } ,
{ 49 , N_ ( " Underwater Snapshot " ) } ,
{ 50 , N_ ( " Shooting Guide " ) }
} ;
//! FlashDevice, tag 0x1005
extern const TagDetails olympusFlashDevice [ ] = {
{ 0 , N_ ( " None " ) } ,
{ 1 , N_ ( " Internal " ) } ,
{ 4 , N_ ( " External " ) } ,
{ 5 , N_ ( " Internal + External " ) }
} ;
//! FocusRange, tag 0x100a
extern const TagDetails olympusFocusRange [ ] = {
{ 0 , N_ ( " Normal " ) } ,
{ 1 , N_ ( " Macro " ) }
} ;
//! FocusMode, tag 0x100b
extern const TagDetails olympusFocusMode [ ] = {
{ 0 , N_ ( " Auto " ) } ,
{ 1 , N_ ( " Manual " ) }
} ;
//! Sharpness, tag 0x100f
extern const TagDetails olympusSharpness [ ] = {
{ 0 , N_ ( " Normal " ) } ,
{ 1 , N_ ( " Hard " ) } ,
{ 2 , N_ ( " Soft " ) }
} ;
//! Contrast, tag 0x1029
extern const TagDetails olympusContrast [ ] = {
{ 0 , N_ ( " High " ) } ,
{ 1 , N_ ( " Normal " ) } ,
{ 2 , N_ ( " Low " ) }
} ;
//! CCDScanMode, tag 0x1039
extern const TagDetails olympusCCDScanMode [ ] = {
{ 0 , N_ ( " Interlaced " ) } ,
{ 1 , N_ ( " Progressive " ) }
} ;
// Olympus Tag Info
const TagInfo OlympusMakerNote : : tagInfo_ [ ] = {
/* TODO:
add Minolta makenotes tags here ( 0x0000 - 0x0103 ) . See Exiftool database . */
TagInfo ( 0x0000 , " 0x0000 " , " 0x0000 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0100 , " ThumbnailImage " , N_ ( " Thumbnail Image " ) ,
N_ ( " Thumbnail image " ) ,
olympusId , makerTags , undefined , - 1 , printValue ) ,
TagInfo ( 0x0104 , " BodyFirmwareVersion " , N_ ( " Body Firmware Version " ) ,
N_ ( " Body firmware version " ) ,
olympusId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0200 , " SpecialMode " , N_ ( " Special Mode " ) ,
N_ ( " Picture taking mode " ) ,
olympusId , makerTags , unsignedLong , - 1 , print0x0200 ) ,
TagInfo ( 0x0201 , " Quality " , N_ ( " Quality " ) ,
N_ ( " Image quality setting " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusQuality ) ) ,
TagInfo ( 0x0202 , " Macro " , N_ ( " Macro " ) ,
N_ ( " Macro mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusMacro ) ) ,
TagInfo ( 0x0203 , " BWMode " , N_ ( " Black & White Mode " ) ,
N_ ( " Black and white mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x0204 , " DigitalZoom " , N_ ( " Digital Zoom " ) ,
N_ ( " Digital zoom ratio " ) ,
olympusId , makerTags , unsignedRational , - 1 , print0x0204 ) ,
TagInfo ( 0x0205 , " FocalPlaneDiagonal " , N_ ( " Focal Plane Diagonal " ) ,
N_ ( " Focal plane diagonal " ) ,
olympusId , makerTags , unsignedRational , - 1 , printValue ) ,
TagInfo ( 0x0206 , " LensDistortionParams " , N_ ( " Lens Distortion Parameters " ) ,
N_ ( " Lens distortion parameters " ) ,
olympusId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0207 , " CameraType " , N_ ( " Camera Type " ) ,
N_ ( " Camera type " ) ,
olympusId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0208 , " PictureInfo " , N_ ( " Picture Info " ) ,
N_ ( " ASCII format data such as [PictureInfo] " ) ,
olympusId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0209 , " CameraID " , N_ ( " Camera ID " ) ,
N_ ( " Camera ID data " ) ,
olympusId , makerTags , asciiString , - 1 , print0x0209 ) ,
TagInfo ( 0x020b , " ImageWidth " , N_ ( " Image Width " ) ,
N_ ( " Image width " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x020c , " ImageHeight " , N_ ( " Image Height " ) ,
N_ ( " Image height " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x020d , " Software " , N_ ( " Software " ) ,
N_ ( " Software " ) ,
olympusId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0280 , " PreviewImage " , N_ ( " Preview Image " ) ,
N_ ( " Preview image " ) ,
olympusId , makerTags , unsignedByte , - 1 , printValue ) ,
TagInfo ( 0x0300 , " PreCaptureFrames " , N_ ( " Pre Capture Frames " ) ,
N_ ( " Pre-capture frames " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0301 , " WhiteBoard " , N_ ( " White Board " ) ,
N_ ( " White board " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0302 , " OneTouchWB " , N_ ( " One Touch WB " ) ,
N_ ( " One touch white balance " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOneTouchWb ) ) ,
TagInfo ( 0x0303 , " WhiteBalanceBracket " , N_ ( " White Balance Bracket " ) ,
N_ ( " White balance bracket " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0304 , " WhiteBalanceBias " , N_ ( " White Balance Bias " ) ,
N_ ( " White balance bias " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0403 , " SceneMode " , N_ ( " Scene Mode " ) ,
N_ ( " Scene mode " ) ,
olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusSceneMode ) ) ,
TagInfo ( 0x0404 , " Firmware " , N_ ( " Firmware " ) ,
N_ ( " Firmware " ) ,
olympusId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0e00 , " PrintIM " , N_ ( " Print IM " ) ,
N_ ( " PrintIM information " ) ,
olympusId , makerTags , undefined , - 1 , printValue ) ,
TagInfo ( 0x0f00 , " DataDump1 " , N_ ( " Data Dump 1 " ) ,
N_ ( " Various camera settings 1 " ) ,
olympusId , makerTags , undefined , - 1 , printValue ) ,
TagInfo ( 0x0f01 , " DataDump2 " , N_ ( " Data Dump 2 " ) ,
N_ ( " Various camera settings 2 " ) ,
olympusId , makerTags , undefined , - 1 , printValue ) ,
TagInfo ( 0x1000 , " ShutterSpeed " , N_ ( " Shutter Speed " ) ,
N_ ( " Shutter speed value " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1001 , " ISOSpeed " , N_ ( " ISO Speed " ) ,
N_ ( " ISO speed value " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1002 , " ApertureValue " , N_ ( " Aperture Value " ) ,
N_ ( " Aperture value " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1003 , " Brightness " , N_ ( " Brightness " ) ,
N_ ( " Brightness value " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1004 , " FlashMode " , N_ ( " Flash Mode " ) ,
N_ ( " Flash mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1005 , " FlashDevice " , N_ ( " Flash Device " ) ,
N_ ( " Flash device " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFlashDevice ) ) ,
TagInfo ( 0x1006 , " Bracket " , N_ ( " Bracket " ) ,
N_ ( " Exposure compensation value " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1007 , " SensorTemperature " , N_ ( " Sensor Temperature " ) ,
N_ ( " Sensor temperature " ) ,
olympusId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1008 , " LensTemperature " , N_ ( " Lens Temperature " ) ,
N_ ( " Lens temperature " ) ,
olympusId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1009 , " LightCondition " , N_ ( " Light Condition " ) ,
N_ ( " Light condition " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x100a , " FocusRange " , N_ ( " Focus Range " ) ,
N_ ( " Focus range " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFocusRange ) ) ,
TagInfo ( 0x100b , " FocusMode " , N_ ( " Focus Mode " ) ,
N_ ( " Focus mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFocusMode ) ) ,
TagInfo ( 0x100c , " FocusDistance " , N_ ( " Focus Distance " ) ,
N_ ( " Manual focus distance " ) ,
olympusId , makerTags , unsignedRational , - 1 , printValue ) ,
TagInfo ( 0x100d , " Zoom " , N_ ( " Zoom " ) ,
N_ ( " Zoom step count " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x100e , " MacroFocus " , N_ ( " Macro Focus " ) ,
N_ ( " Macro focus step count " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x100f , " SharpnessFactor " , N_ ( " Sharpness Factor " ) ,
N_ ( " Sharpness factor " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusSharpness ) ) ,
TagInfo ( 0x1010 , " FlashChargeLevel " , N_ ( " Flash Charge Level " ) ,
N_ ( " Flash charge level " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1011 , " ColorMatrix " , N_ ( " Color Matrix " ) ,
N_ ( " Color matrix " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1012 , " BlackLevel " , N_ ( " BlackLevel " ) ,
N_ ( " Black level " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1013 , " 0x1013 " , " 0x1013 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1014 , " 0x1014 " , " 0x1014 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1015 , " WhiteBalance " , N_ ( " White Balance " ) ,
N_ ( " White balance mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , print0x1015 ) ,
TagInfo ( 0x1016 , " 0x1016 " , " 0x1016 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1017 , " RedBalance " , N_ ( " Red Balance " ) ,
N_ ( " Red balance " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1018 , " BlueBalance " , N_ ( " Blue Balance " ) ,
N_ ( " Blue balance " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1019 , " ColorMatrixNumber " , N_ ( " Color Matrix Number " ) ,
N_ ( " Color matrix number " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x101a , " SerialNumber2 " , N_ ( " Serial Number 2 " ) ,
N_ ( " Serial number 2 " ) ,
olympusId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x101b , " 0x101b " , " 0x101b " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x101c , " 0x101c " , " 0x101c " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x101d , " 0x101d " , " 0x101d " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x101e , " 0x101e " , " 0x101e " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x101f , " 0x101f " , " 0x101f " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1020 , " 0x1020 " , " 0x1020 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1021 , " 0x1021 " , " 0x1021 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1022 , " 0x1022 " , " 0x1022 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1023 , " FlashBias " , N_ ( " Flash Bias " ) ,
N_ ( " Flash exposure compensation " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1024 , " 0x1024 " , " 0x1024 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1025 , " 0x1025 " , " 0x1025 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1026 , " ExternalFlashBounce " , N_ ( " External Flash Bounce " ) ,
N_ ( " External flash bounce " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1027 , " ExternalFlashZoom " , N_ ( " External Flash Zoom " ) ,
N_ ( " External flash zoom " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1028 , " ExternalFlashMode " , N_ ( " External Flash Mode " ) ,
N_ ( " External flash mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1029 , " Contrast " , N_ ( " Contrast " ) ,
N_ ( " Contrast setting " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusContrast ) ) ,
TagInfo ( 0x102a , " SharpnessFactor " , N_ ( " Sharpness Factor " ) ,
N_ ( " Sharpness factor " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x102b , " ColorControl " , N_ ( " Color Control " ) ,
N_ ( " Color control " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x102c , " ValidBits " , N_ ( " ValidBits " ) ,
N_ ( " Valid bits " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x102d , " CoringFilter " , N_ ( " CoringFilter " ) ,
N_ ( " Coring filter " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x102e , " ImageWidth " , N_ ( " Image Width " ) ,
N_ ( " Image width " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x102f , " ImageHeight " , N_ ( " Image Height " ) ,
N_ ( " Image height " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1030 , " 0x1030 " , " 0x1030 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1031 , " 0x1031 " , " 0x1031 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1032 , " 0x1032 " , " 0x1032 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1033 , " 0x1033 " , " 0x1033 " ,
N_ ( " Unknown " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1034 , " CompressionRatio " , N_ ( " Compression Ratio " ) ,
N_ ( " Compression ratio " ) ,
olympusId , makerTags , unsignedRational , - 1 , printValue ) ,
TagInfo ( 0x1035 , " Thumbnail " , N_ ( " Thumbnail " ) ,
N_ ( " Preview image embedded " ) ,
olympusId , makerTags , unsignedLong , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1036 , " ThumbnailOffset " , N_ ( " Thumbnail Offset " ) ,
N_ ( " Offset of the preview image " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1037 , " ThumbnailLength " , N_ ( " Thumbnail Length " ) ,
N_ ( " Size of the preview image " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1039 , " CCDScanMode " , N_ ( " CCD Scan Mode " ) ,
N_ ( " CCD scan mode " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusCCDScanMode ) ) ,
TagInfo ( 0x103a , " NoiseReduction " , N_ ( " Noise Reduction " ) ,
N_ ( " Noise reduction " ) ,
olympusId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x103b , " InfinityLensStep " , N_ ( " Infinity Lens Step " ) ,
N_ ( " Infinity lens step " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x103c , " NearLensStep " , N_ ( " Near Lens Step " ) ,
N_ ( " Near lens step " ) ,
olympusId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x2010 , " Equipment " , N_ ( " Equipment Info " ) ,
N_ ( " Camera equipment sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x2020 , " CameraSettings " , N_ ( " Camera Settings " ) ,
N_ ( " Camera Settings sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x2030 , " RawDevelopment " , N_ ( " Raw Development " ) ,
N_ ( " Raw development sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x2031 , " RawDevelopment2 " , N_ ( " Raw Development 2 " ) ,
N_ ( " Raw development 2 sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x2040 , " ImageProcessing " , N_ ( " Image Processing " ) ,
N_ ( " Image processing sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x2050 , " FocusInfo " , N_ ( " Focus Info " ) ,
N_ ( " Focus sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x3000 , " RawInfo " , N_ ( " Raw Info " ) ,
N_ ( " Raw sub-IFD " ) ,
olympusId , makerTags , unsignedLong , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusMakerNoteTag) " , " (UnknownOlympusMakerNoteTag) " ,
N_ ( " Unknown OlympusMakerNote tag " ) ,
olympusId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagList ( )
{
return tagInfo_ ;
}
// Olympus CameraSettings Tags
//! ExposureMode, tag 0x0200
extern const TagDetails olympusExposureMode [ ] = {
{ 1 , N_ ( " Manual " ) } ,
{ 2 , N_ ( " Program " ) } ,
{ 3 , N_ ( " Aperture-priority AE " ) } ,
{ 4 , N_ ( " Shutter speed priority AE " ) } ,
{ 5 , N_ ( " Program-shift " ) }
} ;
//! MeteringMode, tag 0x0202
extern const TagDetails olympusMeteringMode [ ] = {
{ 2 , N_ ( " Center-weighted average " ) } ,
{ 3 , N_ ( " Spot " ) } ,
{ 5 , N_ ( " ESP " ) } ,
{ 261 , N_ ( " Pattern+AF " ) } ,
{ 515 , N_ ( " Spot+Highlight control " ) } ,
{ 1027 , N_ ( " Spot+Shadow control " ) }
} ;
//! MacroMode, tag 0x0300
extern const TagDetails olympusMacroMode [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 1 , N_ ( " On " ) } ,
{ 2 , N_ ( " Super Macro " ) }
} ;
//! FocusMode, tag 0x0301
extern const TagDetails olympusCsFocusMode [ ] = {
{ 0 , N_ ( " Single AF " ) } ,
{ 1 , N_ ( " Sequential shooting AF " ) } ,
{ 2 , N_ ( " Continuous AF " ) } ,
{ 3 , N_ ( " Multi AF " ) } ,
{ 10 , N_ ( " MF " ) }
} ;
//! FocusProcess, tag 0x0302
extern const TagDetails olympusFocusProcess [ ] = {
{ 0 , N_ ( " AF Not Used " ) } ,
{ 1 , N_ ( " AF Used " ) }
} ;
//! AFSearch, tag 0x0303
extern const TagDetails olympusAFSearch [ ] = {
{ 0 , N_ ( " Not Ready " ) } ,
{ 1 , N_ ( " Ready " ) }
} ;
//! FlashMode, tag 0x0400
extern const TagDetailsBitmask olympusFlashMode [ ] = {
{ 0x0000 , N_ ( " Off " ) } ,
{ 0x0001 , N_ ( " On " ) } ,
{ 0x0002 , N_ ( " Fill-in " ) } ,
{ 0x0004 , N_ ( " Red-eye " ) } ,
{ 0x0008 , N_ ( " Slow-sync " ) } ,
{ 0x0010 , N_ ( " Forced On " ) } ,
{ 0x0020 , N_ ( " 2nd Curtain " ) }
} ;
//! FlashRemoteControl, tag 0x0403
extern const TagDetails olympusFlashRemoteControl [ ] = {
{ 0x0 , N_ ( " Off " ) } ,
{ 0x1 , N_ ( " Channel 1, Low " ) } ,
{ 0x2 , N_ ( " Channel 2, Low " ) } ,
{ 0x3 , N_ ( " Channel 3, Low " ) } ,
{ 0x4 , N_ ( " Channel 4, Low " ) } ,
{ 0x9 , N_ ( " Channel 1, Mid " ) } ,
{ 0xa , N_ ( " Channel 2, Mid " ) } ,
{ 0xb , N_ ( " Channel 3, Mid " ) } ,
{ 0xc , N_ ( " Channel 4, Mid " ) } ,
{ 0x11 , N_ ( " Channel 1, High " ) } ,
{ 0x12 , N_ ( " Channel 2, High " ) } ,
{ 0x13 , N_ ( " Channel 3, High " ) } ,
{ 0x14 , N_ ( " Channel 4, High " ) }
} ;
//! FlashControlMode, tag 0x0404
extern const TagDetails olympusFlashControlMode [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 3 , N_ ( " TTL " ) } ,
{ 4 , N_ ( " Auto " ) } ,
{ 5 , N_ ( " Manual " ) }
} ;
//! WhiteBalance, tag 0x0500
extern const TagDetails olympusWhiteBalance [ ] = {
{ 0 , N_ ( " Auto " ) } ,
{ 1 , N_ ( " Auto (Keep Warm Color Off " ) } ,
{ 16 , N_ ( " 7500K (Fine Weather with Shade) " ) } ,
{ 17 , N_ ( " 6000K (Cloudy) " ) } ,
{ 18 , N_ ( " 5300K (Fine Weather) " ) } ,
{ 20 , N_ ( " 3000K (Tungsten light) " ) } ,
{ 21 , N_ ( " 3600K (Tungsten light-like) " ) } ,
{ 22 , N_ ( " Auto Setup " ) } ,
{ 23 , N_ ( " 5500K (Flash) " ) } ,
{ 33 , N_ ( " 6600K (Daylight fluorescent) " ) } ,
{ 34 , N_ ( " 4500K (Neutral white fluorescent) " ) } ,
{ 35 , N_ ( " 4000K (Cool white fluorescent) " ) } ,
{ 36 , N_ ( " White Fluorescent " ) } ,
{ 48 , N_ ( " 3600K (Tungsten light-like) " ) } ,
{ 67 , N_ ( " Underwater " ) } ,
{ 256 , N_ ( " One Touch WB 1 " ) } ,
{ 257 , N_ ( " One Touch WB 2 " ) } ,
{ 258 , N_ ( " One Touch WB 3 " ) } ,
{ 259 , N_ ( " One Touch WB 4 " ) } ,
{ 512 , N_ ( " Custom WB 1 " ) } ,
{ 513 , N_ ( " Custom WB 2 " ) } ,
{ 514 , N_ ( " Custom WB 3 " ) } ,
{ 515 , N_ ( " Custom WB 4 " ) }
} ;
//! ModifiedSaturation, tag 0x0504
extern const TagDetails olympusModifiedSaturation [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 1 , N_ ( " CM1 (Red Enhance) " ) } ,
{ 2 , N_ ( " CM2 (Green Enhance) " ) } ,
{ 3 , N_ ( " CM3 (Blue Enhance) " ) } ,
{ 4 , N_ ( " CM4 (Skin Tones) " ) }
} ;
//! ColorSpace, tag 0x0507
extern const TagDetails olympusColorSpace [ ] = {
{ 0 , N_ ( " sRGB " ) } ,
{ 1 , N_ ( " Adobe RGB " ) } ,
{ 2 , N_ ( " Pro Photo RGB " ) }
} ;
//! NoiseReduction, tag 0x050a
extern const TagDetailsBitmask olympusNoiseReduction [ ] = {
{ 0x0001 , N_ ( " Noise Reduction " ) } ,
{ 0x0002 , N_ ( " Noise Filter " ) } ,
{ 0x0004 , N_ ( " Noise Filter (ISO Boost) " ) } ,
{ 0x0008 , N_ ( " Auto " ) }
} ;
//! PictureMode, tag 0x0520
extern const TagDetails olympusPictureMode [ ] = {
{ 1 , N_ ( " Vivid " ) } ,
{ 2 , N_ ( " Natural " ) } ,
{ 3 , N_ ( " Muted " ) } ,
{ 4 , N_ ( " Portrait " ) } ,
{ 5 , N_ ( " i-Enhance " ) } ,
{ 6 , N_ ( " e-Portrait " ) } ,
{ 7 , N_ ( " Color Creator " ) } ,
{ 9 , N_ ( " Color Profile 1 " ) } ,
{ 10 , N_ ( " Color Profile 2 " ) } ,
{ 11 , N_ ( " Color Profile 3 " ) } ,
{ 12 , N_ ( " Monochrome Profile 1 " ) } ,
{ 13 , N_ ( " Monochrome Profile 2 " ) } ,
{ 14 , N_ ( " Monochrome Profile 3 " ) } ,
{ 256 , N_ ( " Monotone " ) } ,
{ 512 , N_ ( " Sepia " ) }
} ;
//! PictureModeBWFilter, tag 0x0525
extern const TagDetails olympusPictureModeBWFilter [ ] = {
{ 0 , N_ ( " n/a " ) } ,
{ 1 , N_ ( " Neutral " ) } ,
{ 2 , N_ ( " Yellow " ) } ,
{ 3 , N_ ( " Orange " ) } ,
{ 4 , N_ ( " Red " ) } ,
{ 5 , N_ ( " Green " ) }
} ;
//! PictureModeTone, tag 0x0526
extern const TagDetails olympusPictureModeTone [ ] = {
{ 0 , N_ ( " n/a " ) } ,
{ 1 , N_ ( " Neutral " ) } ,
{ 2 , N_ ( " Sepia " ) } ,
{ 3 , N_ ( " Blue " ) } ,
{ 4 , N_ ( " Purple " ) } ,
{ 5 , N_ ( " Green " ) }
} ;
//! OlympusCs Quality, tag 0x0603
extern const TagDetails olympusCsQuality [ ] = {
{ 1 , N_ ( " SQ " ) } ,
{ 2 , N_ ( " HQ " ) } ,
{ 3 , N_ ( " SHQ " ) } ,
{ 4 , N_ ( " RAW " ) }
} ;
//! Olympus ImageStabilization, tag 0x0604
extern const TagDetails olympusImageStabilization [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 1 , N_ ( " On, Mode 1 " ) } ,
{ 2 , N_ ( " On, Mode 2 " ) } ,
{ 3 , N_ ( " On, Mode 3 " ) }
} ;
const TagInfo OlympusMakerNote : : tagInfoCs_ [ ] = {
TagInfo ( 0x0000 , " CameraSettingsVersion " , N_ ( " Camera Settings Version " ) , N_ ( " Camera settings version " ) , olympusCsId , makerTags , undefined , - 1 , printExifVersion ) ,
TagInfo ( 0x0100 , " PreviewImageValid " , N_ ( " PreviewImage Valid " ) , N_ ( " Preview image valid " ) , olympusCsId , makerTags , unsignedLong , - 1 , EXV_PRINT_TAG ( olympusNoYes ) ) ,
TagInfo ( 0x0101 , " PreviewImageStart " , N_ ( " PreviewImage Start " ) , N_ ( " Preview image start " ) , olympusCsId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0102 , " PreviewImageLength " , N_ ( " PreviewImage Length " ) , N_ ( " Preview image length " ) , olympusCsId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0200 , " ExposureMode " , N_ ( " Exposure Mode " ) , N_ ( " Exposure mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusExposureMode ) ) ,
TagInfo ( 0x0201 , " AELock " , N_ ( " AE Lock " ) , N_ ( " Auto exposure lock " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x0202 , " MeteringMode " , N_ ( " Metering Mode " ) , N_ ( " Metering mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusMeteringMode ) ) ,
TagInfo ( 0x0203 , " ExposureShift " , N_ ( " Exposure Shift " ) , N_ ( " Exposure shift " ) , olympusCsId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0300 , " MacroMode " , N_ ( " Macro Mode " ) , N_ ( " Macro mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusMacroMode ) ) ,
TagInfo ( 0x0301 , " FocusMode " , N_ ( " Focus Mode " ) , N_ ( " Focus mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , printCs0x0301 ) ,
TagInfo ( 0x0302 , " FocusProcess " , N_ ( " Focus Process " ) , N_ ( " Focus process " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFocusProcess ) ) ,
TagInfo ( 0x0303 , " AFSearch " , N_ ( " AF Search " ) , N_ ( " AF search " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusAFSearch ) ) ,
TagInfo ( 0x0304 , " AFAreas " , N_ ( " AF Areas " ) , N_ ( " AF areas " ) , olympusCsId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0305 , " AFPointSelected " , N_ ( " AFPointSelected " ) , N_ ( " AFPointSelected " ) , olympusCsId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0307 , " AFFineTuneAdj " , N_ ( " AF Fine Tune Adjust " ) , N_ ( " AF fine tune adjust " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0400 , " FlashMode " , N_ ( " Flash Mode " ) , N_ ( " Flash mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG_BITMASK ( olympusFlashMode ) ) ,
TagInfo ( 0x0401 , " FlashExposureComp " , N_ ( " Flash Exposure Compensation " ) , N_ ( " Flash exposure compensation " ) , olympusCsId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0403 , " FlashRemoteControl " , N_ ( " Flash Remote Control " ) , N_ ( " Flash remote control " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFlashRemoteControl ) ) ,
TagInfo ( 0x0404 , " FlashControlMode " , N_ ( " Flash Control Mode " ) , N_ ( " Flash control mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFlashControlMode ) ) ,
TagInfo ( 0x0405 , " FlashIntensity " , N_ ( " Flash Intensity " ) , N_ ( " Flash intensity " ) , olympusCsId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0406 , " ManualFlashStrength " , N_ ( " Manual Flash Strength " ) , N_ ( " Manual flash strength " ) , olympusCsId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0500 , " WhiteBalance " , N_ ( " White Balance 2 " ) , N_ ( " White balance 2 " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusWhiteBalance ) ) ,
TagInfo ( 0x0501 , " WhiteBalanceTemperature " , N_ ( " White Balance Temperature " ) , N_ ( " White balance temperature " ) , olympusCsId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0502 , " WhiteBalanceBracket " , N_ ( " White Balance Bracket " ) , N_ ( " White balance bracket " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0503 , " CustomSaturation " , N_ ( " Custom Saturation " ) , N_ ( " Custom saturation " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0504 , " ModifiedSaturation " , N_ ( " Modified Saturation " ) , N_ ( " Modified saturation " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusModifiedSaturation ) ) ,
TagInfo ( 0x0505 , " ContrastSetting " , N_ ( " Contrast Setting " ) , N_ ( " Contrast setting " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0506 , " SharpnessSetting " , N_ ( " Sharpness Setting " ) , N_ ( " Sharpness setting " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0507 , " ColorSpace " , N_ ( " Color Space " ) , N_ ( " Color space " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusColorSpace ) ) ,
TagInfo ( 0x0509 , " SceneMode " , N_ ( " Scene Mode " ) , N_ ( " Scene mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusSceneMode ) ) ,
TagInfo ( 0x050a , " NoiseReduction " , N_ ( " Noise Reduction " ) , N_ ( " Noise reduction " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG_BITMASK ( olympusNoiseReduction ) ) ,
TagInfo ( 0x050b , " DistortionCorrection " , N_ ( " Distortion Correction " ) , N_ ( " Distortion correction " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x050c , " ShadingCompensation " , N_ ( " Shading Compensation " ) , N_ ( " Shading compensation " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x050d , " CompressionFactor " , N_ ( " Compression Factor " ) , N_ ( " Compression factor " ) , olympusCsId , makerTags , unsignedRational , - 1 , printValue ) ,
TagInfo ( 0x050f , " Gradation " , N_ ( " Gradation " ) , N_ ( " Gradation " ) , olympusCsId , makerTags , signedShort , - 1 , print0x050f ) ,
TagInfo ( 0x0520 , " PictureMode " , N_ ( " Picture Mode " ) , N_ ( " Picture mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusPictureMode ) ) ,
TagInfo ( 0x0521 , " PictureModeSaturation " , N_ ( " Picture Mode Saturation " ) , N_ ( " Picture mode saturation " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0522 , " PictureModeHue " , N_ ( " Picture Mode Hue " ) , N_ ( " Picture mode hue " ) , olympusCsId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0523 , " PictureModeContrast " , N_ ( " Picture Mode Contrast " ) , N_ ( " Picture mode contrast " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0524 , " PictureModeSharpness " , N_ ( " Picture Mode Sharpness " ) , N_ ( " Picture mode sharpness " ) , olympusCsId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0525 , " PictureModeBWFilter " , N_ ( " Picture Mode BW Filter " ) , N_ ( " Picture mode BW filter " ) , olympusCsId , makerTags , signedShort , - 1 , EXV_PRINT_TAG ( olympusPictureModeBWFilter ) ) ,
TagInfo ( 0x0526 , " PictureModeTone " , N_ ( " Picture Mode Tone " ) , N_ ( " Picture mode tone " ) , olympusCsId , makerTags , signedShort , - 1 , EXV_PRINT_TAG ( olympusPictureModeTone ) ) ,
TagInfo ( 0x0527 , " NoiseFilter " , N_ ( " Noise Filter " ) , N_ ( " Noise filter " ) , olympusCsId , makerTags , signedShort , - 1 , print0x0527 ) ,
TagInfo ( 0x0529 , " ArtFilter " , N_ ( " Art Filter " ) , N_ ( " Art filter " ) , olympusCsId , makerTags , unsignedShort , - 1 , print0x0529 ) ,
TagInfo ( 0x052c , " MagicFilter " , N_ ( " Magic Filter " ) , N_ ( " Magic filter " ) , olympusCsId , makerTags , unsignedShort , - 1 , print0x0529 ) ,
TagInfo ( 0x0600 , " DriveMode " , N_ ( " Drive Mode " ) , N_ ( " Drive mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0601 , " PanoramaMode " , N_ ( " Panorama Mode " ) , N_ ( " Panorama mode " ) , olympusCsId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0603 , " Quality " , N_ ( " Image Quality 2 " ) , N_ ( " Image quality 2 " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusCsQuality ) ) ,
TagInfo ( 0x0604 , " ImageStabilization " , N_ ( " Image Stabilization " ) , N_ ( " Image stabilization " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusImageStabilization ) ) ,
TagInfo ( 0x0900 , " ManometerPressure " , N_ ( " Manometer Pressure " ) , N_ ( " Manometer pressure " ) , olympusCsId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0901 , " ManometerReading " , N_ ( " Manometer Reading " ) , N_ ( " Manometer reading " ) , olympusCsId , makerTags , signedLong , - 1 , printValue ) ,
TagInfo ( 0x0902 , " ExtendedWBDetect " , N_ ( " Extended WB Detect " ) , N_ ( " Extended WB detect " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x0903 , " LevelGaugeRoll " , N_ ( " Level Gauge Roll " ) , N_ ( " Level gauge roll " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x0904 , " LevelGaugePitch " , N_ ( " Level Gauge Pitch " ) , N_ ( " Level gauge pitch " ) , olympusCsId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusCsTag) " , " (UnknownOlympusCsTag) " , N_ ( " Unknown OlympusCs tag " ) , olympusCsId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListCs ( )
{
return tagInfoCs_ ;
}
//! OlympusEq FlashType, tag 0x1000
extern const TagDetails olympusEqFlashType [ ] = {
{ 0 , N_ ( " None " ) } ,
{ 2 , N_ ( " Simple E-System " ) } ,
{ 3 , N_ ( " E-System " ) }
} ;
//! OlympusEq FlashModel, tag 0x1001
extern const TagDetails olympusEqFlashModel [ ] = {
{ 0 , N_ ( " None " ) } ,
{ 1 , " FL-20 " } ,
{ 2 , " FL-50 " } ,
{ 3 , " RF-11 " } ,
{ 4 , " TF-22 " } ,
{ 5 , " FL-36 " } ,
{ 6 , " FL-50R " } ,
{ 7 , " FL-36R " } ,
{ 9 , " FL-14 " } ,
{ 11 , " FL-600R " } ,
{ 11 , " FL-600R " } // To silence compiler warning
} ;
const TagInfo OlympusMakerNote : : tagInfoEq_ [ ] = {
TagInfo ( 0x0000 , " EquipmentVersion " , N_ ( " Equipment Version " ) , N_ ( " Equipment version " ) , olympusEqId , makerTags , undefined , - 1 , printExifVersion ) ,
TagInfo ( 0x0100 , " CameraType " , N_ ( " Camera Type " ) , N_ ( " Camera type " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0101 , " SerialNumber " , N_ ( " Serial Number " ) , N_ ( " Serial number " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0102 , " InternalSerialNumber " , N_ ( " Internal Serial Number " ) , N_ ( " Internal serial number " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0103 , " FocalPlaneDiagonal " , N_ ( " Focal Plane Diagonal " ) , N_ ( " Focal plane diagonal " ) , olympusEqId , makerTags , unsignedRational , - 1 , printValue ) ,
TagInfo ( 0x0104 , " BodyFirmwareVersion " , N_ ( " Body Firmware Version " ) , N_ ( " Body firmware version " ) , olympusEqId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0201 , " LensType " , N_ ( " Lens Type " ) , N_ ( " Lens type " ) , olympusEqId , makerTags , unsignedByte , - 1 , print0x0201 ) ,
TagInfo ( 0x0202 , " LensSerialNumber " , N_ ( " Lens Serial Number " ) , N_ ( " Lens serial number " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0203 , " LensModel " , N_ ( " Lens Model " ) , N_ ( " Lens model " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0204 , " LensFirmwareVersion " , N_ ( " Lens Firmware Version " ) , N_ ( " Lens firmware version " ) , olympusEqId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0205 , " MaxApertureAtMinFocal " , N_ ( " Max Aperture At Min Focal " ) , N_ ( " Max aperture at min focal " ) , olympusEqId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0206 , " MaxApertureAtMaxFocal " , N_ ( " Max Aperture At Max Focal " ) , N_ ( " Max aperture at max focal " ) , olympusEqId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0207 , " MinFocalLength " , N_ ( " Min Focal Length " ) , N_ ( " Min focal length " ) , olympusEqId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0208 , " MaxFocalLength " , N_ ( " Max Focal Length " ) , N_ ( " Max focal length " ) , olympusEqId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x020a , " MaxApertureAtCurrentFocal " , N_ ( " Max Aperture At Current Focal " ) , N_ ( " Max aperture at current focal " ) , olympusEqId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x020b , " LensProperties " , N_ ( " Lens Properties " ) , N_ ( " Lens properties " ) , olympusEqId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0301 , " Extender " , N_ ( " Extender " ) , N_ ( " Extender " ) , olympusEqId , makerTags , unsignedByte , - 1 , printEq0x0301 ) ,
TagInfo ( 0x0302 , " ExtenderSerialNumber " , N_ ( " Extender Serial Number " ) , N_ ( " Extender serial number " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0303 , " ExtenderModel " , N_ ( " Extender Model " ) , N_ ( " Extender model " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x0304 , " ExtenderFirmwareVersion " , N_ ( " Extender Firmware Version " ) , N_ ( " Extender firmwareversion " ) , olympusEqId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0403 , " ConversionLens " , N_ ( " Conversion Lens " ) , N_ ( " Conversion lens " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
TagInfo ( 0x1000 , " FlashType " , N_ ( " Flash Type " ) , N_ ( " Flash type " ) , olympusEqId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusEqFlashType ) ) ,
TagInfo ( 0x1001 , " FlashModel " , N_ ( " Flash Model " ) , N_ ( " Flash model " ) , olympusEqId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusEqFlashModel ) ) ,
TagInfo ( 0x1002 , " FlashFirmwareVersion " , N_ ( " Flash Firmware Version " ) , N_ ( " Flash firmware version " ) , olympusEqId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1003 , " FlashSerialNumber " , N_ ( " FlashSerialNumber " ) , N_ ( " FlashSerialNumber " ) , olympusEqId , makerTags , asciiString , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusEqTag) " , " (UnknownOlympusEqTag) " , N_ ( " Unknown OlympusEq tag " ) , olympusEqId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListEq ( )
{
return tagInfoEq_ ;
}
//! OlympusRd ColorSpace, tag 0x0108
extern const TagDetails olympusRdColorSpace [ ] = {
{ 0 , N_ ( " sRGB " ) } ,
{ 1 , N_ ( " Adobe RGB " ) } ,
{ 2 , N_ ( " Pro Photo RGB " ) }
} ;
//! OlympusRd Engine, tag 0x0109
extern const TagDetails olympusRdEngine [ ] = {
{ 0 , N_ ( " High Speed " ) } ,
{ 1 , N_ ( " High Function " ) } ,
{ 2 , N_ ( " Advanced High Speed " ) } ,
{ 3 , N_ ( " Advanced High Function " ) }
} ;
//! OlympusRd EditStatus, tag 0x010b
extern const TagDetails olympusRdEditStatus [ ] = {
{ 0 , N_ ( " Original " ) } ,
{ 1 , N_ ( " Edited (Landscape) " ) } ,
{ 6 , N_ ( " Edited (Portrait) " ) } ,
{ 8 , N_ ( " Edited (Portrait) " ) }
} ;
//! OlympusRd Settings, tag 0x010c
extern const TagDetailsBitmask olympusRdSettings [ ] = {
{ 0x0001 , N_ ( " WB Color Temp " ) } ,
{ 0x0004 , N_ ( " WB Gray Point " ) } ,
{ 0x0008 , N_ ( " Saturation " ) } ,
{ 0x0010 , N_ ( " Contrast " ) } ,
{ 0x0020 , N_ ( " Sharpness " ) } ,
{ 0x0040 , N_ ( " Color Space " ) } ,
{ 0x0080 , N_ ( " High Function " ) } ,
{ 0x0100 , N_ ( " Noise Reduction " ) }
} ;
const TagInfo OlympusMakerNote : : tagInfoRd_ [ ] = {
TagInfo ( 0x0000 , " RawDevVersion " , N_ ( " Raw Development Version " ) , N_ ( " Raw development version " ) , olympusRdId , makerTags , undefined , - 1 , printExifVersion ) ,
TagInfo ( 0x0100 , " ExposureBiasValue " , N_ ( " Exposure Bias Value " ) , N_ ( " Exposure bias value " ) , olympusRdId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0101 , " WhiteBalanceValue " , N_ ( " White Balance Value " ) , N_ ( " White balance value " ) , olympusRdId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0102 , " WBFineAdjustment " , N_ ( " WB Fine Adjustment " ) , N_ ( " WB fine adjustment " ) , olympusRdId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0103 , " GrayPoint " , N_ ( " Gray Point " ) , N_ ( " Gray point " ) , olympusRdId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0104 , " SaturationEmphasis " , N_ ( " Saturation Emphasis " ) , N_ ( " Saturation emphasis " ) , olympusRdId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0105 , " MemoryColorEmphasis " , N_ ( " Memory Color Emphasis " ) , N_ ( " Memory color emphasis " ) , olympusRdId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0106 , " ContrastValue " , N_ ( " Contrast Value " ) , N_ ( " Contrast value " ) , olympusRdId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0107 , " SharpnessValue " , N_ ( " Sharpness Value " ) , N_ ( " Sharpness value " ) , olympusRdId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0108 , " ColorSpace " , N_ ( " Color Space " ) , N_ ( " Color space " ) , olympusRdId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRdColorSpace ) ) ,
TagInfo ( 0x0109 , " Engine " , N_ ( " Engine " ) , N_ ( " Engine " ) , olympusRdId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRdEngine ) ) ,
TagInfo ( 0x010a , " NoiseReduction " , N_ ( " Noise Reduction " ) , N_ ( " Noise reduction " ) , olympusRdId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG_BITMASK ( olympusNoiseReduction ) ) ,
TagInfo ( 0x010b , " EditStatus " , N_ ( " Edit Status " ) , N_ ( " Edit status " ) , olympusRdId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRdEditStatus ) ) ,
TagInfo ( 0x010c , " Settings " , N_ ( " Settings " ) , N_ ( " Settings " ) , olympusRdId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG_BITMASK ( olympusRdSettings ) ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusRdTag) " , " (UnknownOlympusRdTag) " , N_ ( " Unknown OlympusRd tag " ) , olympusRdId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListRd ( )
{
return tagInfoRd_ ;
}
//! OlympusRd2 WhiteBalance, tag 0x0101
extern const TagDetails olympusRd2WhiteBalance [ ] = {
{ 1 , N_ ( " Color Temperature " ) } ,
{ 2 , N_ ( " Gray Point " ) }
} ;
//! OlympusRd2 ColorSpace, tag 0x0109
extern const TagDetails olympusRd2ColorSpace [ ] = {
{ 0 , N_ ( " sRGB " ) } ,
{ 1 , N_ ( " Adobe RGB " ) } ,
{ 2 , N_ ( " Pro Photo RGB " ) }
} ;
//! OlympusRd2 Engine, tag 0x010b
extern const TagDetails olympusRd2Engine [ ] = {
{ 0 , N_ ( " High Speed " ) } ,
{ 1 , N_ ( " High Function " ) }
} ;
//! OlympusRd2 PictureMode, tag 0x010c
extern const TagDetails olympusRd2PictureMode [ ] = {
{ 1 , N_ ( " Vivid " ) } ,
{ 2 , N_ ( " Natural " ) } ,
{ 3 , N_ ( " Muted " ) } ,
{ 256 , N_ ( " Monotone " ) } ,
{ 512 , N_ ( " Sepia " ) }
} ;
//! OlympusRd2 PM_BWFilter, tag 0x0110
extern const TagDetails olympusRd2PM_BWFilter [ ] = {
{ 1 , N_ ( " Neutral " ) } ,
{ 2 , N_ ( " Yellow " ) } ,
{ 3 , N_ ( " Orange " ) } ,
{ 4 , N_ ( " Red " ) } ,
{ 5 , N_ ( " Green " ) }
} ;
//! OlympusRd2 PMPictureTone, tag 0x0111
extern const TagDetails olympusRd2PMPictureTone [ ] = {
{ 1 , N_ ( " Neutral " ) } ,
{ 2 , N_ ( " Sepia " ) } ,
{ 3 , N_ ( " Blue " ) } ,
{ 4 , N_ ( " Purple " ) } ,
{ 5 , N_ ( " Green " ) }
} ;
const TagInfo OlympusMakerNote : : tagInfoRd2_ [ ] = {
TagInfo ( 0x0000 , " RawDev2Version " , N_ ( " Raw Development 2 Version " ) , N_ ( " Raw development 2 version " ) , olympusRd2Id , makerTags , undefined , - 1 , printExifVersion ) ,
TagInfo ( 0x0100 , " ExposureBiasValue " , N_ ( " Exposure Bias Value " ) , N_ ( " Exposure bias value " ) , olympusRd2Id , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x0101 , " WhiteBalance " , N_ ( " White Balance " ) , N_ ( " White balance " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRd2WhiteBalance ) ) ,
TagInfo ( 0x0102 , " WhiteBalanceValue " , N_ ( " White Balance Value " ) , N_ ( " White balance value " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0103 , " WBFineAdjustment " , N_ ( " WB Fine Adjustment " ) , N_ ( " White balance fine adjustment " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0104 , " GrayPoint " , N_ ( " Gray Point " ) , N_ ( " Gray point " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0105 , " ContrastValue " , N_ ( " Contrast Value " ) , N_ ( " Contrast value " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0106 , " SharpnessValue " , N_ ( " Sharpness Value " ) , N_ ( " Sharpness value " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0107 , " SaturationEmphasis " , N_ ( " Saturation Emphasis " ) , N_ ( " Saturation emphasis " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0108 , " MemoryColorEmphasis " , N_ ( " Memory Color Emphasis " ) , N_ ( " Memory color emphasis " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0109 , " ColorSpace " , N_ ( " Color Space " ) , N_ ( " Color space " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRd2ColorSpace ) ) ,
TagInfo ( 0x010a , " NoiseReduction " , N_ ( " Noise Reduction " ) , N_ ( " Noise reduction " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG_BITMASK ( olympusNoiseReduction ) ) ,
TagInfo ( 0x010b , " Engine " , N_ ( " Engine " ) , N_ ( " Engine " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRd2Engine ) ) ,
TagInfo ( 0x010c , " PictureMode " , N_ ( " Picture Mode " ) , N_ ( " Picture mode " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRd2PictureMode ) ) ,
TagInfo ( 0x010d , " PMSaturation " , N_ ( " PM Saturation " ) , N_ ( " Picture mode saturation " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x010e , " PMContrast " , N_ ( " PM Contrast " ) , N_ ( " Picture mode contrast " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x010f , " PMSharpness " , N_ ( " PM Sharpness " ) , N_ ( " Picture mode sharpness " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0110 , " PM_BWFilter " , N_ ( " PM BW Filter " ) , N_ ( " PM BW filter " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRd2PM_BWFilter ) ) ,
TagInfo ( 0x0111 , " PMPictureTone " , N_ ( " PM Picture Tone " ) , N_ ( " PM picture tone " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRd2PMPictureTone ) ) ,
TagInfo ( 0x0112 , " Gradation " , N_ ( " Gradation " ) , N_ ( " Gradation " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0113 , " Saturation " , N_ ( " Saturation " ) , N_ ( " Saturation " ) , olympusRd2Id , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x0119 , " AutoGradation " , N_ ( " Auto Gradation " ) , N_ ( " Auto gradation " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x0120 , " PMNoiseFilter " , N_ ( " PM Noise Filter " ) , N_ ( " Picture mode noise filter " ) , olympusRd2Id , makerTags , unsignedShort , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusRd2Tag) " , " (UnknownOlympusRd2Tag) " , N_ ( " Unknown OlympusRd2 tag " ) , olympusRd2Id , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListRd2 ( )
{
return tagInfoRd2_ ;
}
//! OlympusIp MultipleExposureMode, tag 0x101c
extern const TagDetails olympusIpMultipleExposureMode [ ] = {
{ 0 , N_ ( " Off " ) } ,
{ 2 , N_ ( " On (2 frames) " ) } ,
{ 3 , N_ ( " On (3 frames) " ) }
} ;
//! OlympusIp olympusIpAspectRatio, tag 0x101c
extern const TagDetails olympusIpAspectRatio [ ] = {
{ 1 , " 4:3 " } ,
{ 2 , " 3:2 " } ,
{ 3 , " 16:9 " } ,
{ 4 , " 6:6 " } ,
{ 5 , " 5:4 " } ,
{ 6 , " 7:6 " } ,
{ 7 , " 6:5 " } ,
{ 8 , " 7:5 " } ,
{ 9 , " 3:4 " }
} ;
const TagInfo OlympusMakerNote : : tagInfoIp_ [ ] = {
TagInfo ( 0x0000 , " ImageProcessingVersion " , N_ ( " Image Processing Version " ) , N_ ( " Image processing version " ) , olympusIpId , makerTags , undefined , - 1 , printExifVersion ) ,
TagInfo ( 0x0100 , " WB_RBLevels " , N_ ( " WB RB Levels " ) , N_ ( " WB RB levels " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0102 , " WB_RBLevels3000K " , N_ ( " WB RB Levels 3000K " ) , N_ ( " WB RB levels 3000K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0103 , " WB_RBLevels3300K " , N_ ( " WB RB Levels 3300K " ) , N_ ( " WB RB levels 3300K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0104 , " WB_RBLevels3600K " , N_ ( " WB RB Levels 3600K " ) , N_ ( " WB RB levels 3600K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0105 , " WB_RBLevels3900K " , N_ ( " WB RB Levels 3900K " ) , N_ ( " WB RB levels 3900K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0106 , " WB_RBLevels4000K " , N_ ( " WB RB Levels 4000K " ) , N_ ( " WB RB levels 4000K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0107 , " WB_RBLevels4300K " , N_ ( " WB RB Levels 4300K " ) , N_ ( " WB RB levels 4300K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0108 , " WB_RBLevels4500K " , N_ ( " WB RB Levels 4500K " ) , N_ ( " WB RB levels 4500K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0109 , " WB_RBLevels4800K " , N_ ( " WB RB Levels 4800K " ) , N_ ( " WB RB levels 4800K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x010a , " WB_RBLevels5300K " , N_ ( " WB RB Levels 5300K " ) , N_ ( " WB RB levels 5300K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x010b , " WB_RBLevels6000K " , N_ ( " WB RB Levels 6000K " ) , N_ ( " WB RB levels 6000K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x010c , " WB_RBLevels6600K " , N_ ( " WB RB Levels 6600K " ) , N_ ( " WB RB levels 6600K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x010d , " WB_RBLevels7500K " , N_ ( " WB RB Levels 7500K " ) , N_ ( " WB RB levels 7500K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x010e , " WB_RBLevelsCWB1 " , N_ ( " WB RB Levels CWB1 " ) , N_ ( " WB RB levels CWB1 " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x010f , " WB_RBLevelsCWB2 " , N_ ( " WB RB Levels CWB2 " ) , N_ ( " WB RB levels CWB2 " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0110 , " WB_RBLevelsCWB3 " , N_ ( " WB RB Levels CWB3 " ) , N_ ( " WB RB levels CWB3 " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0111 , " WB_RBLevelsCWB4 " , N_ ( " WB RB Levels CWB4 " ) , N_ ( " WB RB levels CWB4 " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0113 , " WB_GLevel3000K " , N_ ( " WB G Level 3000K " ) , N_ ( " WB G level 3000K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0114 , " WB_GLevel3300K " , N_ ( " WB G Level 3300K " ) , N_ ( " WB G level 3300K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0115 , " WB_GLevel3600K " , N_ ( " WB G Level 3600K " ) , N_ ( " WB G level 3600K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0116 , " WB_GLevel3900K " , N_ ( " WB G Level 3900K " ) , N_ ( " WB G level 3900K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0117 , " WB_GLevel4000K " , N_ ( " WB G Level 4000K " ) , N_ ( " WB G level 4000K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0118 , " WB_GLevel4300K " , N_ ( " WB G Level 4300K " ) , N_ ( " WB G level 4300K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0119 , " WB_GLevel4500K " , N_ ( " WB G Level 4500K " ) , N_ ( " WB G level 4500K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x011a , " WB_GLevel4800K " , N_ ( " WB G Level 4800K " ) , N_ ( " WB G level 4800K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x011b , " WB_GLevel5300K " , N_ ( " WB G Level 5300K " ) , N_ ( " WB G level 5300K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x011c , " WB_GLevel6000K " , N_ ( " WB G Level 6000K " ) , N_ ( " WB G level 6000K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x011d , " WB_GLevel6600K " , N_ ( " WB G Level 6600K " ) , N_ ( " WB G level 6600K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x011e , " WB_GLevel7500K " , N_ ( " WB G Level 7500K " ) , N_ ( " WB G level 7500K " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x011f , " WB_GLevel " , N_ ( " WB G Level " ) , N_ ( " WB G level " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0200 , " ColorMatrix " , N_ ( " Color Matrix " ) , N_ ( " Color matrix " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0300 , " Enhancer " , N_ ( " Enhancer " ) , N_ ( " Enhancer " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0301 , " EnhancerValues " , N_ ( " Enhancer Values " ) , N_ ( " Enhancer values " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0310 , " CoringFilter " , N_ ( " Coring Filter " ) , N_ ( " Coring filter " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0311 , " CoringValues " , N_ ( " Coring Values " ) , N_ ( " Coring values " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0600 , " BlackLevel " , N_ ( " Black Level " ) , N_ ( " Black level " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0610 , " GainBase " , N_ ( " Gain Base " ) , N_ ( " Gain base " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0611 , " ValidBits " , N_ ( " Valid Bits " ) , N_ ( " Valid bits " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0612 , " CropLeft " , N_ ( " Crop Left " ) , N_ ( " Crop left " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0613 , " CropTop " , N_ ( " Crop Top " ) , N_ ( " Crop top " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0614 , " CropWidth " , N_ ( " Crop Width " ) , N_ ( " Crop width " ) , olympusIpId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0615 , " CropHeight " , N_ ( " Crop Height " ) , N_ ( " Crop height " ) , olympusIpId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1010 , " NoiseReduction " , N_ ( " Noise Reduction " ) , N_ ( " Noise reduction " ) , olympusIpId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG_BITMASK ( olympusNoiseReduction ) ) ,
TagInfo ( 0x1011 , " DistortionCorrection " , N_ ( " Distortion Correction " ) , N_ ( " Distortion correction " ) , olympusIpId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1012 , " ShadingCompensation " , N_ ( " Shading Compensation " ) , N_ ( " Shading compensation " ) , olympusIpId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x101c , " MultipleExposureMode " , N_ ( " Multiple Exposure Mode " ) , N_ ( " Multiple exposure mode " ) , olympusIpId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusIpMultipleExposureMode ) ) ,
TagInfo ( 0x1112 , " AspectRatio " , N_ ( " Aspect Ratio " ) , N_ ( " Aspect ratio " ) , olympusIpId , makerTags , unsignedByte , - 1 , EXV_PRINT_TAG ( olympusIpAspectRatio ) ) ,
TagInfo ( 0x1113 , " AspectFrame " , N_ ( " Aspect Frame " ) , N_ ( " Aspect frame " ) , olympusIpId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x1200 , " FaceDetect " , N_ ( " Face Detect " ) , N_ ( " Face detect " ) , olympusIpId , makerTags , unsignedLong , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1201 , " FaceDetectArea " , N_ ( " Face Detect Area " ) , N_ ( " Face detect area " ) , olympusIpId , makerTags , signedShort , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusIpTag) " , " (UnknownOlympusIpTag) " , N_ ( " Unknown OlympusIp tag " ) , olympusIpId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListIp ( )
{
return tagInfoIp_ ;
}
//! OlympusFi ExternalFlashBounce, tag 0x1204
extern const TagDetails olympusFiExternalFlashBounce [ ] = {
{ 0 , N_ ( " Bounce or Off " ) } ,
{ 1 , N_ ( " Direct " ) }
} ;
const TagInfo OlympusMakerNote : : tagInfoFi_ [ ] = {
TagInfo ( 0x0000 , " FocusInfoVersion " , N_ ( " Focus Info Version " ) , N_ ( " Focus info version " ) , olympusFiId , makerTags , undefined , - 1 , printExifVersion ) ,
TagInfo ( 0x0209 , " AutoFocus " , N_ ( " Auto Focus " ) , N_ ( " Auto focus " ) , olympusFiId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x0210 , " SceneDetect " , N_ ( " Scene Detect " ) , N_ ( " Scene detect " ) , olympusFiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0211 , " SceneArea " , N_ ( " Scene Area " ) , N_ ( " Scene area " ) , olympusFiId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0212 , " SceneDetectData " , N_ ( " Scene Detect Data " ) , N_ ( " Scene detect data " ) , olympusFiId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0300 , " ZoomStepCount " , N_ ( " Zoom Step Count " ) , N_ ( " Zoom step count " ) , olympusFiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0301 , " FocusStepCount " , N_ ( " Focus Step Count " ) , N_ ( " Focus step count " ) , olympusFiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0303 , " FocusStepInfinity " , N_ ( " Focus Step Infinity " ) , N_ ( " Focus step infinity " ) , olympusFiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0304 , " FocusStepNear " , N_ ( " Focus Step Near " ) , N_ ( " Focus step near " ) , olympusFiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0305 , " FocusDistance " , N_ ( " Focus Distance " ) , N_ ( " Focus distance " ) , olympusFiId , makerTags , unsignedRational , - 1 , print0x0305 ) ,
TagInfo ( 0x0308 , " AFPoint " , N_ ( " AF Point " ) , N_ ( " AF point " ) , olympusFiId , makerTags , unsignedShort , - 1 , print0x0308 ) ,
TagInfo ( 0x1201 , " ExternalFlash " , N_ ( " External Flash " ) , N_ ( " External flash " ) , olympusFiId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1203 , " ExternalFlashGuideNumber " , N_ ( " External Flash Guide Number " ) , N_ ( " External flash guide number " ) , olympusFiId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x1204 , " ExternalFlashBounce " , N_ ( " External Flash Bounce " ) , N_ ( " External flash bounce " ) , olympusFiId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusFiExternalFlashBounce ) ) ,
TagInfo ( 0x1205 , " ExternalFlashZoom " , N_ ( " External Flash Zoom " ) , N_ ( " External flash zoom " ) , olympusFiId , makerTags , unsignedRational , - 1 , printValue ) ,
TagInfo ( 0x1208 , " InternalFlash " , N_ ( " Internal Flash " ) , N_ ( " Internal flash " ) , olympusFiId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusOffOn ) ) ,
TagInfo ( 0x1209 , " ManualFlash " , N_ ( " Manual Flash " ) , N_ ( " Manual flash " ) , olympusFiId , makerTags , unsignedShort , - 1 , print0x1209 ) ,
TagInfo ( 0x1500 , " SensorTemperature " , N_ ( " Sensor Temperature " ) , N_ ( " Sensor temperature " ) , olympusFiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1600 , " ImageStabilization " , N_ ( " Image Stabilization " ) , N_ ( " Image stabilization " ) , olympusFiId , makerTags , unsignedLong , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusFiTag) " , " (UnknownOlympusFiTag) " , N_ ( " Unknown OlympusFi tag " ) , olympusFiId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListFi ( )
{
return tagInfoFi_ ;
}
const TagInfo OlympusMakerNote : : tagInfoFe_ [ ] = {
TagInfo ( 0x0100 , " BodyFirmwareVersion " , N_ ( " Body Firmware Version " ) , N_ ( " Body firmware version " ) , olympusFe1Id , makerTags , asciiString , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusFeTag) " , " (UnknownOlympusFeTag) " , N_ ( " Unknown OlympusFe tag " ) , olympusFe1Id , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListFe ( )
{
return tagInfoFe_ ;
}
//! OlympusRi LightSource, tag 0x1000
extern const TagDetails olympusRiLightSource [ ] = {
{ 0 , N_ ( " Unknown " ) } ,
{ 16 , N_ ( " Shade " ) } ,
{ 17 , N_ ( " Cloudy " ) } ,
{ 18 , N_ ( " Fine Weather " ) } ,
{ 20 , N_ ( " Tungsten (incandescent) " ) } ,
{ 22 , N_ ( " Evening Sunlight " ) } ,
{ 33 , N_ ( " Daylight Fluorescent (D 5700 - 7100K) " ) } ,
{ 34 , N_ ( " Day White Fluorescent (N 4600 - 5400K) " ) } ,
{ 35 , N_ ( " Cool White Fluorescent (W 3900 - 4500K) " ) } ,
{ 36 , N_ ( " White Fluorescent (WW 3200 - 3700K) " ) } ,
{ 256 , N_ ( " One Touch White Balance " ) } ,
{ 512 , N_ ( " Custom 1-4 " ) }
} ;
const TagInfo OlympusMakerNote : : tagInfoRi_ [ ] = {
TagInfo ( 0x0000 , " RawInfoVersion " , N_ ( " Raw Info Version " ) , N_ ( " Raw info version " ) , olympusRiId , makerTags , undefined , - 1 , printValue ) ,
TagInfo ( 0x0100 , " WB_RBLevelsUsed " , N_ ( " WB_RB Levels Used " ) , N_ ( " WB_RB levels used " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0110 , " WB_RBLevelsAuto " , N_ ( " WB_RB Levels Auto " ) , N_ ( " WB_RB levels auto " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0120 , " WB_RBLevelsShade " , N_ ( " WB_RB Levels Shade " ) , N_ ( " WB_RB levels shade " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0121 , " WB_RBLevelsCloudy " , N_ ( " WB_RB Levels Cloudy " ) , N_ ( " WB_RB levels cloudy " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0122 , " WB_RBLevelsFineWeather " , N_ ( " WB_RB Levels Fine Weather " ) , N_ ( " WB_RB levels fine weather " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0123 , " WB_RBLevelsTungsten " , N_ ( " WB_RB Levels Tungsten " ) , N_ ( " WB_RB levels tungsten " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0124 , " WB_RBLevelsEveningSunlight " , N_ ( " WB_RB Levels Evening Sunlight " ) , N_ ( " WB_RB levels evening sunlight " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0130 , " WB_RBLevelsDaylightFluor " , N_ ( " WB_RB Levels Daylight Fluor " ) , N_ ( " WB_RB levels daylight fluor " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0131 , " WB_RBLevelsDayWhiteFluor " , N_ ( " WB_RB Levels Day White Fluor " ) , N_ ( " WB_RB levels day white fluor " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0132 , " WB_RBLevelsCoolWhiteFluor " , N_ ( " WB_RB Levels Cool White Fluor " ) , N_ ( " WB_RB levels cool white fluor " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0133 , " WB_RBLevelsWhiteFluorescent " , N_ ( " WB_RB Levels White Fluorescent " ) , N_ ( " WB_RB levels white fluorescent " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0200 , " ColorMatrix2 " , N_ ( " Color Matrix2 " ) , N_ ( " Color matrix 2 " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0310 , " CoringFilter " , N_ ( " Coring Filter " ) , N_ ( " Coring filter " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0311 , " CoringValues " , N_ ( " Coring Values " ) , N_ ( " Coring values " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0600 , " BlackLevel2 " , N_ ( " Black Level 2 " ) , N_ ( " Black level 2 " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0601 , " YCbCrCoefficients " , N_ ( " YCbCr Coefficients " ) , N_ ( " YCbCr coefficients " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0611 , " ValidPixelDepth " , N_ ( " Valid Pixel Depth " ) , N_ ( " Valid pixel depth " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0612 , " CropLeft " , N_ ( " Crop Left " ) , N_ ( " Crop left " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0613 , " CropTop " , N_ ( " Crop Top " ) , N_ ( " Crop top " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x0614 , " CropWidth " , N_ ( " Crop Width " ) , N_ ( " Crop width " ) , olympusRiId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x0615 , " CropHeight " , N_ ( " Crop Height " ) , N_ ( " Crop height " ) , olympusRiId , makerTags , unsignedLong , - 1 , printValue ) ,
TagInfo ( 0x1000 , " LightSource " , N_ ( " Light Source " ) , N_ ( " Light source " ) , olympusRiId , makerTags , unsignedShort , - 1 , EXV_PRINT_TAG ( olympusRiLightSource ) ) ,
TagInfo ( 0x1001 , " WhiteBalanceComp " , N_ ( " White Balance Comp " ) , N_ ( " White balance comp " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1010 , " SaturationSetting " , N_ ( " Saturation Setting " ) , N_ ( " Saturation setting " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1011 , " HueSetting " , N_ ( " Hue Setting " ) , N_ ( " Hue setting " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1012 , " ContrastSetting " , N_ ( " Contrast Setting " ) , N_ ( " Contrast setting " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x1013 , " SharpnessSetting " , N_ ( " Sharpness Setting " ) , N_ ( " Sharpness setting " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x2000 , " CMExposureCompensation " , N_ ( " CM Exposure Compensation " ) , N_ ( " CM exposure compensation " ) , olympusRiId , makerTags , signedRational , - 1 , printValue ) ,
TagInfo ( 0x2001 , " CMWhiteBalance " , N_ ( " CM White Balance " ) , N_ ( " CM white balance " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x2002 , " CMWhiteBalanceComp " , N_ ( " CM White Balance Comp " ) , N_ ( " CM white balance comp " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x2010 , " CMWhiteBalanceGrayPoint " , N_ ( " CM White Balance Gray Point " ) , N_ ( " CM white balance gray point " ) , olympusRiId , makerTags , unsignedShort , - 1 , printValue ) ,
TagInfo ( 0x2020 , " CMSaturation " , N_ ( " CM Saturation " ) , N_ ( " CM saturation " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x2021 , " CMHue " , N_ ( " CM Hue " ) , N_ ( " CM hue " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x2022 , " CMContrast " , N_ ( " CM Contrast " ) , N_ ( " CM contrast " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
TagInfo ( 0x2023 , " CMSharpness " , N_ ( " CM Sharpness " ) , N_ ( " CM sharpness " ) , olympusRiId , makerTags , signedShort , - 1 , printValue ) ,
// End of list marker
TagInfo ( 0xffff , " (UnknownOlympusRiTag) " , " (UnknownOlympusRiTag) " , N_ ( " Unknown OlympusRi tag " ) , olympusRiId , makerTags , asciiString , - 1 , printValue )
} ;
const TagInfo * OlympusMakerNote : : tagListRi ( )
{
return tagInfoRi_ ;
}
// Gradation
std : : ostream & OlympusMakerNote : : print0x050f ( std : : ostream & os , const Value & value , const ExifData * )
{
if ( ! ( value . count ( ) = = 3 | | value . count ( ) = = 4 )
| | value . typeId ( ) ! = signedShort ) {
return os < < value ;
}
if ( value . toLong ( 0 ) = = - 1 & & value . toLong ( 1 ) = = - 1 & & value . toLong ( 2 ) = = 1 ) os < < _ ( " Low Key " ) ;
else if ( value . toLong ( 0 ) = = 0 & & value . toLong ( 1 ) = = - 1 & & value . toLong ( 2 ) = = 1 ) os < < _ ( " Normal " ) ;
else if ( value . toLong ( 0 ) = = 1 & & value . toLong ( 1 ) = = - 1 & & value . toLong ( 2 ) = = 1 ) os < < _ ( " High Key " ) ;
else os < < value . toLong ( 0 ) < < " " < < value . toLong ( 1 ) < < " " < < value . toLong ( 2 ) ;
if ( value . count ( ) = = 4 ) {
switch ( value . toLong ( 3 ) ) {
case 0 : os < < " , " < < _ ( " User-Selected " ) ; break ;
case 1 : os < < " , " < < _ ( " Auto-Override " ) ; break ;
default : os < < value . toLong ( 3 ) ; break ;
}
}
return os ;
}
// Olympus CameraSettings tag 0x0527 NoiseFilter
std : : ostream & OlympusMakerNote : : print0x0527 ( std : : ostream & os , const Value & value , const ExifData * )
{
if ( value . count ( ) ! = 3
| | value . typeId ( ) ! = signedShort
| | value . toLong ( 1 ) ! = - 2
| | value . toLong ( 2 ) ! = 1 ) {
return os < < value ;
}
switch ( value . toLong ( 0 ) ) {
case - 2 : os < < _ ( " Off " ) ; break ;
case - 1 : os < < _ ( " Low " ) ; break ;
case 0 : os < < _ ( " Standard " ) ; break ;
case 1 : os < < _ ( " High " ) ; break ;
default : os < < value . toLong ( 0 ) ; break ;
}
return os ;
}
std : : ostream & OlympusMakerNote : : print0x0200 ( std : : ostream & os , const Value & value , const ExifData * )
{
if ( value . count ( ) ! = 3 | | value . typeId ( ) ! = unsignedLong ) {
return os < < value ;
}
long l0 = value . toLong ( 0 ) ;
switch ( l0 ) {
case 0 : os < < _ ( " Normal " ) ; break ;
case 2 : os < < _ ( " Fast " ) ; break ;
case 3 : os < < _ ( " Panorama " ) ; break ;
default : os < < " ( " < < l0 < < " ) " ; break ;
}
if ( l0 ! = 0 ) {
os < < " , " ;
long l1 = value . toLong ( 1 ) ;
os < < _ ( " Sequence number " ) < < " " < < l1 ;
}
if ( l0 ! = 0 & & l0 ! = 2 ) {
os < < " , " ;
long l2 = value . toLong ( 2 ) ;
switch ( l2 ) {
case 1 : os < < _ ( " Left to right " ) ; break ;
case 2 : os < < _ ( " Right to left " ) ; break ;
case 3 : os < < _ ( " Bottom to top " ) ; break ;
case 4 : os < < _ ( " Top to bottom " ) ; break ;
default : os < < " ( " < < l2 < < " ) " ; break ;
}
}
return os ;
} // OlympusMakerNote::print0x0200
std : : ostream & OlympusMakerNote : : print0x0204 ( std : : ostream & os , const Value & value , const ExifData * )
{
std : : ios : : fmtflags of ( os . flags ( ) ) ;
if ( value . count ( ) = = 0
| | value . toRational ( ) . second = = 0 ) {
return os < < " ( " < < value < < " ) " ;
}
float f = value . toFloat ( ) ;
if ( f = = 0.0f | | f = = 1.0f )
return os < < _ ( " None " ) ;
std : : ostringstream oss ;
oss . copyfmt ( os ) ;
os < < std : : fixed < < std : : setprecision ( 1 ) < < f < < " x " ;
os . copyfmt ( oss ) ;
os . flags ( of ) ;
return os ;
} // OlympusMakerNote::print0x0204
std : : ostream & OlympusMakerNote : : print0x1015 ( std : : ostream & os , const Value & value , const ExifData * )
{
if ( value . typeId ( ) ! = unsignedShort ) {
return os < < value ;
}
if ( value . count ( ) = = 1 ) {
short l0 = ( short ) value . toLong ( 0 ) ;
if ( l0 = = 1 ) {
os < < _ ( " Auto " ) ;
}
else {
return os < < value ;
}
}
else if ( value . count ( ) = = 2 ) {
short l0 = ( short ) value . toLong ( 0 ) ;
short l1 = ( short ) value . toLong ( 1 ) ;
if ( l0 = = 1 ) {
switch ( l1 ) {
case 0 : os < < _ ( " Auto " ) ; break ;
default : os < < _ ( " Auto " ) < < " ( " < < l1 < < " ) " ; break ;
}
}
else if ( l0 = = 2 ) {
switch ( l1 ) {
case 2 : os < < _ ( " 3000 Kelvin " ) ; break ;
case 3 : os < < _ ( " 3700 Kelvin " ) ; break ;
case 4 : os < < _ ( " 4000 Kelvin " ) ; break ;
case 5 : os < < _ ( " 4500 Kelvin " ) ; break ;
case 6 : os < < _ ( " 5500 Kelvin " ) ; break ;
case 7 : os < < _ ( " 6500 Kelvin " ) ; break ;
case 8 : os < < _ ( " 7500 Kelvin " ) ; break ;
default : os < < value ; break ;
}
}
else if ( l0 = = 3 ) {
switch ( l1 ) {
case 0 : os < < _ ( " One-touch " ) ; break ;
default : os < < value ; break ;
}
}
else {
return os < < value ;
}
}
else {
return os < < value ;
}
return os ;
} // OlympusMakerNote::print0x1015
//! OlympusEq LensType, tag 0x201
std : : ostream & OlympusMakerNote : : print0x0201 ( std : : ostream & os , const Value & value , const ExifData * )
{
// #1034
const std : : string undefined ( " undefined " ) ;
const std : : string section ( " olympus " ) ;
if ( Internal : : readExiv2Config ( section , value . toString ( ) , undefined ) ! = undefined ) {
return os < < Internal : : readExiv2Config ( section , value . toString ( ) , undefined ) ;
}
// 6 numbers: 0. Make, 1. Unknown, 2. Model, 3. Sub-model, 4-5. Unknown.
// Only the Make, Model and Sub-model are used to determine the lens model
static struct {
byte val [ 3 ] ;
const char * label ;
} lensTypes [ ] = {
{ { 0 , 0 , 0 } , N_ ( " None " ) } ,
{ { 0 , 1 , 0 } , " Olympus Zuiko Digital ED 50mm F2.0 Macro " } ,
{ { 0 , 1 , 1 } , " Olympus Zuiko Digital 40-150mm F3.5-4.5 " } ,
{ { 0 , 1 , 16 } , " Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 " } ,
{ { 0 , 2 , 0 } , " Olympus Zuiko Digital ED 150mm F2.0 " } ,
{ { 0 , 2 , 16 } , " Olympus M.Zuiko Digital 17mm F2.8 Pancake " } ,
{ { 0 , 3 , 0 } , " Olympus Zuiko Digital ED 300mm F2.8 " } ,
{ { 0 , 3 , 16 } , " Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6 " } ,
{ { 0 , 4 , 16 } , " Olympus M.Zuiko Digital ED 9-18mm F4.0-5.6 " } ,
{ { 0 , 5 , 0 } , " Olympus Zuiko Digital 14-54mm F2.8-3.5 " } ,
{ { 0 , 5 , 1 } , " Olympus Zuiko Digital Pro ED 90-250mm F2.8 " } ,
{ { 0 , 5 , 16 } , " Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 L " } ,
{ { 0 , 6 , 0 } , " Olympus Zuiko Digital ED 50-200mm F2.8-3.5 " } ,
{ { 0 , 6 , 1 } , " Olympus Zuiko Digital ED 8mm F3.5 Fisheye " } ,
{ { 0 , 6 , 16 } , " Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6 " } ,
{ { 0 , 7 , 0 } , " Olympus Zuiko Digital 11-22mm F2.8-3.5 " } ,
{ { 0 , 7 , 1 } , " Olympus Zuiko Digital 18-180mm F3.5-6.3 " } ,
{ { 0 , 7 , 16 } , " Olympus M.Zuiko Digital ED 12mm F2.0 " } ,
{ { 0 , 8 , 1 } , " Olympus Zuiko Digital 70-300mm F4.0-5.6 " } ,
{ { 0 , 8 , 16 } , " Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7 " } ,
{ { 0 , 9 , 16 } , " Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II " } ,
{ { 0 , 16 , 1 } , " Kenko Tokina Reflex 300mm F6.3 MF Macro " } ,
{ { 0 , 16 , 16 } , " Olympus M.Zuiko Digital ED 12-50mm F3.5-6.3 EZ " } ,
{ { 0 , 17 , 16 } , " Olympus M.Zuiko Digital 45mm F1.8 " } ,
{ { 0 , 18 , 16 } , " Olympus M.Zuiko Digital ED 60mm F2.8 Macro " } ,
{ { 0 , 19 , 16 } , " Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II R " } ,
{ { 0 , 20 , 16 } , " Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6 R " } ,
{ { 0 , 21 , 0 } , " Olympus Zuiko Digital ED 7-14mm F4.0 " } ,
{ { 0 , 21 , 16 } , " Olympus M.Zuiko Digital ED 75mm F1.8 " } ,
{ { 0 , 22 , 16 } , " Olympus M.Zuiko Digital 17mm F1.8 " } ,
{ { 0 , 23 , 0 } , " Olympus Zuiko Digital Pro ED 35-100mm F2.0 " } ,
{ { 0 , 24 , 0 } , " Olympus Zuiko Digital 14-45mm F3.5-5.6 " } ,
{ { 0 , 24 , 16 } , " Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7 II " } ,
{ { 0 , 25 , 16 } , " Olympus M.Zuiko Digital ED 12-40mm F2.8 Pro " } ,
{ { 0 , 32 , 0 } , " Olympus Zuiko Digital 35mm F3.5 Macro " } ,
{ { 0 , 32 , 16 } , " Olympus M.Zuiko Digital ED 40-150mm F2.8 Pro " } ,
{ { 0 , 33 , 16 } , " Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 EZ " } ,
{ { 0 , 34 , 0 } , " Olympus Zuiko Digital 17.5-45mm F3.5-5.6 " } ,
{ { 0 , 34 , 16 } , " Olympus M.Zuiko Digital 25mm F1.8 " } ,
{ { 0 , 35 , 0 } , " Olympus Zuiko Digital ED 14-42mm F3.5-5.6 " } ,
{ { 0 , 35 , 16 } , " Olympus M.Zuiko Digital ED 7-14mm F2.8 Pro " } ,
{ { 0 , 36 , 0 } , " Olympus Zuiko Digital ED 40-150mm F4.0-5.6 " } ,
{ { 0 , 36 , 16 } , " Olympus M.Zuiko Digital ED 300mm F4.0 IS Pro " } ,
{ { 0 , 37 , 16 } , " Olympus M.Zuiko Digital ED 8mm F1.8 Fisheye Pro " } ,
{ { 0 , 38 , 16 } , " Olympus M.Zuiko Digital ED 12-100mm F4.0 IS Pro " } ,
{ { 0 , 39 , 16 } , " Olympus M.Zuiko Digital ED 30mm F3.5 Macro " } ,
{ { 0 , 40 , 16 } , " Olympus M.Zuiko Digital ED 25mm F1.2 Pro " } ,
{ { 0 , 41 , 16 } , " Olympus M.Zuiko Digital ED 17mm F1.2 Pro " } ,
{ { 0 , 48 , 0 } , " Olympus Zuiko Digital ED 50-200mm F2.8-3.5 SWD " } ,
{ { 0 , 49 , 0 } , " Olympus Zuiko Digital ED 12-60mm F2.8-4.0 SWD " } ,
{ { 0 , 50 , 0 } , " Olympus Zuiko Digital ED 14-35mm F2.0 SWD " } ,
{ { 0 , 51 , 0 } , " Olympus Zuiko Digital 25mm F2.8 " } ,
{ { 0 , 52 , 0 } , " Olympus Zuiko Digital ED 9-18mm F4.0-5.6 " } ,
{ { 0 , 53 , 0 } , " Olympus Zuiko Digital 14-54mm F2.8-3.5 II " } ,
{ { 1 , 1 , 0 } , " Sigma 18-50mm F3.5-5.6 DC " } ,
{ { 1 , 1 , 16 } , " Sigma 30mm F2.8 EX DN " } ,
{ { 1 , 2 , 0 } , " Sigma 55-200mm F4.0-5.6 DC " } ,
{ { 1 , 2 , 16 } , " Sigma 19mm F2.8 EX DN " } ,
{ { 1 , 3 , 0 } , " Sigma 18-125mm F3.5-5.6 DC " } ,
{ { 1 , 3 , 16 } , " Sigma 30mm F2.8 DN | A " } ,
{ { 1 , 4 , 0 } , " Sigma 18-125mm F3.5-5.6 " } ,
{ { 1 , 4 , 16 } , " Sigma 19mm F2.8 DN | A " } ,
{ { 1 , 5 , 0 } , " Sigma 30mm F1.4 " } ,
{ { 1 , 5 , 16 } , " Sigma 60mm F2.8 DN | A " } ,
{ { 1 , 6 , 0 } , " Sigma 50-500mm F4.0-6.3 EX DG APO HSM RF " } ,
{ { 1 , 6 , 16 } , " Sigma 30mm F1.4 DC DN | C " } ,
{ { 1 , 7 , 0 } , " Sigma 105mm F2.8 DG " } ,
{ { 1 , 8 , 0 } , " Sigma 150mm F2.8 DG HSM " } ,
{ { 1 , 9 , 0 } , " Sigma 18-50mm F2.8 EX DC Macro " } ,
{ { 1 , 16 , 0 } , " Sigma 24mm F1.8 EX DG Aspherical Macro " } ,
{ { 1 , 17 , 0 } , " Sigma 135-400mm F4.5-5.6 DG ASP APO RF " } ,
{ { 1 , 18 , 0 } , " Sigma 300-800mm F5.6 EX DG APO " } ,
{ { 1 , 19 , 0 } , " Sigma 30mm F1.4 EX DC HSM " } ,
{ { 1 , 20 , 0 } , " Sigma 50-500mm F4.0-6.3 EX DG APO HSM RF " } ,
{ { 1 , 21 , 0 } , " Sigma 10-20mm F4.0-5.6 EX DC HSM " } ,
{ { 1 , 22 , 0 } , " Sigma 70-200mm F2.8 EX DG Macro HSM II " } ,
{ { 1 , 23 , 0 } , " Sigma 50mm F1.4 EX DG HSM " } ,
{ { 2 , 1 , 0 } , " Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph. " } ,
{ { 2 , 1 , 16 } , " Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS " } ,
{ { 2 , 2 , 0 } , " Leica D Summilux 25mm F1.4 Asph. " } ,
{ { 2 , 2 , 16 } , " Lumix G Vario 45-200mm F4.0-5.6 Mega OIS " } ,
{ { 2 , 3 , 0 } , " Leica D Vario Elmar 14-50mm F3.8-5.6 Asph. Mega OIS " } ,
{ { 2 , 3 , 1 } , " Leica D Vario Elmar 14-50mm F3.8-5.6 Asph. " } ,
{ { 2 , 3 , 16 } , " Lumix G Vario HD 14-140mm F4.0-5.8 Asph. Mega OIS " } ,
{ { 2 , 4 , 0 } , " Leica D Vario Elmar 14-150mm F3.5-5.6 " } ,
{ { 2 , 4 , 16 } , " Lumix G Vario 7-14mm F4.0 Asph. " } ,
{ { 2 , 5 , 16 } , " Lumix G 20mm F1.7 Asph. " } ,
{ { 2 , 6 , 16 } , " Leica DG Macro-Elmarit 45mm F2.8 Asph. Mega OIS " } ,
{ { 2 , 7 , 16 } , " Lumix G Vario 14-42mm F3.5-5.6 Asph. Mega OIS " } ,
{ { 2 , 8 , 16 } , " Lumix G Fisheye 8mm F3.5 " } ,
{ { 2 , 9 , 16 } , " Lumix G Vario 100-300mm F4.0-5.6 Mega OIS " } ,
{ { 2 , 16 , 16 } , " Lumix G 14mm F2.5 Asph. " } ,
{ { 2 , 17 , 16 } , " Lumix G 3D 12.5mm F12 " } ,
{ { 2 , 18 , 16 } , " Leica DG Summilux 25mm F1.4 Asph. " } ,
{ { 2 , 19 , 16 } , " Lumix G X Vario PZ 45-175mm F4.0-5.6 Asph. Power OIS " } ,
{ { 2 , 20 , 16 } , " Lumix G X Vario PZ 14-42mm F3.5-5.6 Asph. Power OIS " } ,
{ { 2 , 21 , 16 } , " Lumix G X Vario 12-35mm F2.8 Asph. Power OIS " } ,
{ { 2 , 22 , 16 } , " Lumix G Vario 45-150mm F4.0-5.6 Asph. Mega OIS " } ,
{ { 2 , 23 , 16 } , " Lumix G X Vario 35-100mm F2.8 Power OIS " } ,
{ { 2 , 24 , 16 } , " Lumix G Vario 14-42mm F3.5-5.6 II Asph. Mega OIS " } ,
{ { 2 , 25 , 16 } , " Lumix G Vario 14-140mm F3.5-5.6 Asph. Power OIS " } ,
{ { 2 , 32 , 16 } , " Lumix G Vario 12-32mm F3.5-5.6 Asph. Mega OIS " } ,
{ { 2 , 33 , 16 } , " Leica DG Nocticron 42.5mm F1.2 Asph. Power OIS " } ,
{ { 2 , 34 , 16 } , " Leica DG Summilux 15mm F1.7 Asph. " } ,
{ { 2 , 35 , 16 } , " Lumix G Vario 35-100mm F4.0-5.6 Asph. Mega OIS " } ,
{ { 2 , 36 , 16 } , " Lumix G Macro 30mm F2.8 Asph. Mega OIS " } ,
{ { 2 , 37 , 16 } , " Lumix G 42.5mm F1.7 Asph. Power OIS " } ,
{ { 2 , 38 , 16 } , " Lumix G 25mm F1.7 Asph. " } ,
{ { 2 , 39 , 16 } , " Leica DG Vario-Elmar 100-400mm F4.0-6.3 Asph. Power OIS " } ,
{ { 2 , 40 , 16 } , " Lumix G Vario 12-60mm F3.5-5.6 Asph. Power OIS " } ,
{ { 3 , 1 , 0 } , " Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph. " } ,
{ { 3 , 2 , 0 } , " Leica D Summilux 25mm F1.4 Asph. " } ,
{ { 5 , 1 , 16 } , " Tamron 14-150mm F3.5-5.8 Di III " } ,
// End of list marker
{ { 0xff , 0 , 0 } , " " }
} ;
if ( value . count ( ) ! = 6 | | value . typeId ( ) ! = unsignedByte ) {
return os < < value ;
}
byte v0 = ( byte ) value . toLong ( 0 ) ;
byte v2 = ( byte ) value . toLong ( 2 ) ;
byte v3 = ( byte ) value . toLong ( 3 ) ;
for ( int i = 0 ; lensTypes [ i ] . val [ 0 ] ! = 0xff ; i + + ) {
if ( lensTypes [ i ] . val [ 0 ] = = v0 & &
lensTypes [ i ] . val [ 1 ] = = v2 & &
lensTypes [ i ] . val [ 2 ] = = v3 ) {
return os < < lensTypes [ i ] . label ;
}
}
return os < < value ;
} // OlympusMakerNote::print0x0201
// Olympus tag 0x0209 CameraID
std : : ostream & OlympusMakerNote : : print0x0209 ( std : : ostream & os , const Value & value , const ExifData * )
{
if ( value . typeId ( ) ! = asciiString & & value . typeId ( ) ! = undefined ) {
return os < < value ;
}
char ch ;
int size = value . size ( ) ;
for ( int i = 0 ; i < size & & ( ( ch = ( char ) value . toLong ( i ) ) ! = ' \0 ' ) ; i + + ) {
os < < ch ;
}
return os ;
} // OlympusMakerNote::print0x0209
//! OlympusEq Extender, tag 0x0301
std : : ostream & OlympusMakerNote : : printEq0x0301 ( std : : ostream & os , const Value & value , const ExifData * )
{
// 6 numbers: 0. Make, 1. Unknown, 2. Model, 3. Sub-model, 4-5. Unknown.
// Only the Make and Model are used to determine the extender model
static struct {
byte val [ 2 ] ;
const char * label ;
} extenderModels [ ] = {
{ { 0 , 0 } , N_ ( " None " ) } ,
{ { 0 , 4 } , " Olympus Zuiko Digital EC-14 1.4x Teleconverter " } ,
{ { 0 , 8 } , " Olympus EX-25 Extension Tube " } ,
{ { 0 , 16 } , " Olympus Zuiko Digital EC-20 2.0x Teleconverter " } ,
// End of list marker
{ { 0xff , 0 } , " " }
} ;
if ( value . count ( ) ! = 6 | | value . typeId ( ) ! = unsignedByte ) {
return os < < value ;
}
byte v0 = ( byte ) value . toLong ( 0 ) ;
byte v2 = ( byte ) value . toLong ( 2 ) ;
for ( int i = 0 ; extenderModels [ i ] . val [ 0 ] ! = 0xff ; i + + ) {
if ( extenderModels [ i ] . val [ 0 ] = = v0 & &
extenderModels [ i ] . val [ 1 ] = = v2 ) {
return os < < extenderModels [ i ] . label ;
}
}
return os < < value ;
} // OlympusMakerNote::printEq0x0301
//! OlympusCs FocusMode, tag 0x0301
// (1 or 2 values)
std : : ostream & OlympusMakerNote : : printCs0x0301 ( std : : ostream & os , const Value & value , const ExifData * )
{
static struct {
uint16_t val ;
const char * label ;
} focusModes0 [ ] = {
{ 0 , N_ ( " Single AF " ) } ,
{ 1 , N_ ( " Sequential shooting AF " ) } ,
{ 2 , N_ ( " Continuous AF " ) } ,
{ 3 , N_ ( " Multi AF " ) } ,
{ 4 , N_ ( " Face detect " ) } ,
{ 10 , N_ ( " MF " ) } ,
} ;
static struct {
uint16_t val ;
const char * label ;
} focusModes1 [ ] = {
{ 0x0001 , N_ ( " S-AF " ) } ,
{ 0x0004 , N_ ( " C-AF " ) } ,
{ 0x0010 , N_ ( " MF " ) } ,
{ 0x0020 , N_ ( " Face detect " ) } ,
{ 0x0040 , N_ ( " Imager AF " ) } ,
{ 0x0100 , N_ ( " AF sensor " ) } ,
} ;
if ( value . count ( ) < 1 | | value . typeId ( ) ! = unsignedShort ) {
return os < < " ( " < < value < < " ) " ;
}
auto v = ( uint16_t ) value . toLong ( 0 ) ;
// If value 2 is present, it is used instead of value 1.
if ( value . count ( ) > 1 ) {
std : : string p ; // Used to enable ',' separation
v = ( uint16_t ) value . toLong ( 1 ) ;
for ( auto & & mode : focusModes1 ) {
if ( ( v & mode . val ) ! = 0 ) {
if ( ! p . empty ( ) ) {
os < < " , " ;
}
p = mode . label ;
os < < p ;
}
}
} else {
for ( auto & & mode : focusModes0 ) {
if ( mode . val = = v ) {
os < < mode . label ;
break ;
}
}
}
return os < < v ;
} // OlympusMakerNote::printCs0x0301
//! OlympusCs ArtFilter, tag 0x0529, OlympusCs MagicFilter, tag 0x052c
std : : ostream & OlympusMakerNote : : print0x0529 ( std : : ostream & os , const Value & value , const ExifData * )
{
static struct {
uint16_t val [ 2 ] ;
const char * label ;
} artFilters [ ] = {
{ { 0 , 0 } , N_ ( " Off " ) } ,
{ { 0 , 1280 } , N_ ( " Off " ) } ,
{ { 1 , 1280 } , N_ ( " Soft Focus " ) } ,
{ { 2 , 1280 } , N_ ( " Pop Art " ) } ,
{ { 3 , 1280 } , N_ ( " Pale & Light Color " ) } ,
{ { 4 , 1280 } , N_ ( " Light Tone " ) } ,
{ { 5 , 1280 } , N_ ( " Pin Hole " ) } ,
{ { 6 , 1280 } , N_ ( " Grainy Film " ) } ,
{ { 9 , 1280 } , N_ ( " Diorama " ) } ,
{ { 10 , 1280 } , N_ ( " Cross Process " ) } ,
{ { 12 , 1280 } , N_ ( " Fish Eye " ) } ,
{ { 13 , 1280 } , N_ ( " Drawing " ) } ,
{ { 14 , 1280 } , N_ ( " Gentle Sepia " ) } ,
{ { 15 , 1280 } , N_ ( " Pale & Light Color II " ) } ,
{ { 16 , 1280 } , N_ ( " Pop Art II " ) } ,
{ { 17 , 1280 } , N_ ( " Pin Hole II " ) } ,
{ { 18 , 1280 } , N_ ( " Pin Hole III " ) } ,
{ { 19 , 1280 } , N_ ( " Grainy Film II " ) } ,
{ { 20 , 1280 } , N_ ( " Dramatic Tone " ) } ,
{ { 21 , 1280 } , N_ ( " Punk " ) } ,
{ { 22 , 1280 } , N_ ( " Soft Focus 2 " ) } ,
{ { 23 , 1280 } , N_ ( " Sparkle " ) } ,
{ { 24 , 1280 } , N_ ( " Watercolor " ) } ,
{ { 25 , 1280 } , N_ ( " Key Line " ) } ,
{ { 26 , 1280 } , N_ ( " Key Line II " ) } ,
{ { 27 , 1280 } , N_ ( " Miniature " ) } ,
{ { 28 , 1280 } , N_ ( " Reflection " ) } ,
{ { 29 , 1280 } , N_ ( " Fragmented " ) } ,
{ { 31 , 1280 } , N_ ( " Cross Process II " ) } ,
{ { 32 , 1280 } , N_ ( " Dramatic Tone II " ) } ,
{ { 33 , 1280 } , N_ ( " Watercolor I " ) } ,
{ { 34 , 1280 } , N_ ( " Watercolor II " ) } ,
{ { 35 , 1280 } , N_ ( " Diorama II " ) } ,
{ { 36 , 1280 } , N_ ( " Vintage " ) } ,
{ { 37 , 1280 } , N_ ( " Vintage II " ) } ,
{ { 38 , 1280 } , N_ ( " Vintage III " ) } ,
{ { 39 , 1280 } , N_ ( " Partial Color " ) } ,
{ { 40 , 1280 } , N_ ( " Partial Color II " ) } ,
{ { 41 , 1280 } , N_ ( " Partial Color III " ) } ,
// End of list marker
{ { 0xffff , 0 } , " " }
} ;
if ( value . count ( ) ! = 4 | | value . typeId ( ) ! = unsignedShort ) {
return os < < value ;
}
uint16_t v0 = ( uint16_t ) value . toLong ( 0 ) ;
uint16_t v1 = ( uint16_t ) value . toLong ( 1 ) ;
for ( int i = 0 ; artFilters [ i ] . val [ 0 ] ! = 0xffff ; i + + ) {
if ( artFilters [ i ] . val [ 0 ] = = v0 & &
artFilters [ i ] . val [ 1 ] = = v1 ) {
return os < < artFilters [ i ] . label ;
}
}
return os < < " " ;
} // OlympusMakerNote::print0x0529
// Olympus FocusInfo tag 0x1209 ManualFlash
std : : ostream & OlympusMakerNote : : print0x1209 ( std : : ostream & os , const Value & value , const ExifData * )
{
if ( value . count ( ) ! = 2 | | value . typeId ( ) ! = unsignedShort ) {
return os < < value ;
}
switch ( value . toLong ( 0 ) ) {
case 0 : os < < _ ( " Off " ) ; break ;
case 1 : os < < _ ( " On " ) ; break ;
default : os < < value . toLong ( 0 ) ; break ;
}
os < < " " ;
os < < value . toLong ( 1 ) ;
return os ;
} // OlympusMakerNote::print0x1209
// Olympus FocusDistance 0x0305
std : : ostream & OlympusMakerNote : : print0x0305 ( std : : ostream & os , const Value & value , const ExifData * ) {
std : : ios : : fmtflags f ( os . flags ( ) ) ;
if ( value . count ( ) ! = 1 | | value . typeId ( ) ! = unsignedRational ) {
os . flags ( f ) ;
return os < < value ;
}
Rational distance = value . toRational ( ) ;
if ( static_cast < uint32_t > ( distance . first ) = = 0xffffffff ) {
os < < _ ( " Infinity " ) ;
}
else {
std : : ostringstream oss ;
oss . copyfmt ( os ) ;
os < < std : : fixed < < std : : setprecision ( 2 ) ;
os < < ( float ) distance . first / 1000 < < " m " ;
os . copyfmt ( oss ) ;
}
os . flags ( f ) ;
return os ;
}
// Olympus FocusInfo tag 0x0308 AFPoint
std : : ostream & OlympusMakerNote : : print0x0308 ( std : : ostream & os , const Value &
value , const ExifData * metadata )
{
static struct {
uint16_t val ;
const char * label ;
} afPoints [ ] = {
{ 0 , N_ ( " Left (or n/a) " ) } ,
{ 1 , N_ ( " Center (horizontal) " ) } ,
{ 2 , N_ ( " Right " ) } ,
{ 3 , N_ ( " Center (vertical) " ) } ,
{ 255 , N_ ( " None " ) } ,
// End of list marker
{ 0xffff , " " }
} ;
static struct {
byte val ;
const char * label ;
} afPointsE3 [ ] = {
{ 0x00 , N_ ( " None " ) } ,
{ 0x01 , N_ ( " Top-left (horizontal) " ) } ,
{ 0x02 , N_ ( " Top-center (horizontal) " ) } ,
{ 0x03 , N_ ( " Top-right (horizontal) " ) } ,
{ 0x04 , N_ ( " Left (horizontal) " ) } ,
{ 0x05 , N_ ( " Mid-left (horizontal) " ) } ,
{ 0x06 , N_ ( " Center (horizontal) " ) } ,
{ 0x07 , N_ ( " Mid-right (horizontal) " ) } ,
{ 0x08 , N_ ( " Right (horizontal) " ) } ,
{ 0x09 , N_ ( " Bottom-left (horizontal) " ) } ,
{ 0x0a , N_ ( " Bottom-center (horizontal) " ) } ,
{ 0x0b , N_ ( " Bottom-right (horizontal) " ) } ,
{ 0x0c , N_ ( " Top-left (vertical) " ) } ,
{ 0x0d , N_ ( " Top-center (vertical) " ) } ,
{ 0x0e , N_ ( " Top-right (vertical) " ) } ,
{ 0x0f , N_ ( " Left (vertical) " ) } ,
{ 0x10 , N_ ( " Mid-left (vertical) " ) } ,
{ 0x11 , N_ ( " Center (vertical) " ) } ,
{ 0x12 , N_ ( " Mid-right (vertical) " ) } ,
{ 0x13 , N_ ( " Right (vertical) " ) } ,
{ 0x14 , N_ ( " Bottom-left (vertical) " ) } ,
{ 0x15 , N_ ( " Bottom-center (vertical) " ) } ,
{ 0x16 , N_ ( " Bottom-right (vertical) " ) } ,
// End of list marker
{ 0xff , " " }
} ;
if ( value . count ( ) ! = 1 | | value . typeId ( ) ! = unsignedShort ) {
return os < < value ;
}
bool E3_E30model = false ;
if ( metadata ! = NULL ) {
auto pos = metadata - > findKey ( ExifKey ( " Exif.Image.Model " ) ) ;
if ( pos ! = metadata - > end ( ) & & pos - > count ( ) ! = 0 ) {
std : : string model = pos - > toString ( ) ;
if ( model . find ( " E-3 " ) ! = std : : string : : npos | |
model . find ( " E-30 " ) ! = std : : string : : npos ) {
E3_E30model = true ;
}
}
}
uint16_t v = ( uint16_t ) value . toLong ( 0 ) ;
if ( ! E3_E30model ) {
for ( int i = 0 ; afPoints [ i ] . val ! = 0xffff ; i + + ) {
if ( afPoints [ i ] . val = = v ) {
return os < < afPoints [ i ] . label ;
}
}
} else {
// E-3 and E-30
for ( int i = 0 ; afPointsE3 [ i ] . val ! = 0xff ; i + + ) {
if ( afPointsE3 [ i ] . val = = ( v & 0x1f ) ) {
os < < afPointsE3 [ i ] . label ;
os < < " , " ;
if ( ( v & 0xe0 ) = = 0 ) return os < < N_ ( " Single Target " ) ;
if ( v & 0x40 ) return os < < N_ ( " All Target " ) ;
if ( v & 0x80 ) return os < < N_ ( " Dynamic Single Target " ) ;
}
}
}
return os < < v ;
} // OlympusMakerNote::print0x0308
} // namespace Internal
} // namespace Exiv2