[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:41:47 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=839012f

The following commit has been merged in the master branch:
commit 839012f0373cdd3f789b837491411dd1398c4b77
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Wed Jul 7 11:21:39 2010 +0000

    Olympus makernote updates (Greg Mansfield)
---
 src/olympusmn.cpp        | 610 +++++++++++++++++++++++++++++++++++++++--------
 src/olympusmn.hpp        |  19 ++
 test/data/exiv2-test.out |  50 ++--
 3 files changed, 560 insertions(+), 119 deletions(-)

diff --git a/src/olympusmn.cpp b/src/olympusmn.cpp
index 30b550f..96801cd 100644
--- a/src/olympusmn.cpp
+++ b/src/olympusmn.cpp
@@ -24,6 +24,7 @@
   Author(s): Will Stokes (wuz) <wstokes at gmail.com>
              Andreas Huggel (ahu) <ahuggel at gmx.net>
              Gilles Caulier (gc) <caulier dot gilles at gmail dot com>
+             Greg Mansfield <G.Mansfield at computer dot org>
   History:   10-Mar-05, wuz: created
   Credits:   See header file.
  */
@@ -37,6 +38,8 @@ EXIV2_RCSID("@(#) $Id$")
 #include "types.hpp"
 #include "olympusmn.hpp"
 #include "value.hpp"
+#include "image.hpp"
+#include "tags.hpp"
 #include "i18n.h"                // NLS support.
 
 // + standard includes
@@ -85,6 +88,55 @@ namespace Exiv2 {
         {  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")                },
@@ -93,6 +145,12 @@ namespace Exiv2 {
         {  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")   },
@@ -124,10 +182,16 @@ namespace Exiv2 {
 
         /* TODO:
            add Minolta makenotes tags here (0x0000-0x0103). See Exiftool database.*/
+        TagInfo(0x0000, "0x0000", "0x0000",
+                N_("Unknown"),
+                olympusIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0100, "ThumbnailImage", N_("Thumbnail Image"),
                 N_("Thumbnail image"),
                 olympusIfdId, makerTags, undefined, printValue),
 
+        TagInfo(0x0104, "BodyFirmwareVersion", N_("Body Firmware Version"),
+                N_("Body firmware version"),
+                olympusIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0200, "SpecialMode", N_("Special Mode"),
                 N_("Picture taking mode"),
                 olympusIfdId, makerTags, unsignedLong, print0x0200),
@@ -149,18 +213,15 @@ namespace Exiv2 {
         TagInfo(0x0206, "LensDistortionParams", N_("Lens Distortion Parameters"),
                 N_("Lens distortion parameters"),
                 olympusIfdId, makerTags, signedShort, printValue),
-        TagInfo(0x0207, "FirmwareVersion", N_("Firmware Version"),
-                N_("Software firmware version"),
+        TagInfo(0x0207, "CameraType", N_("Camera Type"),
+                N_("Camera type"),
                 olympusIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0208, "PictureInfo", N_("Picture Info"),
                 N_("ASCII format data such as [PictureInfo]"),
                 olympusIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0209, "CameraID", N_("Camera ID"),
                 N_("Camera ID data"),
-                olympusIfdId, makerTags, undefined, printValue),
-
-        /* TODO: Epson Camera tags. See ExifTool database.
-
+                olympusIfdId, makerTags, asciiString, print0x0209),
         TagInfo(0x020b, "ImageWidth", N_("Image Width"),
                 N_("Image width"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
@@ -173,25 +234,26 @@ namespace Exiv2 {
         TagInfo(0x0280, "PreviewImage", N_("Preview Image"),
                 N_("Preview image"),
                 olympusIfdId, makerTags, unsignedByte, printValue),
-        */
-
         TagInfo(0x0300, "PreCaptureFrames", N_("Pre Capture Frames"),
                 N_("Pre-capture frames"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
-        TagInfo(0x0301, "0x0301", "0x0301",
-                N_("Unknown"),
+        TagInfo(0x0301, "WhiteBoard", N_("White Board"),
+                N_("White board"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0302, "OneTouchWB", N_("One Touch WB"),
                 N_("One touch white balance"),
                 olympusIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOneTouchWb)),
-        TagInfo(0x0303, "0x0303", "0x0303",
-                N_("Unknown"),
+        TagInfo(0x0303, "WhiteBalanceBracket", N_("White Balance Bracket"),
+                N_("White balance bracket"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
-        TagInfo(0x0304, "0x0304", "0x0304",
-                N_("Unknown"),
+        TagInfo(0x0304, "WhiteBalanceBias", N_("White Balance Bias"),
+                N_("White balance bias"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
-        TagInfo(0x0404, "SerialNumber", N_("Serial Number"),
-                N_("Serial number"),
+        TagInfo(0x0403, "SceneMode", N_("Scene Mode"),
+                N_("Scene mode"),
+                olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusSceneMode)),
+        TagInfo(0x0404, "Firmware", N_("Firmware"),
+                N_("Firmwarer"),
                 olympusIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0e00, "PrintIM", N_("Print IM"),
                 N_("PrintIM information"),
@@ -229,12 +291,12 @@ namespace Exiv2 {
         TagInfo(0x1008, "LensTemperature", N_("Lens Temperature"),
                 N_("Lens temperature"),
                 olympusIfdId, makerTags, signedShort, printValue),
-        TagInfo(0x1009, "0x1009", "0x1009",
-                N_("Unknown"),
-                olympusIfdId, makerTags, unsignedShort, printValue),
-        TagInfo(0x100a, "0x100a", "0x100a",
-                N_("Unknown"),
+        TagInfo(0x1009, "LightCondition", N_("Light Condition"),
+                N_("Light condition"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
+        TagInfo(0x100a, "FocusRange", N_("Focus Range"),
+                N_("Focus range"),
+                olympusIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusFocusRange)),
         TagInfo(0x100b, "FocusMode", N_("Focus Mode"),
                 N_("Focus mode"),
                 olympusIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusFocusMode)),
@@ -277,8 +339,8 @@ namespace Exiv2 {
         TagInfo(0x1018, "BlueBalance", N_("Blue Balance"),
                 N_("Blue balance"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
-        TagInfo(0x1019, "0x1019", "0x1019",
-                N_("Unknown"),
+        TagInfo(0x1019, "ColorMatrixNumber", N_("Color Matrix Number"),
+                N_("Color matrix mumber"),
                 olympusIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x101a, "SerialNumber2", N_("Serial Number 2"),
                 N_("Serial number 2"),
@@ -415,6 +477,7 @@ namespace Exiv2 {
         return tagInfo_;
     }
 
+// Olympus CameraSettings Tags
     //! ExposureMode, tag 0x0200
     extern const TagDetails olympusExposureMode[] = {
         { 1, N_("Manual")                    },
@@ -424,7 +487,7 @@ namespace Exiv2 {
         { 5, N_("Program-shift")             }
     };
 
-    //! MeteringMode
+    //! MeteringMode, tag 0x0202
     extern const TagDetails olympusMeteringMode[] = {
         {    2, N_("Center-weighted average") },
         {    3, N_("Spot")                    },
@@ -434,14 +497,14 @@ namespace Exiv2 {
         { 1027, N_("Spot+Shadow control")     }
     };
 
-    //! MacroMode
+    //! MacroMode, tag 0x0300
     extern const TagDetails olympusMacroMode[] = {
         { 0, N_("Off")         },
         { 1, N_("On")          },
         { 2, N_("Super Macro") }
     };
 
-    //! FocusMode
+    //! FocusMode, tag 0x0301
     extern const TagDetails olympusCsFocusMode[] = {
         { 0, N_("Single AF")              },
         { 1, N_("Sequential shooting AF") },
@@ -450,19 +513,19 @@ namespace Exiv2 {
         { 10, N_("MF")                    }
     };
 
-    //! FocusProcess
+    //! FocusProcess, tag 0x0302
     extern const TagDetails olympusFocusProcess[] = {
         { 0, N_("AF Not Used") },
         { 1, N_("AF Used")     }
     };
 
-    //! AFSearch
+    //! AFSearch, tag 0x0303
     extern const TagDetails olympusAFSearch[] = {
         { 0, N_("Not Ready") },
         { 1, N_("Ready")     }
     };
 
-    //! FlashMode
+    //! FlashMode, tag 0x0400
     extern const TagDetailsBitmask olympusFlashMode[] = {
         { 0x0000, N_("Off")         },
         { 0x0001, N_("On")          },
@@ -473,7 +536,32 @@ namespace Exiv2 {
         { 0x0020, N_("2nd Curtain") }
     };
 
-    //! OlympusCs WhiteBalance
+    //! 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")                              },
         {  16, N_("7500K (Fine Weather with Shade)")   },
@@ -494,7 +582,7 @@ namespace Exiv2 {
         { 514, N_("Custom WB 8000K")                   }
     };
 
-    //! ModifiedSaturation
+    //! ModifiedSaturation, tag 0x0504
     extern const TagDetails olympusModifiedSaturation[] = {
         { 0, N_("Off")                 },
         { 1, N_("CM1 (Red Enhance)")   },
@@ -503,70 +591,22 @@ namespace Exiv2 {
         { 4, N_("CM4 (Skin Tones)")    }
     };
 
-    //! ColorSpace
+    //! ColorSpace, tag 0x0507
     extern const TagDetails olympusColorSpace[] = {
         { 0, N_("sRGB")          },
         { 1, N_("Adobe RGB")     },
         { 2, N_("Pro Photo RGB") }
     };
 
-    //! SceneMode
-    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")              }
-    };
-
-    //! NoiseReduction
+    //! NoiseReduction, tag 0x050a
     extern const TagDetailsBitmask olympusNoiseReduction[] = {
         { 0x0001, N_("Noise Reduction")          },
         { 0x0002, N_("Noise Filter")             },
-        { 0x0004, N_("Noise Filter (ISO Boost)") }
+        { 0x0004, N_("Noise Filter (ISO Boost)") },
+        { 0x0008, N_("Auto")                     }
     };
 
-    //! PictureMode
+    //! PictureMode, tag 0x0520
     extern const TagDetails olympusPictureMode[] = {
         {   1, N_("Vivid")    },
         {   2, N_("Natural")  },
@@ -576,7 +616,7 @@ namespace Exiv2 {
         { 512, N_("Sepia")    }
     };
 
-    //! PictureModeBWFilter
+    //! PictureModeBWFilter, tag 0x0525
     extern const TagDetails olympusPictureModeBWFilter[] = {
         { 0, N_("n/a")     },
         { 1, N_("Neutral") },
@@ -586,7 +626,7 @@ namespace Exiv2 {
         { 5, N_("Green")   }
     };
 
-    //! PictureModeTone
+    //! PictureModeTone, tag 0x0526
     extern const TagDetails olympusPictureModeTone[] = {
         { 0, N_("n/a")     },
         { 1, N_("Neutral") },
@@ -596,7 +636,7 @@ namespace Exiv2 {
         { 5, N_("Green")   }
     };
 
-    //! OlympusCs Quality
+    //! OlympusCs Quality, tag 0x0603
     extern const TagDetails olympusCsQuality[] = {
         { 1, N_("SQ")  },
         { 2, N_("HQ")  },
@@ -604,6 +644,14 @@ namespace Exiv2 {
         { 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"), olympusCsIfdId, makerTags, undefined, printExifVersion),
         TagInfo(0x0100, "PreviewImageValid", N_("PreviewImage Valid"), N_("Preview image valid"), olympusCsIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(olympusNoYes)),
@@ -612,13 +660,20 @@ namespace Exiv2 {
         TagInfo(0x0200, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusExposureMode)),
         TagInfo(0x0201, "AELock", N_("AE Lock"), N_("Auto exposure lock"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
         TagInfo(0x0202, "MeteringMode", N_("Metering Mode"), N_("Metering mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusMeteringMode)),
+        TagInfo(0x0203, "ExposureShift", N_("Exposure Shift"), N_("Exposure shift"), olympusCsIfdId, makerTags, signedRational, printValue),
         TagInfo(0x0300, "MacroMode", N_("Macro Mode"), N_("Macro mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusMacroMode)),
-        TagInfo(0x0301, "FocusMode", N_("Focus Mode"), N_("Focus mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusCsFocusMode)),
+        TagInfo(0x0301, "FocusMode", N_("Focus Mode"), N_("Focus mode"), olympusCsIfdId, makerTags, unsignedShort, printCs0x0301),
         TagInfo(0x0302, "FocusProcess", N_("Focus Process"), N_("Focus process"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusFocusProcess)),
         TagInfo(0x0303, "AFSearch", N_("AF Search"), N_("AF search"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusAFSearch)),
         TagInfo(0x0304, "AFAreas", N_("AF Areas"), N_("AF areas"), olympusCsIfdId, makerTags, unsignedLong, printValue),
+        TagInfo(0x0305, "AFPointSelected", N_("AFPointSelected"), N_("AFPointSelected"), olympusCsIfdId, makerTags, signedRational, printValue),
+        TagInfo(0x0307, "AFFineTuneAdj", N_("AF Fine Tune Adjust"), N_("AF fine tune adjust"), olympusCsIfdId, makerTags, signedShort, printValue),
         TagInfo(0x0400, "FlashMode", N_("Flash Mode"), N_("Flash mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG_BITMASK(olympusFlashMode)),
         TagInfo(0x0401, "FlashExposureComp", N_("Flash Exposure Compensation"), N_("Flash exposure compensation"), olympusCsIfdId, makerTags, signedRational, printValue),
+        TagInfo(0x0403, "FlashRemoteControl", N_("Flash Remote Control"), N_("Flash remote control"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusFlashRemoteControl)),
+        TagInfo(0x0404, "FlashControlMode", N_("Flash Control Mode"), N_("Flash control mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusFlashControlMode)),
+        TagInfo(0x0405, "FlashIntensity", N_("Flash Intensity"), N_("Flash intensity"), olympusCsIfdId, makerTags, signedRational, printValue),
+        TagInfo(0x0406, "ManualFlashStrength", N_("Manual Flash Strength"), N_("Manual flash strength"), olympusCsIfdId, makerTags, signedRational, printValue),
         TagInfo(0x0500, "WhiteBalance", N_("White Balance 2"), N_("White balance 2"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusWhiteBalance)),
         TagInfo(0x0501, "WhiteBalanceTemperature", N_("White Balance Temperature"), N_("White balance temperature"), olympusCsIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0502, "WhiteBalanceBracket", N_("White Balance Bracket"), N_("White balance bracket"), olympusCsIfdId, makerTags, signedShort, printValue),
@@ -641,12 +696,17 @@ namespace Exiv2 {
         TagInfo(0x0525, "PictureModeBWFilter", N_("Picture Mode BW Filter"), N_("Picture mode BW filter"), olympusCsIfdId, makerTags, signedShort, EXV_PRINT_TAG(olympusPictureModeBWFilter)),
         TagInfo(0x0526, "PictureModeTone", N_("Picture Mode Tone"), N_("Picture mode tone"), olympusCsIfdId, makerTags, signedShort, EXV_PRINT_TAG(olympusPictureModeTone)),
         TagInfo(0x0527, "NoiseFilter", N_("Noise Filter"), N_("Noise filter"), olympusCsIfdId, makerTags, signedShort, print0x0527),
+        TagInfo(0x0529, "ArtFilter", N_("Art Filter"), N_("Art filter"), olympusCsIfdId, makerTags, unsignedShort, print0x0529),
+        TagInfo(0x052c, "MagicFilter", N_("Magic Filter"), N_("Magic filter"), olympusCsIfdId, makerTags, unsignedShort, print0x0529),
         TagInfo(0x0600, "DriveMode", N_("Drive Mode"), N_("Drive mode"), olympusCsIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0601, "PanoramaMode", N_("Panorama Mode"), N_("Panorama mode"), olympusCsIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0603, "Quality", N_("Image Quality 2"), N_("Image quality 2"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusCsQuality)),
+        TagInfo(0x0604, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusImageStabilization)),
         TagInfo(0x0900, "ManometerPressure", N_("Manometer Pressure"), N_("Manometer pressure"), olympusCsIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0901, "ManometerReading", N_("Manometer Reading"), N_("Manometer reading"), olympusCsIfdId, makerTags, signedLong, printValue),
         TagInfo(0x0902, "ExtendedWBDetect", N_("Extended WB Detect"), N_("Extended WB detect"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
+        TagInfo(0x0903, "LevelGaugeRoll", N_("Level Gauge Roll"), N_("Level gauge roll"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
+        TagInfo(0x0904, "LevelGaugePitch", N_("Level Gauge Pitch"), N_("Level gauge pitch"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
         // End of list marker
         TagInfo(0xffff, "(UnknownOlympusCsTag)", "(UnknownOlympusCsTag)", N_("Unknown OlympusCs tag"), olympusCsIfdId, makerTags, invalidTypeId, printValue)
     };
@@ -682,8 +742,9 @@ namespace Exiv2 {
         TagInfo(0x0102, "InternalSerialNumber", N_("Internal Serial Number"), N_("Internal serial number"), olympusEqIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0103, "FocalPlaneDiagonal", N_("Focal Plane Diagonal"), N_("Focal plane diagonal"), olympusEqIfdId, makerTags, unsignedRational, printValue),
         TagInfo(0x0104, "BodyFirmwareVersion", N_("Body Firmware Version"), N_("Body firmware version"), olympusEqIfdId, makerTags, unsignedLong, printValue),
-        TagInfo(0x0201, "LensType", N_("Lens Type"), N_("Lens type"), olympusEqIfdId, makerTags, unsignedByte, printValue),
+        TagInfo(0x0201, "LensType", N_("Lens Type"), N_("Lens type"), olympusEqIfdId, makerTags, unsignedByte, print0x0201),
         TagInfo(0x0202, "LensSerialNumber", N_("Lens Serial Number"), N_("Lens serial number"), olympusEqIfdId, makerTags, asciiString, printValue),
+        TagInfo(0x0203, "LensModel", N_("Lens Model"), N_("Lens model"), olympusEqIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0204, "LensFirmwareVersion", N_("Lens Firmware Version"), N_("Lens firmware version"), olympusEqIfdId, makerTags, unsignedLong, printValue),
         TagInfo(0x0205, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), olympusEqIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0206, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), olympusEqIfdId, makerTags, unsignedShort, printValue),
@@ -691,7 +752,7 @@ namespace Exiv2 {
         TagInfo(0x0208, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), olympusEqIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x020a, "MaxApertureAtCurrentFocal", N_("Max Aperture At Current Focal"), N_("Max aperture at current focal"), olympusEqIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x020b, "LensProperties", N_("Lens Properties"), N_("Lens properties"), olympusEqIfdId, makerTags, unsignedShort, printValue),
-        TagInfo(0x0301, "Extender", N_("Extender"), N_("Extender"), olympusEqIfdId, makerTags, unsignedByte, printValue),
+        TagInfo(0x0301, "Extender", N_("Extender"), N_("Extender"), olympusEqIfdId, makerTags, unsignedByte, printEq0x0301),
         TagInfo(0x0302, "ExtenderSerialNumber", N_("Extender Serial Number"), N_("Extender serial number"), olympusEqIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0303, "ExtenderModel", N_("Extender Model"), N_("Extender model"), olympusEqIfdId, makerTags, asciiString, printValue),
         TagInfo(0x0304, "ExtenderFirmwareVersion", N_("Extender Firmware Version"), N_("Extender firmwareversion"), olympusEqIfdId, makerTags, unsignedLong, printValue),
@@ -846,6 +907,26 @@ namespace Exiv2 {
         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, N_("4:3")  },
+        { 2, N_("3:2")  },
+        { 3, N_("16:9") },
+        { 4, N_("6:6")  },
+        { 5, N_("5:4")  },
+        { 6, N_("7:6")  },
+        { 7, N_("6:5")  },
+        { 8, N_("7:5")  },
+        { 9, N_("3:4")  }
+    };
+
     const TagInfo OlympusMakerNote::tagInfoIp_[] = {
         TagInfo(0x0000, "ImageProcessingVersion", N_("Image Processing Version"), N_("Image processing version"), olympusIpIfdId, makerTags, undefined, printExifVersion),
         TagInfo(0x0100, "WB_RBLevels", N_("WB RB Levels"), N_("WB RB levels"), olympusIpIfdId, makerTags, unsignedShort, printValue),
@@ -893,6 +974,9 @@ namespace Exiv2 {
         TagInfo(0x1010, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusIpIfdId, makerTags, unsignedShort, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)),
         TagInfo(0x1011, "DistortionCorrection", N_("Distortion Correction"), N_("Distortion correction"), olympusIpIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
         TagInfo(0x1012, "ShadingCompensation", N_("Shading Compensation"), N_("Shading compensation"), olympusIpIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
+        TagInfo(0x101c, "MultipleExposureMode", N_("Multiple Exposure Mode"), N_("Multiple exposure mode"), olympusIpIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusIpMultipleExposureMode)),
+        TagInfo(0x1112, "AspectRatio", N_("Aspect Ratio"), N_("Aspect ratio"), olympusIpIfdId, makerTags, unsignedByte, EXV_PRINT_TAG(olympusIpAspectRatio)),
+        TagInfo(0x1113, "AspectFrame", N_("Aspect Frame"), N_("Aspect frame"), olympusIpIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x1200, "FaceDetect", N_("Face Detect"), N_("Face detect"), olympusIpIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(olympusOffOn)),
         TagInfo(0x1201, "FaceDetectArea", N_("Face Detect Area"), N_("Face detect area"), olympusIpIfdId, makerTags, signedShort, printValue),
         // End of list marker
@@ -921,15 +1005,15 @@ namespace Exiv2 {
         TagInfo(0x0303, "FocusStepInfinity", N_("Focus Step Infinity"), N_("Focus step infinity"), olympusFiIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0304, "FocusStepNear", N_("Focus Step Near"), N_("Focus step near"), olympusFiIfdId, makerTags, unsignedShort, printValue),
         TagInfo(0x0305, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), olympusFiIfdId, makerTags, unsignedRational, printValue),
-        TagInfo(0x0308, "AFPoint", N_("AF Point"), N_("AF point"), olympusFiIfdId, makerTags, unsignedShort, printValue),
+        TagInfo(0x0308, "AFPoint", N_("AF Point"), N_("AF point"), olympusFiIfdId, makerTags, unsignedShort, print0x0308),
         TagInfo(0x1201, "ExternalFlash", N_("External Flash"), N_("External flash"), olympusFiIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
         TagInfo(0x1203, "ExternalFlashGuideNumber", N_("External Flash Guide Number"), N_("External flash guide number"), olympusFiIfdId, makerTags, signedRational, printValue),
         TagInfo(0x1204, "ExternalFlashBounce", N_("External Flash Bounce"), N_("External flash bounce"), olympusFiIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusFiExternalFlashBounce)),
         TagInfo(0x1205, "ExternalFlashZoom", N_("External Flash Zoom"), N_("External flash zoom"), olympusFiIfdId, makerTags, unsignedRational, printValue),
         TagInfo(0x1208, "InternalFlash", N_("Internal Flash"), N_("Internal flash"), olympusFiIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
-        TagInfo(0x1209, "ManualFlash", N_("Manual Flash"), N_("Manual flash"), olympusFiIfdId, makerTags, unsignedShort, printValue),
+        TagInfo(0x1209, "ManualFlash", N_("Manual Flash"), N_("Manual flash"), olympusFiIfdId, makerTags, unsignedShort, print0x1209),
         TagInfo(0x1500, "SensorTemperature", N_("Sensor Temperature"), N_("Sensor temperature"), olympusFiIfdId, makerTags, signedShort, printValue),
-        TagInfo(0x1600, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusFiIfdId, makerTags, undefined, printValue),
+        TagInfo(0x1600, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusFiIfdId, makerTags, unsignedLong, printValue),
         // End of list marker
         TagInfo(0xffff, "(UnknownOlympusFiTag)", "(UnknownOlympusFiTag)", N_("Unknown OlympusFi tag"), olympusFiIfdId, makerTags, invalidTypeId, printValue)
     };
@@ -1035,7 +1119,7 @@ namespace Exiv2 {
         return os;
     }
 
-    // NoiseFilter
+    // Olympus CameraSettings tag 0x0527 NoiseFilter
     std::ostream& OlympusMakerNote::print0x0527(std::ostream& os, const Value& value, const ExifData*)
     {
         if (   value.count() != 3
@@ -1144,4 +1228,342 @@ namespace Exiv2 {
         return os;
     } // OlympusMakerNote::print0x1015
 
+    //! OlympusEq LensType, tag 0x201
+    std::ostream& OlympusMakerNote::print0x0201(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, 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 }, N_("Olympus Zuiko Digital ED 50mm F2.0 Macro")        },
+            { { 0,  1,  1 }, N_("Olympus Zuiko Digital 40-150mm F3.5-4.5")         },
+            { { 0,  1, 16 }, N_("Olympus Zuiko Digital ED 14-42mm F3.5-5.6")       },
+            { { 0,  2,  0 }, N_("Olympus Zuiko Digital ED 150mm F2.0")             },
+            { { 0,  2, 16 }, N_("Olympus Zuiko Digital 17mm F2.8 Pancake")         },
+            { { 0,  3,  0 }, N_("Olympus Zuiko Digital ED 300mm F2.8")             },
+            { { 0,  5,  0 }, N_("Olympus Zuiko Digital 14-54mm F2.8-3.5")          },
+            { { 0,  5,  1 }, N_("Olympus Zuiko Digital Pro ED 90-250mm F2.8")      },
+            { { 0,  6,  0 }, N_("Olympus Zuiko Digital ED 50-200mm F2.8-3.5")      },
+            { { 0,  6,  1 }, N_("Olympus Zuiko Digital ED 8mm F3.5 Fisheye")       },
+            { { 0,  7,  0 }, N_("Olympus Zuiko Digital 11-22mm F2.8-3.5")          },
+            { { 0,  7,  1 }, N_("Olympus Zuiko Digital 18-180mm F3.5-6.3")         },
+            { { 0,  8,  1 }, N_("Olympus Zuiko Digital 70-300mm F4.0-5.6")         },
+            { { 0, 21,  0 }, N_("Olympus Zuiko Digital ED 7-14mm F4.0")            },
+            { { 0, 23,  0 }, N_("Olympus Zuiko Digital Pro ED 35-100mm F2.0")      },
+            { { 0, 24,  0 }, N_("Olympus Zuiko Digital 14-45mm F3.5-5.6")          },
+            { { 0, 32,  0 }, N_("Olympus Zuiko Digital 35mm F3.5 Macro")           },
+            { { 0, 34,  0 }, N_("Olympus Zuiko Digital 17.5-45mm F3.5-5.6")        },
+            { { 0, 35,  0 }, N_("Olympus Zuiko Digital ED 14-42mm F3.5-5.6")       },
+            { { 0, 36,  0 }, N_("Olympus Zuiko Digital ED 40-150mm F4.0-5.6")      },
+            { { 0, 48,  0 }, N_("Olympus Zuiko Digital ED 50-200mm F2.8-3.5 SWD")  },
+            { { 0, 49,  0 }, N_("Olympus Zuiko Digital ED 12-60mm F2.8-4.0 SWD")   },
+            { { 0, 50,  0 }, N_("Olympus Zuiko Digital ED 14-35mm F2.0 SWD")       },
+            { { 0, 51,  0 }, N_("Olympus Zuiko Digital 25mm F2.8")                 },
+            { { 0, 52,  0 }, N_("Olympus Zuiko Digital ED 9-18mm F4.0-5.6")        },
+            { { 0, 53,  0 }, N_("Olympus Zuiko Digital 14-54mm F2.8-3.5 II")       },
+            { { 1,  1,  0 }, N_("Sigma 18-50mm F3.5-5.6")                          },
+            { { 1,  2,  0 }, N_("Sigma 55-200mm F4.0-5.6 DC")                      },
+            { { 1,  3,  0 }, N_("Sigma 18-125mm F3.5-5.6 DC")                      },
+            { { 1,  4,  0 }, N_("Sigma 18-125mm F3.5-5.6")                         },
+            { { 1,  5,  0 }, N_("Sigma 30mm F1.4")                                 },
+            { { 1,  6,  0 }, N_("Sigma 50-500mm F4.0-6.3 EX DG APO HSM RF")        },
+            { { 1,  7,  0 }, N_("Sigma 105mm F2.8 DG")                             },
+            { { 1,  8,  0 }, N_("Sigma 150mm F2.8 DG HSM")                         },
+            { { 1, 16,  0 }, N_("Sigma 24mm F1.8 EX DG Aspherical Macro")          },
+            { { 1, 17,  0 }, N_("Sigma 135-400mm F4.5-5.6 DG ASP APO RF")          },
+            { { 1, 18,  0 }, N_("Sigma 300-800mm F5.6 EX DG APO")                  },
+            { { 1, 20,  0 }, N_("Sigma 50-500mm F4.0-6.3 EX DG APO HSM RF")        },
+            { { 1, 21,  0 }, N_("Sigma 10-20mm F4.0-5.6 EX DC HSM")                },
+            { { 2,  1,  0 }, N_("Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.")    },
+            { { 2,  1, 16 }, N_("Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS")   },
+            { { 2,  2,  0 }, N_("Leica D Summilux 25mm F1.4 Asph.")                },
+            { { 2,  2, 16 }, N_("Lumix G Vario 45-200mm F4-5.6 Mega OIS")          },
+            { { 2,  3,  1 }, N_("Leica D Vario Elmar 14-50mm F3.8-5.6 Asph.")      },
+            { { 2,  3, 16 }, N_("Lumix G Vario HD 14-140mm F4-5.8 Asph. Mega OIS") },
+            { { 2,  4,  0 }, N_("Leica D Vario Elmar 14-150mm F3.5-5.6")           },
+            { { 2,  4, 16 }, N_("Lumix G Vario 7-14mm F4 Asph.")                   },
+            { { 2,  5, 16 }, N_("Lumix G 20mm F1.7 Asph.")                         },
+            { { 3,  1,  0 }, N_("Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.")    },
+            { { 3,  2,  0 }, N_("Leica D Summilux 25mm F1.4 Asph.")                },
+            // 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)) != '

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list