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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:40:23 UTC 2017


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

The following commit has been merged in the master branch:
commit 21ccbfce18f7a73ad0af978dca2ada9a1d315796
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Sat Mar 7 15:26:00 2009 +0000

    #618: Added functions for easy access of common metadata, which is not always in the same tag. (Based on a discussion with and initial patch from Carsten Pfeiffer)
---
 samples/Makefile            |   1 +
 samples/easyaccess-test.cpp |  58 ++++++++++++
 src/Makefile                |   1 +
 src/actions.cpp             | 212 ++++++--------------------------------------
 src/actions.hpp             |  10 +++
 src/easyaccess.cpp          | 203 ++++++++++++++++++++++++++++++++++++++++++
 src/easyaccess.hpp          |  62 +++++++++++++
 7 files changed, 360 insertions(+), 187 deletions(-)

diff --git a/samples/Makefile b/samples/Makefile
index 733e1ff..7c8b6fe 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -56,6 +56,7 @@ include $(top_srcdir)/config/config.mk
 # Add source files of sample programs to this list
 BINSRC = addmoddel.cpp        \
          convert-test.cpp     \
+         easyaccess-test.cpp  \
          exifcomment.cpp      \
          exifdata-test.cpp    \
          exifprint.cpp        \
diff --git a/samples/easyaccess-test.cpp b/samples/easyaccess-test.cpp
new file mode 100644
index 0000000..c046f58
--- /dev/null
+++ b/samples/easyaccess-test.cpp
@@ -0,0 +1,58 @@
+// ***************************************************************** -*- C++ -*-
+// easyaccess-test.cpp, $Rev$
+// Sample program using high-level metadata access functions
+
+// included header files
+#include <exiv2/image.hpp>
+#include <exiv2/exif.hpp>
+#include <exiv2/easyaccess.hpp>
+#include <iostream>
+#include <iomanip>
+#include <cassert>
+
+typedef Exiv2::ExifData::const_iterator (*EasyAccessFct)(const Exiv2::ExifData& ed);
+
+struct EasyAccess {
+    const char*   label_;
+    EasyAccessFct findFct_;
+};
+
+static const EasyAccess easyAccess[] = {
+    { "Orientation",   Exiv2::orientation  },
+    { "ISO speed",     Exiv2::isoSpeed     },
+    { "Flash bias",    Exiv2::flashBias    },
+    { "Exposure mode", Exiv2::exposureMode },
+    { "Scene mode",    Exiv2::sceneMode    },
+    { "Macro mode",    Exiv2::macroMode    },
+    { "Image quality", Exiv2::imageQuality },
+    { "White balance", Exiv2::whiteBalance },
+    { "Lens name",     Exiv2::lensName     }
+};
+
+int main(int argc, char **argv)
+try {
+    if (argc != 2) {
+        std::cout << "Usage: " << argv[0] << " file
";
+        return 1;
+    }
+
+    Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(argv[1]);
+    assert (image.get() != 0);
+    image->readMetadata();
+    Exiv2::ExifData& ed = image->exifData();
+
+    for (unsigned int i = 0; i < EXV_COUNTOF(easyAccess); ++i) {
+        Exiv2::ExifData::const_iterator pos = easyAccess[i].findFct_(ed);
+        if (pos != ed.end()) {
+            std::cout << std::setw(13) << std::left << easyAccess[i].label_ << " ("
+                      << std::setw(30) << pos->key() << ") : "
+                      << pos->print(&ed) << "
";
+        }
+    }
+
+    return 0;
+}
+catch (Exiv2::AnyError& e) {
+    std::cout << "Caught Exiv2 exception '" << e << "'
";
+    return -1;
+}
diff --git a/src/Makefile b/src/Makefile
index 65d412d..173ec26 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -73,6 +73,7 @@ CCSRC =  basicio.cpp          \
 	 cr2image.cpp         \
 	 crwimage.cpp         \
 	 datasets.cpp         \
+	 easyaccess.cpp       \
 	 error.cpp            \
 	 exif.cpp             \
 	 futils.cpp           \
diff --git a/src/actions.cpp b/src/actions.cpp
index 7b0feba..a315ec3 100644
--- a/src/actions.cpp
+++ b/src/actions.cpp
@@ -48,6 +48,7 @@ EXIV2_RCSID("@(#) $Id$")
 #include "utils.hpp"
 #include "types.hpp"
 #include "exif.hpp"
+#include "easyaccess.hpp"
 #include "canonmn.hpp"
 #include "iptc.hpp"
 #include "xmp.hpp"
@@ -324,23 +325,8 @@ namespace Action {
         // Flash
         printTag(exifData, "Exif.Photo.Flash", _("Flash"));
 
-        // Todo: Flash bias, flash energy
-        // Todo: Implement this for other cameras
-        done = false;
-        printLabel(_("Flash bias"));
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.CanonSi.FlashBias");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Panasonic.FlashBias");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Olympus.FlashBias");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.OlympusCs.FlashExposureComp");
-        }
-        std::cout << std::endl;
+        // Flash bias
+        printTag(exifData, Exiv2::flashBias, _("Flash bias"));
 
         // Actual focal length and 35 mm equivalent
         // Todo: Calculate 35 mm equivalent a la jhead
@@ -371,139 +357,19 @@ namespace Action {
         std::cout << std::endl;
 
         // ISO speed
-        // from ISOSpeedRatings or the Makernote
-        printLabel(_("ISO speed"));
-        done = false;
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Photo.ISOSpeedRatings");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.CanonSi.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon1.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon2.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon3.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsNew.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsOld.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs5D.ISOSpeed");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs7D.ISOSpeed");
-        }
-        std::cout << std::endl;
+        printTag(exifData, Exiv2::isoSpeed, _("ISO speed"));
 
         // Exposure mode
-        // From ExposureProgram or Canon Makernote
-        printLabel(_("Exposure mode"));
-        done = false;
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Photo.ExposureProgram");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.CanonCs.ExposureProgram");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs7D.ExposureMode");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs5D.ExposureMode");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsNew.ExposureMode");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsOld.ExposureMode");
-        }
-        std::cout << std::endl;
+        printTag(exifData, Exiv2::exposureMode, _("Exposure mode"));
 
         // Metering mode
         printTag(exifData, "Exif.Photo.MeteringMode", _("Metering mode"));
 
         // Macro mode
-        // Todo: Implement this for other cameras
-        printLabel(_("Macro mode"));
-        done = false;
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.CanonCs.Macro");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Fujifilm.Macro");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Olympus.Macro");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.OlympusCs.MacroMode");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Panasonic.Macro");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsNew.MacroMode");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsOld.MacroMode");
-        }
-        std::cout << std::endl;
+        printTag(exifData, Exiv2::macroMode, _("Macro mode"));
 
         // Image quality setting (compression)
-        // Todo: Implement this for other cameras
-        printLabel(_("Image quality"));
-        done = false;
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.CanonCs.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Fujifilm.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Sigma.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon1.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon2.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon3.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Olympus.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.OlympusCs.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Panasonic.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Minolta.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsNew.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsOld.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs5D.Quality");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs7D.Quality");
-        }
-        std::cout << std::endl;
+        printTag(exifData, Exiv2::imageQuality, _("Image quality"));
 
         // Exif Resolution
         printLabel(_("Exif Resolution"));
@@ -529,52 +395,7 @@ namespace Action {
         std::cout << std::endl;
 
         // White balance
-        // Todo: Implement this for other cameras
-        printLabel(_("White balance"));
-        done = false;
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.CanonSi.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Fujifilm.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Sigma.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon1.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon2.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Nikon3.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Olympus.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.OlympusCs.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Panasonic.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs5D.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCs7D.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsNew.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.MinoltaCsOld.WhiteBalance");
-        }
-        if (!done) {
-            done = 0 != printTag(exifData, "Exif.Photo.WhiteBalance");
-        }
-        std::cout << std::endl;
+        printTag(exifData, Exiv2::whiteBalance, _("White balance"));
 
         // Thumbnail
         printLabel(_("Thumbnail"));
@@ -633,6 +454,23 @@ namespace Action {
         return rc;
     } // Print::printTag
 
+    int Print::printTag(const Exiv2::ExifData& exifData,
+                        EasyAccessFct easyAccessFct,
+                        const std::string& label) const
+    {
+        int rc = 0;
+        if (!label.empty()) {
+            printLabel(label);
+        }
+        Exiv2::ExifData::const_iterator md = easyAccessFct(exifData);
+        if (md != exifData.end()) {
+            md->write(std::cout, &exifData);
+            rc = 1;
+        }
+        if (!label.empty()) std::cout << std::endl;
+        return rc;
+    } // Print::printTag
+
     int Print::printList()
     {
         int rc = 0;
diff --git a/src/actions.hpp b/src/actions.hpp
index fe11331..5590cb7 100644
--- a/src/actions.hpp
+++ b/src/actions.hpp
@@ -184,6 +184,16 @@ namespace Action {
         int printTag(const Exiv2::ExifData& exifData,
                      const std::string& key,
                      const std::string& label ="") const;
+        //! Type for an Exiv2 Easy access function
+        typedef Exiv2::ExifData::const_iterator (*EasyAccessFct)(const Exiv2::ExifData& ed);
+        /*!
+          @brief Print one summary line with a label (if provided) and requested
+                 data. A line break is printed only if a label is provided.
+          @return 1 if a line was written, 0 if the information was not found.
+         */
+        int printTag(const Exiv2::ExifData& exifData,
+                     EasyAccessFct easyAccessFct,
+                     const std::string& label) const;
 
     private:
         virtual Print* clone_() const;
diff --git a/src/easyaccess.cpp b/src/easyaccess.cpp
new file mode 100644
index 0000000..beeb9d4
--- /dev/null
+++ b/src/easyaccess.cpp
@@ -0,0 +1,203 @@
+// ***************************************************************** -*- C++ -*-
+/*
+ * Copyright (C) 2004-2009 Andreas Huggel <ahuggel at gmx.net>
+ *
+ * This program is part of the Exiv2 distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
+ */
+/*
+  File:      easyaccess.cpp
+  Version:   $Rev$
+  Author(s): Carsten Pfeiffer <pfeiffer at kde.org>
+             Andreas Huggel (ahu) <ahuggel at gmx.net>
+  History:   28-Feb-09, gis: created
+ */
+// *****************************************************************************
+#include "rcsid.hpp"
+EXIV2_RCSID("@(#) $Id$")
+
+// *****************************************************************************
+// included header files
+#include "easyaccess.hpp"
+
+// *****************************************************************************
+namespace {
+
+    using namespace Exiv2;
+
+    /*!
+      @brief Search \em ed for a Metadatum specified by the \em keys.
+             The \em keys are searched in the order of their appearance, the
+             first available Metadatum is returned.
+
+      @param ed The %Exif metadata container to search
+      @param keys Array of keys to look for
+      @param count Number of elements in the array
+     */
+    ExifData::const_iterator findMetadatum(const ExifData& ed,
+                                           const char* keys[],
+                                           int count)
+    {
+        for (int i = 0; i < count; ++i) {
+            ExifData::const_iterator pos = ed.findKey(ExifKey(keys[i]));
+            if (pos != ed.end()) return pos;
+        }
+        return ed.end();
+    } // findMetadatum
+
+} // anonymous namespace
+
+// *****************************************************************************
+// class member definitions
+namespace Exiv2 {
+
+    ExifData::const_iterator orientation(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.Image.Orientation",
+            "Exif.Panasonic.Rotation",
+            "Exif.MinoltaCs5D.Rotation",
+            "Exif.MinoltaCs7D.Rotation"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator isoSpeed(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.Photo.ISOSpeedRatings",
+            "Exif.CanonSi.ISOSpeed",
+            "Exif.CanonCs.ISOSpeed",
+            "Exif.Nikon1.ISOSpeed",
+            "Exif.Nikon2.ISOSpeed",
+            "Exif.Nikon3.ISOSpeed",
+            "Exif.MinoltaCsNew.ISOSpeed",
+            "Exif.MinoltaCsOld.ISOSpeed",
+            "Exif.MinoltaCs5D.ISOSpeed",
+            "Exif.MinoltaCs7D.ISOSpeed",
+            "Exif.Pentax.ISO",
+            "Exif.Olympus.ISOSpeed"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator flashBias(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.CanonSi.FlashBias",
+            "Exif.Panasonic.FlashBias",
+            "Exif.Olympus.FlashBias",
+            "Exif.OlympusCs.FlashExposureComp"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator exposureMode(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.Photo.ExposureProgram",
+            "Exif.CanonCs.ExposureProgram",
+            "Exif.MinoltaCs7D.ExposureMode",
+            "Exif.MinoltaCs5D.ExposureMode",
+            "Exif.MinoltaCsNew.ExposureMode",
+            "Exif.MinoltaCsOld.ExposureMode",
+            "Exif.Sigma.ExposureMode"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator sceneMode(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.CanonCs.EasyMode",
+            "Exif.Fujifilm.PictureMode",
+            "Exif.MinoltaCsNew.SubjectProgram",
+            "Exif.OlympusCs.SceneMode",
+            "Exif.Panasonic.ShootingMode",
+            "Exif.Panasonic.SceneMode",
+            "Exif.Pentax.PictureMode"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator macroMode(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.CanonCs.Macro",
+            "Exif.Fujifilm.Macro",
+            "Exif.Olympus.Macro",
+            "Exif.OlympusCs.MacroMode",
+            "Exif.Panasonic.Macro",
+            "Exif.MinoltaCsNew.MacroMode",
+            "Exif.MinoltaCsOld.MacroMode"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator imageQuality(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.CanonCs.Quality",
+            "Exif.Fujifilm.Quality",
+            "Exif.Sigma.Quality",
+            "Exif.Nikon1.Quality",
+            "Exif.Nikon2.Quality",
+            "Exif.Nikon3.Quality",
+            "Exif.Olympus.Quality",
+            "Exif.OlympusCs.Quality",
+            "Exif.Panasonic.Quality",
+            "Exif.Minolta.Quality",
+            "Exif.MinoltaCsNew.Quality",
+            "Exif.MinoltaCsOld.Quality",
+            "Exif.MinoltaCs5D.Quality",
+            "Exif.MinoltaCs7D.Quality"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator whiteBalance(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.CanonSi.WhiteBalance",
+            "Exif.Fujifilm.WhiteBalance",
+            "Exif.Sigma.WhiteBalance",
+            "Exif.Nikon1.WhiteBalance",
+            "Exif.Nikon2.WhiteBalance",
+            "Exif.Nikon3.WhiteBalance",
+            "Exif.Olympus.WhiteBalance",
+            "Exif.OlympusCs.WhiteBalance",
+            "Exif.Panasonic.WhiteBalance",
+            "Exif.MinoltaCs5D.WhiteBalance",
+            "Exif.MinoltaCs7D.WhiteBalance",
+            "Exif.MinoltaCsNew.WhiteBalance",
+            "Exif.MinoltaCsOld.WhiteBalance",
+            "Exif.Photo.WhiteBalance"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+    ExifData::const_iterator lensName(const ExifData& ed)
+    {
+        static const char* keys[] = {
+            "Exif.CanonCs.LensType",
+            "Exif.Nikon3.LensData",
+            "Exif.Minolta.LensID",
+            "Exif.Pentax.LensType"
+        };
+        return findMetadatum(ed, keys, EXV_COUNTOF(keys));
+    }
+
+}                                       // namespace Exiv2
diff --git a/src/easyaccess.hpp b/src/easyaccess.hpp
new file mode 100644
index 0000000..22ced47
--- /dev/null
+++ b/src/easyaccess.hpp
@@ -0,0 +1,62 @@
+// ***************************************************************** -*- C++ -*-
+/*
+ * Copyright (C) 2004-2009 Andreas Huggel <ahuggel at gmx.net>
+ *
+ * This program is part of the Exiv2 distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
+ */
+/*!
+  @file    easyaccess.hpp
+  @brief   Provides easy (high-level) access to some Exif meta data.
+  @version $Rev$
+  @author  Carsten Pfeiffer <pfeiffer at kde.org>
+  @date    28-Feb-09, gis: created
+ */
+#ifndef EASYACCESS_HPP_
+#define EASYACCESS_HPP_
+
+// *****************************************************************************
+// included header files
+#include "exif.hpp"
+
+namespace Exiv2 {
+
+// *****************************************************************************
+// class declarations
+    class ExifData;
+
+    //! Return the orientation of the image
+    EXIV2API ExifData::const_iterator orientation(const ExifData& ed);
+    //! Return the ISO speed used to shoot the image
+    EXIV2API ExifData::const_iterator isoSpeed(const ExifData& ed);
+    //! Return the flash bias value
+    EXIV2API ExifData::const_iterator flashBias(const ExifData& ed);
+    //! Return the exposure mode setting
+    EXIV2API ExifData::const_iterator exposureMode(const ExifData& ed);
+    //! Return the scene mode setting
+    EXIV2API ExifData::const_iterator sceneMode(const ExifData& ed);
+    //! Return the macro mode setting
+    EXIV2API ExifData::const_iterator macroMode(const ExifData& ed);
+    //! Return the image quality setting
+    EXIV2API ExifData::const_iterator imageQuality(const ExifData& ed);
+    //! Return the white balance setting
+    EXIV2API ExifData::const_iterator whiteBalance(const ExifData& ed);
+    //! Return the name of the lens used
+    EXIV2API ExifData::const_iterator lensName(const ExifData& ed);
+
+} // namespace Exiv2
+
+#endif // EASYACCESS_HPP_

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list