From cf36feaa61a00bdffc3234d9d9a68d8ba91f5719 Mon Sep 17 00:00:00 2001 From: Alex Esseling Date: Wed, 19 May 2021 22:36:16 +0200 Subject: [PATCH] Adding Canon AF Config Tag --- src/canonmn_int.cpp | 1 + src/tags_int.cpp | 5 +++-- src/tiffimage_int.cpp | 17 +++++++++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/canonmn_int.cpp b/src/canonmn_int.cpp index a307b5c1..40fb7e72 100644 --- a/src/canonmn_int.cpp +++ b/src/canonmn_int.cpp @@ -1299,6 +1299,7 @@ namespace Exiv2 { {0x0011, "VFDisplayIllumination", N_("VF Display Illumination"), N_("VF Display Illumination"), canonAfCId, makerTags, signedLong, -1, EXV_PRINT_TAG(canonAVFDisplayIllumination)}, {0x0012, "AFStatusViewfinder", N_("AF Status Viewfinder"), N_("AF Status Viewfinder"), canonAfCId, makerTags, signedLong, -1, EXV_PRINT_TAG(canonAFStatusViewfinder)}, {0x0013, "InitialAFPointInServo", N_("Initial AF Point In Servo"), N_("Initial AF Point In Servo"), canonAfCId, makerTags, signedLong, -1, EXV_PRINT_TAG(canonInitialAFPointInServo)}, + (0xffff, "(UnknownCanonAFTag)", "(UnknownCanonAFTag)", N_("UnknownCanonAFTag"), canonAfCId, makerTags, signedLong, 1, printValue) // important to add end of tag }; const TagInfo* CanonMakerNote::tagListAfC() diff --git a/src/tags_int.cpp b/src/tags_int.cpp index a040142d..9069e3c6 100644 --- a/src/tags_int.cpp +++ b/src/tags_int.cpp @@ -95,9 +95,10 @@ namespace Exiv2 { { canonAfMiAdjId, "Makernote", "CanonAfMiAdj", CanonMakerNote::tagListAfMiAdj }, { canonLeId, "Makernote", "CanonLe", CanonMakerNote::tagListLe }, { canonAmId, "Makernote", "CanonAm", CanonMakerNote::tagListAm }, - { canonFilId, "Makernote", "CanonFil", CanonMakerNote::tagListFil }, - { canonHdrId, "Makernote", "CanonHdr", CanonMakerNote::tagListHdr }, + { canonFilId, "Makernote", "CanonFil", CanonMakerNote::tagListFil }, { canonMeId, "Makernote", "CanonMe", CanonMakerNote::tagListMe }, + { canonHdrId, "Makernote", "CanonHdr", CanonMakerNote::tagListHdr }, + { canonAfCId, "Makernote", "CanonAfC", CanonMakerNote::tagListAfC }, { casioId, "Makernote", "Casio", CasioMakerNote::tagList }, { casio2Id, "Makernote", "Casio2", Casio2MakerNote::tagList }, { fujiId, "Makernote", "Fujifilm", FujiMakerNote::tagList }, diff --git a/src/tiffimage_int.cpp b/src/tiffimage_int.cpp index 2e249c74..23923daf 100644 --- a/src/tiffimage_int.cpp +++ b/src/tiffimage_int.cpp @@ -244,6 +244,18 @@ namespace Exiv2 { { 0, ttSignedLong, 1 } }; + //! Canon AF Config Info binary array - configuration + extern const ArrayCfg canonAfCCfg = { + canonAfCId, // Group for the elements + invalidByteOrder, // Use byte order from parent + ttSignedLong, // Type for array entry and size element + notEncrypted, // Not encrypted + true, // Has a size element + false, // No fillers + false, // Don't concatenate gaps + { 0, ttSignedLong, 1 } + }; + //! Nikon Vibration Reduction binary array - configuration constexpr ArrayCfg nikonVrCfg = { nikonVrId, // Group for the elements @@ -1286,6 +1298,7 @@ namespace Exiv2 { { Tag::root, canonMeId, canonId, 0x4021 }, { Tag::root, canonFilId, canonId, 0x4024 }, { Tag::root, canonHdrId, canonId, 0x4025 }, + { Tag::root, canonAfCId, canonId, 0x4028 }, { Tag::root, nikon1Id, exifId, 0x927c }, { Tag::root, nikon2Id, exifId, 0x927c }, { Tag::root, nikon3Id, exifId, 0x927c }, @@ -1652,7 +1665,7 @@ namespace Exiv2 { { 0x4021, canonId, EXV_SIMPLE_BINARY_ARRAY(canonMeCfg) }, { 0x4024, canonId, EXV_SIMPLE_BINARY_ARRAY(canonFilCfg) }, { 0x4025, canonId, EXV_SIMPLE_BINARY_ARRAY(canonHdrCfg) }, - //{ 0x4028, canonId, EXV_SIMPLE_BINARY_ARRAY(canonAfCCfg) }, + { 0x4028, canonId, EXV_SIMPLE_BINARY_ARRAY(canonAfCCfg) }, { Tag::next, canonId, ignoreTiffComponent }, { Tag::all, canonId, newTiffEntry }, @@ -1674,7 +1687,7 @@ namespace Exiv2 { { Tag::all, canonMeId, newTiffBinaryElement }, { Tag::all, canonFilId, newTiffBinaryElement }, { Tag::all, canonHdrId, newTiffBinaryElement }, - // { Tag::all, canonAfCId, newTiffBinaryElement }, + { Tag::all, canonAfCId, newTiffBinaryElement }, // Nikon1 makernote { Tag::next, nikon1Id, ignoreTiffComponent },