From a1912c2feb7dd24319de93b0d1bba4c76950f70c Mon Sep 17 00:00:00 2001 From: Andreas Huggel Date: Mon, 20 Oct 2008 15:12:21 +0000 Subject: [PATCH] Added Olympus 2 equipment makernote sub-directory. --- src/makernote_int.hpp | 1 + src/olympusmn.cpp | 14 ++++++++++++++ src/olympusmn.hpp | 3 +++ src/tags.cpp | 1 + src/tiffcomposite.cpp | 3 ++- src/tiffimage.cpp | 4 ++++ src/types.hpp | 2 +- 7 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/makernote_int.hpp b/src/makernote_int.hpp index 37586049..1f8c02d3 100644 --- a/src/makernote_int.hpp +++ b/src/makernote_int.hpp @@ -71,6 +71,7 @@ namespace Exiv2 { const uint16_t olymp1mn = 281; //!< Olympus makernote const uint16_t olymp2mn = 282; //!< Olympus II makernote const uint16_t olympcs = 283; //!< Olympus camera settings + const uint16_t olympeq = 284; //!< Olympus equipment tags } // ***************************************************************************** diff --git a/src/olympusmn.cpp b/src/olympusmn.cpp index 72ae90a4..c45d0b51 100644 --- a/src/olympusmn.cpp +++ b/src/olympusmn.cpp @@ -653,6 +653,20 @@ namespace Exiv2 { return tagInfoCs_; } + const TagInfo OlympusMakerNote::tagInfoEq_[] = { + TagInfo(0x0000, "EquipmentVersion", N_("Equipment Version"), N_("Equipment version"), olympusEqIfdId, makerTags, undefined, printExifVersion), + + // Todo: Add Olympus equipment tags + + // End of list marker + TagInfo(0xffff, "(UnknownOlympusEqTag)", "(UnknownOlympusEqTag)", N_("Unknown OlympusEq tag"), olympusEqIfdId, makerTags, invalidTypeId, printValue) + }; + + const TagInfo* OlympusMakerNote::tagListEq() + { + return tagInfoEq_; + } + // Gradation std::ostream& OlympusMakerNote::print0x050f(std::ostream& os, const Value& value, const ExifData*) { diff --git a/src/olympusmn.hpp b/src/olympusmn.hpp index 7bd8e7cd..f72c2f69 100644 --- a/src/olympusmn.hpp +++ b/src/olympusmn.hpp @@ -61,6 +61,8 @@ namespace Exiv2 { static const TagInfo* tagList(); //! Return read-only list of built-in Olympus Camera Settings tags static const TagInfo* tagListCs(); + //! Return read-only list of built-in Olympus Equipment tags + static const TagInfo* tagListEq(); //! @name Print functions for Olympus %MakerNote tags //@{ @@ -80,6 +82,7 @@ namespace Exiv2 { //! Tag information static const TagInfo tagInfo_[]; static const TagInfo tagInfoCs_[]; + static const TagInfo tagInfoEq_[]; }; // class OlympusMakerNote diff --git a/src/tags.cpp b/src/tags.cpp index 6c379321..027788b4 100644 --- a/src/tags.cpp +++ b/src/tags.cpp @@ -116,6 +116,7 @@ namespace Exiv2 { { olympusIfdId, "Makernote", "Olympus", OlympusMakerNote::tagList }, { olympus2IfdId, "Makernote", "Olympus2", OlympusMakerNote::tagList }, { olympusCsIfdId, "Makernote", "OlympusCs", OlympusMakerNote::tagListCs }, + { olympusEqIfdId, "Makernote", "OlympusEq", OlympusMakerNote::tagListEq }, { panasonicIfdId, "Makernote", "Panasonic", PanasonicMakerNote::tagList }, { pentaxIfdId, "Makernote", "Pentax", PentaxMakerNote::tagList }, { sigmaIfdId, "Makernote", "Sigma", SigmaMakerNote::tagList }, diff --git a/src/tiffcomposite.cpp b/src/tiffcomposite.cpp index dcd6eec2..936287b3 100644 --- a/src/tiffcomposite.cpp +++ b/src/tiffcomposite.cpp @@ -105,7 +105,8 @@ namespace Exiv2 { { 280, "NikonPreview" }, { 281, "Olympus" }, { 282, "Olympus2" }, - { 283, "OlympusCs" } + { 283, "OlympusCs" }, + { 284, "OlympusEq" } }; bool TiffGroupInfo::operator==(const uint16_t& group) const diff --git a/src/tiffimage.cpp b/src/tiffimage.cpp index 4ec47c3f..0e05836d 100644 --- a/src/tiffimage.cpp +++ b/src/tiffimage.cpp @@ -374,10 +374,14 @@ namespace Exiv2 { // Olympus2 makernote { 0x0001, Group::olymp2mn, Group::minocso, 0x927c, Group::exif, newTiffArrayEntry }, { 0x0003, Group::olymp2mn, Group::minocsn, 0x927c, Group::exif, newTiffArrayEntry }, + { 0x2010, Group::olymp2mn, Group::olympeq, 0x927c, Group::exif, newTiffSubIfd }, { 0x2020, Group::olymp2mn, Group::olympcs, 0x927c, Group::exif, newTiffSubIfd }, { Tag::next, Group::olymp2mn, Group::ignr, 0x927c, Group::exif, newTiffDirectory }, { Tag::all, Group::olymp2mn, Group::olymp2mn, 0x927c, Group::exif, newTiffEntry }, + // Olympus2 Equipment subdir + { Tag::all, Group::olympeq, Group::olympeq, 0x2010, Group::olymp2mn, newTiffEntry }, + // Olympus2 camera settings subdir { 0x0101, Group::olympcs, Group::olympcs, 0x2020, Group::olymp2mn, newTiffImageData<0x0102, Group::olympcs> }, { 0x0102, Group::olympcs, Group::olympcs, 0x2020, Group::olymp2mn, newTiffImageSize<0x0101, Group::olympcs> }, diff --git a/src/types.hpp b/src/types.hpp index bf5c6b8e..b5e60566 100644 --- a/src/types.hpp +++ b/src/types.hpp @@ -144,7 +144,7 @@ namespace Exiv2 { minoltaIfdId, minoltaCs5DIfdId, minoltaCs7DIfdId, minoltaCsOldIfdId, minoltaCsNewIfdId, nikon1IfdId, nikon2IfdId, nikon3IfdId, nikonPvIfdId, - olympusIfdId, olympus2IfdId, olympusCsIfdId, + olympusIfdId, olympus2IfdId, olympusCsIfdId, olympusEqIfdId, panasonicIfdId, pentaxIfdId, sigmaIfdId, sonyIfdId, lastIfdId };