diff --git a/src/nikonmn.cpp b/src/nikonmn.cpp index 5a4b03d9..39e66802 100644 --- a/src/nikonmn.cpp +++ b/src/nikonmn.cpp @@ -1752,7 +1752,7 @@ namespace Exiv2 { // // // Seven misidentified lenses due to double LensIDs: -// +// // 2F 48 30 44 24 24 29 02.1: Nikon AF Zoom-Nikkor 20-35mm f/2.8D IF // 2F 48 30 44 24 24 29 02.2: Tokina AT-X 235 AF PRO (AF 20-35mm f/2.8) // @@ -1956,11 +1956,11 @@ fmountlens[] = { {0x81,0x54,0x80,0x80,0x18,0x18,0x86,0x0E,0x03,0x00,0x00, "Nikon", "JAA336DA", "AF-S VR Nikkor 200mm f/2G IF-ED"}, {0x82,0x48,0x8E,0x8E,0x24,0x24,0x87,0x0E,0x13,0x00,0x00, "Nikon", "JAA337DA", "AF-S VR Nikkor 300mm f/2.8G IF-ED"}, {0x83,0x00,0xB0,0xB0,0x5A,0x5A,0x88,0x04,0x00,0x00,0x00, "Nikon", "", "FSA-L2, EDG 65, 800mm F13 G"}, -//84 -//85 +//84 +//85 //86 //87 -//88 +//88 {0x89,0x3C,0x53,0x80,0x30,0x3C,0x8B,0x06,0x01,0x00,0x00, "Nikon", "JAA793DA", "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED"}, {0x8A,0x54,0x6A,0x6A,0x24,0x24,0x8C,0x0E,0x53,0x00,0x00, "Nikon", "JAA630DA", "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED"}, {0x8B,0x40,0x2D,0x80,0x2C,0x3C,0x8D,0x0E,0x01,0x00,0x00, "Nikon", "JAA794DA", "AF-S DX VR Zoom-Nikkor 18-200mm f/3.5-5.6G IF-ED"}, @@ -2355,10 +2355,10 @@ fmountlens[] = { {0x06,0x3F,0x68,0x68,0x2C,0x2C,0x06,0x00,0x00,0x00,0x00, "Cosina", "", "AF 100mm F3.5 Macro"}, {0x07,0x36,0x3D,0x5F,0x2C,0x3C,0x03,0x00,0x00,0x00,0x00, "Cosina", "", "AF Zoom 28-80mm F3.5-5.6 MC Macro"}, {0x07,0x46,0x3D,0x6A,0x25,0x2F,0x03,0x00,0x00,0x00,0x00, "Cosina", "", "AF Zoom 28-105mm F2.8-3.8 MC"}, -//M "Cosina" "" "AF Zoom 28-210mm F3.5-5.6"; +//M "Cosina" "" "AF Zoom 28-210mm F3.5-5.6"; //M "Cosina" "" "AF Zoom 28-210mm F4.2-6.5 Aspherical IF"; -//M "Cosina" "" "AF Zoom 28-300mm F4.0-6.3"; -//M "Cosina" "" "AF Zoom 70-210mm F2.8-4.0"; +//M "Cosina" "" "AF Zoom 28-300mm F4.0-6.3"; +//M "Cosina" "" "AF Zoom 70-210mm F2.8-4.0"; {0x12,0x36,0x5C,0x81,0x35,0x3D,0x09,0x00,0x00,0x00,0x00, "Cosina", "", "AF Zoom 70-210mm F4.5-5.6 MC Macro"}, {0x12,0x39,0x5C,0x8E,0x34,0x3D,0x08,0x02,0x00,0x00,0x00, "Cosina", "", "AF Zoom 70-300mm F4.5-5.6 MC Macro"}, {0x12,0x3B,0x68,0x8D,0x3D,0x43,0x09,0x02,0x00,0x00,0x00, "Cosina", "", "AF Zoom 100-300mm F5.6-6.7 MC Macro"}, @@ -2472,7 +2472,7 @@ fmountlens[] = { return os << Internal::readExiv2Config(section,lensIDStream.str(),undefined); } } - + if ( raw[0] == fmountlens[i].lid // stps varies with focal length for some Sigma zoom lenses. &&(raw[1] == fmountlens[i].stps || strcmp(fmountlens[i].manuf, "Sigma") == 0) diff --git a/src/pentaxmn.cpp b/src/pentaxmn.cpp index 079c1bf7..76f6fa42 100644 --- a/src/pentaxmn.cpp +++ b/src/pentaxmn.cpp @@ -36,6 +36,7 @@ EXIV2_RCSID("@(#) $Id$") // included header files #include "types.hpp" #include "pentaxmn_int.hpp" +#include "makernote_int.hpp" #include "value.hpp" #include "exif.hpp" #include "tags.hpp" @@ -1156,20 +1157,20 @@ namespace Exiv2 { // #1144 begin static std::string getKeyString(const std::string& key,const ExifData* metadata) { - std::string result; - if ( metadata->findKey(ExifKey(key)) != metadata->end() ) { - result = metadata->findKey(ExifKey(key))->toString(); - } - return result; + std::string result; + if ( metadata->findKey(ExifKey(key)) != metadata->end() ) { + result = metadata->findKey(ExifKey(key))->toString(); + } + return result; } static long getKeyLong(const std::string& key,const ExifData* metadata) { - long result = -1; - if ( metadata->findKey(ExifKey(key)) != metadata->end() ) { - result = (long) metadata->findKey(ExifKey(key))->toFloat(0); - } - return result; + long result = -1; + if ( metadata->findKey(ExifKey(key)) != metadata->end() ) { + result = (long) metadata->findKey(ExifKey(key))->toFloat(0); + } + return result; } std::ostream& resolveLens0x32c(std::ostream& os, const Value& value, @@ -1237,7 +1238,7 @@ namespace Exiv2 { if ( lensInfo->toLong(4) == 0 && lensInfo->toLong(5) == 40 && lensInfo->toLong(6) == 148 ) index = 8; } else if ( value.count() == 4 ) { - // http://dev.exiv2.org/attachments/download/868/IMGP2221.JPG + // http://dev.exiv2.org/attachments/download/868/IMGP2221.JPG // 0x0207 PentaxDng LensInfo Undefined 128 0 131 128 0 0 255 1 184 0 0 0 0 0 // 0 1 2 3 4 5 6 if ( lensInfo->count() == 128 && lensInfo->toLong(1) == 131 && lensInfo->toLong(2) == 128 ) index = 8; @@ -1267,8 +1268,8 @@ namespace Exiv2 { ? metadata->findKey(ExifKey("Exif.PentaxDng.LensInfo")) : metadata->findKey(ExifKey("Exif.Pentax.LensInfo")) ; - if ( value.count() == 4 ) { - std::string model = getKeyString("Exif.Image.Model" ,metadata); + if ( value.count() == 4 ) { + std::string model = getKeyString("Exif.Image.Model" ,metadata); if ( model.find("PENTAX K-3")==0 && lensInfo->count() == 128 && lensInfo->toLong(1) == 168 && lensInfo->toLong(2) == 144 ) index = 7; } @@ -1294,13 +1295,13 @@ namespace Exiv2 { ? metadata->findKey(ExifKey("Exif.PentaxDng.LensInfo")) : metadata->findKey(ExifKey("Exif.Pentax.LensInfo")) ; - if ( value.count() == 4 ) { - std::string model = getKeyString("Exif.Image.Model" ,metadata); + if ( value.count() == 4 ) { + std::string model = getKeyString("Exif.Image.Model" ,metadata); if ( model.find("PENTAX K-3")==0 && lensInfo->count() == 128 && lensInfo->toLong(1) == 131 && lensInfo->toLong(2) == 128 ) index = 6; } - if ( value.count() == 2 ) { - std::string model = getKeyString("Exif.Image.Model" ,metadata); + if ( value.count() == 2 ) { + std::string model = getKeyString("Exif.Image.Model" ,metadata); if ( model.find("PENTAX K100D")==0 && lensInfo->count() == 44 ) index = 6; if ( model.find("PENTAX *ist DL")==0 && lensInfo->count() == 36 ) @@ -1351,7 +1352,15 @@ namespace Exiv2 { std::ostream& printLensType(std::ostream& os, const Value& value, const ExifData* metadata) { + // #1034 + const std::string undefined("undefined") ; + const std::string section ("pentax"); + if ( Internal::readExiv2Config(section,value.toString(),undefined) != undefined ) { + return os << Internal::readExiv2Config(section,value.toString(),undefined); + } + unsigned long index = value.toLong(0)*256+value.toLong(1); + // std::cout << std::endl << "printLensType value =" << value.toLong() << " index = " << index << std::endl; const LensIdFct* lif = find(lensIdFct, index); if (!lif) {