@@ -104,6 +104,16 @@ namespace Exiv2 {
104104 N_ (" Right-most" )
105105 };
106106
107+ // ! Shutter Modes (credits to exiftool)
108+ extern const TagDetails nikonShutterModes[] = {
109+ { 0 , " Mechanical" },
110+ { 16 , " Electronic" },
111+ { 48 , " Electronic Front Curtain" },
112+ { 64 , " Electronic (Movie)" },
113+ { 80 , " Auto (Mechanical)" },
114+ { 81 , " Auto (Electronic Front Curtain)" }
115+ };
116+
107117 // ! FlashComp, tag 0x0012
108118 extern const TagDetails nikonFlashComp[] = {
109119 // From the PHP JPEG Metadata Toolkit
@@ -589,7 +599,7 @@ namespace Exiv2 {
589599 TagInfo (0x0024 , " WorldTime" , N_ (" World Time" ), N_ (" World time" ), nikon3Id, makerTags, undefined, -1 , printValue),
590600 TagInfo (0x0025 , " ISOInfo" , N_ (" ISO Info" ), N_ (" ISO info" ), nikon3Id, makerTags, undefined, -1 , printValue),
591601 TagInfo (0x002a , " VignetteControl" , N_ (" Vignette Control" ), N_ (" Vignette control" ), nikon3Id, makerTags, unsignedShort, -1 , EXV_PRINT_TAG (nikonOlnh)),
592- TagInfo (0x0034 , " ShutterMode" , N_ (" Shutter Mode" ), N_ (" Shutter mode" ), nikon3Id, makerTags, unsignedShort, -1 , print0x0034 ),
602+ TagInfo (0x0034 , " ShutterMode" , N_ (" Shutter Mode" ), N_ (" Shutter mode" ), nikon3Id, makerTags, unsignedShort, -1 , EXV_PRINT_TAG (nikonShutterModes) ),
593603 TagInfo (0x0037 , " MechanicalShutterCount" , N_ (" Mechanical Shutter Count" ), N_ (" Mechanical shutter count" ), nikon3Id, makerTags, unsignedLong, -1 , printValue),
594604 TagInfo (0x0080 , " ImageAdjustment" , N_ (" Image Adjustment" ), N_ (" Image adjustment setting" ), nikon3Id, makerTags, asciiString, -1 , printValue),
595605 TagInfo (0x0081 , " ToneComp" , N_ (" Tone Compensation" ), N_ (" Tone compensation" ), nikon3Id, makerTags, asciiString, -1 , printValue),
@@ -1531,30 +1541,6 @@ namespace Exiv2 {
15311541 return os;
15321542 }
15331543
1534- // shutter mode value conversions, taken from exiftool
1535- std::ostream& Nikon3MakerNote::print0x0034 (std::ostream& os,
1536- const Value& value,
1537- const ExifData*)
1538- {
1539- long focus = value.toLong ();
1540- switch (focus) {
1541- case 0 : os << " Mechanical" ;
1542- break ;
1543- case 16 : os << " Electronic" ;
1544- break ;
1545- case 48 : os << " Electronic Front Curtain" ;
1546- break ;
1547- case 64 : os << " Electronic (Movie)" ;
1548- break ;
1549- case 80 : os << " Auto (Mechanical)" ;
1550- break ;
1551- case 81 : os << " Auto (Electronic Front Curtain)" ;
1552- break ;
1553- default : os << " Unknown Shutter Mode" ;
1554- }
1555- return os;
1556- }
1557-
15581544 std::ostream& Nikon3MakerNote::print0x0083 (std::ostream& os,
15591545 const Value& value,
15601546 const ExifData*)
0 commit comments