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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:35:55 UTC 2017


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

The following commit has been merged in the master branch:
commit 557a515ba6dbc5392cf69c5909cf221ad0c117a0
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Fri Jan 16 02:38:09 2004 +0000

    Before renaming...
---
 src/exif.cc     |  9 +++------
 src/exif.h      |  7 ++++++-
 src/exiftest.cc |  6 +++++-
 src/tags.cc     | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 src/tags.h      | 45 ++++++++++++++++++++++++++++++++-----------
 5 files changed, 104 insertions(+), 23 deletions(-)

diff --git a/src/exif.cc b/src/exif.cc
index 425b8f5..e8c3149 100644
--- a/src/exif.cc
+++ b/src/exif.cc
@@ -12,7 +12,7 @@
 
   RCS information
    $Name:  $
-   $Revision: 1.2 $
+   $Revision: 1.3 $
  */
 // *****************************************************************************
 // included header files
@@ -443,10 +443,8 @@ namespace Exif {
             if (rc) return rc;
         }
 
-        // Find and read Interoperability IFD in IFD1
-        Ifd ifd1IopIfd(ifd1IopIfd);
-        rc = ifd1.readSubIfd(ifd1IopIfd, buf, byteOrder, 0xa005);
-        if (rc) return rc;
+        // Todo: Should we also look for Exif IFD and GPSInfo IFD in IFD1
+        //       and, if found, Interop. IFD in the Exif IFD???
 
         // Finally, copy all metadata from the IFDs to the internal metadata
         metadata_.clear();
@@ -455,7 +453,6 @@ namespace Exif {
         add(exifIopIfd.entries()); 
         add(gpsIfd.entries());
         add(ifd1.entries());
-        add(ifd1IopIfd.entries());
 
         return 0;
     } // ExifData::read
diff --git a/src/exif.h b/src/exif.h
index a631bb6..9b1e0c3 100644
--- a/src/exif.h
+++ b/src/exif.h
@@ -8,7 +8,7 @@
 /*!
   @file    exif.h
   @brief   Encoding and decoding of %Exif data
-  @version $Name:  $ $Revision: 1.2 $
+  @version $Name:  $ $Revision: 1.3 $
   @author  Andreas Huggel (ahu)
   @date    09-Jan-03, ahu: created
  */
@@ -159,6 +159,11 @@ namespace Exif {
         const char* typeName() const { return ExifTags::typeName(type_); }
         //! Returns the size in bytes of one element of this type
         long typeSize() const { return ExifTags::typeSize(type_); }
+        //! Returns the name of the IFD
+        const char* ifdName() const { return ExifTags::ifdName(ifdId_); }
+        //! Returns the name of the section
+        const char* sectionName() const 
+            { return ExifTags::sectionName(tag_, ifdId_); }
 
     public:
         uint16 tag_;                   //!< Tag value
diff --git a/src/exiftest.cc b/src/exiftest.cc
index 9ddc04b..9c4162b 100644
--- a/src/exiftest.cc
+++ b/src/exiftest.cc
@@ -19,7 +19,11 @@ int main(int argc, char* const argv[])
         Exif::ExifData::const_iterator i = beg;
         for (; i != end; ++i) {
 
-            std::cout << "0x" 
+            std::cout << std::setw(9) << std::setfill(' ') << std::left
+                      << i->ifdName() << " "
+                      << std::setw(9) << std::setfill(' ') << std::left
+                      << i->sectionName() << " "
+                      << "0x" 
                       << std::hex << std::setw(4) << std::setfill('0') << std::right
                       << i->tag_ << " " 
                       << std::setw(27) << std::setfill(' ') << std::left
diff --git a/src/tags.cc b/src/tags.cc
index 843793b..1c3fe9b 100644
--- a/src/tags.cc
+++ b/src/tags.cc
@@ -12,7 +12,7 @@
 
   RCS information
    $Name:  $
-   $Revision: 1.1 $
+   $Revision: 1.2 $
  */
 // *****************************************************************************
 // included header files
@@ -30,6 +30,43 @@ namespace {
 // class member definitions
 namespace Exif {
 
+    IfdInfo::IfdInfo(IfdId ifdId, const char* name)
+        : ifdId_(ifdId), name_(name)
+    {
+    }
+
+    const IfdInfo ExifTags::ifdInfo_[] = {
+        IfdInfo(IfdIdNotSet, "(Unknown IFD)"),
+
+        IfdInfo(ifd0, "IFD0"),
+        IfdInfo(exifIfd, "Exif"),
+        IfdInfo(gpsIfd, "GPSInfo"),
+        IfdInfo(exifMakerIfd, "MakerNote"),
+        IfdInfo(exifIopIfd, "Exif Iop."),
+        IfdInfo(ifd1, "IFD1"),
+
+        IfdInfo(ifd1ExifIfd, "Exif (at IFD1)"),
+        IfdInfo(ifd1GpsIfd, "GPSInfo (at IFD1)"),
+        IfdInfo(ifd1MakerIfd, "MakerNote (at IFD1)"),
+        IfdInfo(ifd1ExifIopIfd, "Exif Iop. (at IFD1)")
+    };
+
+    SectionInfo::SectionInfo(SectionId sectionId, const char* name)
+        : sectionId_(sectionId), name_(name)
+    {
+    }
+
+    const SectionInfo ExifTags::sectionInfo_[] = {
+        SectionInfo(SectionIdNotSet, "(Unknown Section)"),
+
+        SectionInfo(ifd0Tiff, "IFD0"),
+        SectionInfo(exifIfdSection, "Exif"),
+        SectionInfo(gpsIfdSection, "GPSInfo"),
+        SectionInfo(exifIopIfdSection, "Exif Iop."),
+        SectionInfo(ifd1Section, "IFD1")
+
+    };
+
     TagFormat::TagFormat(uint16 type, const char* name, long size)
         : type_(type), name_(name), size_(size)
     {
@@ -57,10 +94,10 @@ namespace Exif {
         const char* name, 
         const char* desc, 
         IfdId ifdId, 
-        TagSection section
+        SectionId sectionId
     )
         : tag_(tag), name_(name), desc_(desc), 
-          ifdId_(ifdId), section_(section)
+          ifdId_(ifdId), sectionId_(sectionId)
     {
     }
 
@@ -234,7 +271,7 @@ namespace Exif {
         TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfd, exifIfdSection),
 
         // End of list marker
-        TagInfo(0xffff, "(Unknown)", "Unknown tag", IfdIdNotSet, TagSectionNotSet)
+        TagInfo(0xffff, "(Unknown)", "Unknown tag", IfdIdNotSet, SectionIdNotSet)
     };
 
     int ExifTags::tagInfoIdx(uint16 tag, IfdId ifdId)
@@ -253,6 +290,11 @@ namespace Exif {
         return tagInfo_[tagInfoIdx(tag, ifdId)].name_;
     }
 
+    const char* ExifTags::sectionName(uint16 tag, IfdId ifdId)
+    {
+        return sectionInfo_[tagInfo_[tagInfoIdx(tag, ifdId)].sectionId_].name_;
+    }
+
     const char* ExifTags::typeName(uint16 type)
     {
         return tagFormat_[type].name_;
@@ -263,6 +305,16 @@ namespace Exif {
         return tagFormat_[type].size_;
     }
 
+    const char* ExifTags::ifdName(IfdId ifdId)
+    {
+        return ifdInfo_[ifdId].name_;
+    }
+
+    const char* ExifTags::sectionName(SectionId sectionId)
+    {
+        return sectionInfo_[sectionId].name_;
+    }
+
     // *************************************************************************
     // free functions
 
diff --git a/src/tags.h b/src/tags.h
index 0d68750..4233bb0 100644
--- a/src/tags.h
+++ b/src/tags.h
@@ -8,7 +8,7 @@
 /*!
   @file    tags.h
   @brief   %Exif tag and type information
-  @version $Name:  $ $Revision: 1.1 $
+  @version $Name:  $ $Revision: 1.2 $
   @author  Andreas Huggel (ahu)
   @date    15-Jan-03, ahu: created
  */
@@ -38,17 +38,33 @@ namespace Exif {
 
     //! Type to specify the IFD to which a metadata belongs
     enum IfdId { IfdIdNotSet, 
-                 ifd0, ifd1, exifIfd, gpsIfd, 
-                 makerNoteIfd, exifIopIfd, ifd1IopIfd };
+                 ifd0, exifIfd, gpsIfd, exifMakerIfd, exifIopIfd, 
+                 ifd1, ifd1ExifIfd, ifd1GpsIfd, ifd1MakerIfd, ifd1ExifIopIfd };
 
     //! Section identifiers to logically group tags 
-    enum TagSection { TagSectionNotSet, 
-                      ifd0Tiff, ifd1Section, exifIfdSection, gpsIfdSection, 
-                      exifIopIfdSection };
+    enum SectionId { SectionIdNotSet, 
+                     ifd0Tiff, exifIfdSection, gpsIfdSection, 
+                     exifIopIfdSection, ifd1Section };
 
 // *****************************************************************************
 // class definitions
 
+    //! Contains information pertaining to one IFD
+    struct IfdInfo {
+        //! Constructor
+        IfdInfo(IfdId ifdId, const char* name);
+        IfdId ifdId_;                           //!< IFD id
+        const char* name_;                      //!< IFD name
+    };
+
+    //! Contains information pertaining to one section
+    struct SectionInfo {
+        //! Constructor
+        SectionInfo(SectionId sectionId, const char* name);
+        SectionId sectionId_;                   //!< Section id
+        const char* name_;                      //!< Section name
+    };
+
     //! Description of the format of a metadatum
     struct TagFormat {
         //! Constructor
@@ -66,13 +82,13 @@ namespace Exif {
             const char* name,
             const char* desc, 
             IfdId ifdId,
-            TagSection section
+            SectionId sectionId
         );
         uint16 tag_;                            //!< Tag
         const char* name_;                      //!< One word tag label
         const char* desc_;                      //!< Short tag description
         IfdId ifdId_;                           //!< Link to the IFD
-        TagSection section_;                    //!< Section id
+        SectionId sectionId_;                   //!< Section id
     }; // struct TagInfo
 
     //! Container for Exif tag information. Implemented as a static class.
@@ -91,13 +107,20 @@ namespace Exif {
         static const char* typeName(uint16 type);
         //! Returns the size in bytes of one element of this type
         static long typeSize(uint16 type);
+        //! Returns the name of the IFD
+        static const char* ifdName(IfdId ifdId);
+        //! Returns the name of the section
+        static const char* sectionName(SectionId sectionId);
+        //! Returns the name of the section
+        static const char* sectionName(uint16 tag, IfdId ifdId);
 
     private:
         static int tagInfoIdx(uint16 tag, IfdId ifdId);
 
-        static const TagFormat tagFormat_[];
-        static const TagInfo   tagInfo_[];
-
+        static const IfdInfo     ifdInfo_[];
+        static const SectionInfo sectionInfo_[];
+        static const TagFormat   tagFormat_[];
+        static const TagInfo     tagInfo_[];
     };
 
 // *****************************************************************************

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list