diff --git a/src/minoltamn.cpp b/src/minoltamn.cpp index 7771d654..7efdb5c7 100644 --- a/src/minoltamn.cpp +++ b/src/minoltamn.cpp @@ -137,7 +137,7 @@ namespace Exiv2 { minoltaIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(minoltaImageStabilization)), TagInfo(0x0109, "RawAndJpgRecording", N_("RAW+JPG Recording"), N_("RAW and JPG files recording"), - minoltaIfdId, makerTags, unsignedLong, printMinoltaSonyBoolFunction), + minoltaIfdId, makerTags, unsignedLong, printMinoltaSonyBoolValue), TagInfo(0x010a, "ZoneMatching", N_("Zone Matching"), N_("Zone matching"), minoltaIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(minoltaZoneMatching)), @@ -149,7 +149,7 @@ namespace Exiv2 { minoltaIfdId, makerTags, unsignedLong, printMinoltaSonyLensID), TagInfo(0x0113, "ImageStabilization", N_("Image Stabilization"), N_("Image Stabilization"), - minoltaIfdId, makerTags, unsignedLong, printMinoltaSonyBoolFunction), + minoltaIfdId, makerTags, unsignedLong, printMinoltaSonyBoolValue), TagInfo(0x0114, "CameraSettings5D", N_("Camera Settings (5D)"), N_("Camera Settings (for Dynax 5D model)"), minoltaIfdId, makerTags, undefined, printValue), @@ -500,7 +500,7 @@ namespace Exiv2 { minoltaCsNewIfdId, makerTags, unsignedLong, printMinoltaFNumberStd), TagInfo(0x000B, "MacroMode", N_("Macro Mode"), N_("Macro mode"), - minoltaCsNewIfdId, makerTags, unsignedLong, printMinoltaSonyBoolFunction), + minoltaCsNewIfdId, makerTags, unsignedLong, printMinoltaSonyBoolValue), TagInfo(0x000C, "DigitalZoom", N_("Digital Zoom"), N_("Digital zoom"), minoltaCsNewIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(minoltaDigitalZoomStd)), @@ -536,7 +536,7 @@ namespace Exiv2 { minoltaCsNewIfdId, makerTags, unsignedLong, printValue), TagInfo(0x001A, "FileNumberMemory", N_("File Number Memory"), N_("File number memory"), - minoltaCsNewIfdId, makerTags, unsignedLong, printMinoltaSonyBoolFunction), + minoltaCsNewIfdId, makerTags, unsignedLong, printMinoltaSonyBoolValue), TagInfo(0x001B, "ImageNumber", N_("Image Number"), N_("Image number"), minoltaCsNewIfdId, makerTags, unsignedLong, printValue), @@ -793,17 +793,17 @@ namespace Exiv2 { minoltaCs7DIfdId, makerTags, unsignedShort, printValue), TagInfo(0x0060, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), - minoltaCs7DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + minoltaCs7DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), // 0x0062 is a dupplicate than 0x005E. TagInfo(0x0062, "ImageNumber", N_("Image Number"), N_("Image number"), minoltaCs7DIfdId, makerTags, unsignedShort, printValue), TagInfo(0x0071, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), - minoltaCs7DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + minoltaCs7DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), TagInfo(0x0075, "ZoneMatchingOn", N_("Zone Matching On"), N_("Zone matching on"), - minoltaCs7DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + minoltaCs7DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), // End of list marker TagInfo(0xffff, "(UnknownMinoltaCs7DTag)", "(UnknownMinoltaCs7DTag)", @@ -1025,10 +1025,10 @@ namespace Exiv2 { minoltaCs5DIfdId, makerTags, unsignedShort, printValue), TagInfo(0x00B0, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), - minoltaCs5DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + minoltaCs5DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), TagInfo(0x00BD, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), - minoltaCs5DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + minoltaCs5DIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), // From Xavier Raynaud: some notes on missing tags. // 0x0051 seems to be identical to FNumber (0x0036). An approx. relation between Tag value diff --git a/src/minoltasonyvalues.cpp b/src/minoltasonyvalues.cpp index 442e9744..644141fa 100644 --- a/src/minoltasonyvalues.cpp +++ b/src/minoltasonyvalues.cpp @@ -359,7 +359,7 @@ namespace Exiv2 { { 1, N_("On") } }; - std::ostream& printMinoltaSonyBoolFunction(std::ostream& os, const Value& value, const ExifData* metadata) + std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, const ExifData* metadata) { return EXV_PRINT_TAG(minoltaSonyBoolFunction)(os, value, metadata); } diff --git a/src/minoltasonyvalues.hpp b/src/minoltasonyvalues.hpp index c9d8087c..735a8b2c 100644 --- a/src/minoltasonyvalues.hpp +++ b/src/minoltasonyvalues.hpp @@ -47,7 +47,7 @@ namespace Exiv2 { EXIV2API std::ostream& printMinoltaSonyColorMode(std::ostream&, const Value&, const ExifData*); //! PrintMinolta/Sony bool function values to readable labels. - EXIV2API std::ostream& printMinoltaSonyBoolFunction(std::ostream&, const Value&, const ExifData*); + EXIV2API std::ostream& printMinoltaSonyBoolValue(std::ostream&, const Value&, const ExifData*); // TODO: Added shared methods here. diff --git a/src/sonymn.cpp b/src/sonymn.cpp index ec2ee4a1..b12eaf1a 100644 --- a/src/sonymn.cpp +++ b/src/sonymn.cpp @@ -233,7 +233,7 @@ namespace Exiv2 { sonyIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(sonyDynamicRangeOptimizer)), TagInfo(0xb026, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), - sonyIfdId, makerTags, unsignedLong, printMinoltaSonyBoolFunction), + sonyIfdId, makerTags, unsignedLong, printMinoltaSonyBoolValue), TagInfo(0xb027, "LensID", N_("Lens ID"), N_("Lens identifier"), sonyIfdId, makerTags, unsignedLong, printMinoltaSonyLensID), @@ -245,21 +245,19 @@ namespace Exiv2 { TagInfo(0xb029, "ColorMode", N_("Color Mode"), N_("Color Mode"), - sonyIfdId, makerTags, unsignedLong, printMinoltaSonyBoolFunction), + sonyIfdId, makerTags, unsignedLong, printMinoltaSonyBoolValue), - // TODO TagInfo(0xb02b, "FullImageSize", N_("Full Image Size"), N_("Full Image Size"), - sonyIfdId, makerTags, unsignedLong, printValue), + sonyIfdId, makerTags, unsignedLong, printImageSize), - // TODO TagInfo(0xb02c, "PreviewImageSize", N_("Preview Image Size"), N_("Preview Image Size"), - sonyIfdId, makerTags, unsignedLong, printValue), + sonyIfdId, makerTags, unsignedLong, printImageSize), TagInfo(0xb040, "Macro", N_("Macro"), N_("Macro"), - sonyIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + sonyIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), // TODO TagInfo(0xb041, "ExposureMode", N_("Exposure Mode"), @@ -278,7 +276,7 @@ namespace Exiv2 { TagInfo(0xb04e, "LongExposureNoiseReduction", N_("Long Exposure Noise Reduction"), N_("Long Exposure Noise Reduction"), - sonyIfdId, makerTags, unsignedShort, printMinoltaSonyBoolFunction), + sonyIfdId, makerTags, unsignedShort, printMinoltaSonyBoolValue), // TODO TagInfo(0xb04f, "DynamicRangeOptimizer", N_("Dynamic Range Optimizer"), @@ -334,9 +332,7 @@ namespace Exiv2 { return tagInfo_; } - std::ostream& SonyMakerNote::print0xb000(std::ostream& os, - const Value& value, - const ExifData*) + std::ostream& SonyMakerNote::print0xb000(std::ostream& os, const Value& value, const ExifData*) { if (value.count() != 4) { @@ -354,4 +350,15 @@ namespace Exiv2 { } return os; } + + std::ostream& SonyMakerNote::printImageSize(std::ostream& os, const Value& value, const ExifData*) + { + if (value.count() == 2) + os << value.toString(0) << " x " << value.toString(1); + else + os << "(" << value << ")"; + + return os; + } + } // namespace Exiv2 diff --git a/src/sonymn.hpp b/src/sonymn.hpp index 2b92f343..8c3e9c8f 100644 --- a/src/sonymn.hpp +++ b/src/sonymn.hpp @@ -58,8 +58,10 @@ namespace Exiv2 { //! @name Print functions for Sony %MakerNote tags //@{ - //! Print Sony Model - static std::ostream& print0xb000(std::ostream& os, const Value& value, const ExifData*); + //! Print Sony Camera Model + static std::ostream& print0xb000(std::ostream&, const Value&, const ExifData*); + //! Print Full and Preview Image size + static std::ostream& printImageSize(std::ostream&, const Value&, const ExifData*); private: //! Tag information