diff --git a/src/properties.cpp b/src/properties.cpp index b59c318f..c70f1e09 100644 --- a/src/properties.cpp +++ b/src/properties.cpp @@ -446,77 +446,6 @@ namespace Exiv2 { { 0, 0, 0, invalidTypeId, xmpInternal, 0 } }; - //! exif:LightSource - extern const TagDetails xmpExifLightSource[] = { - { 0, N_("unknown") }, - { 1, N_("Daylight") }, - { 2, N_("Fluorescent") }, - { 3, N_("Tungsten") }, - { 4, N_("Flash") }, - { 9, N_("Fine weather") }, - { 10, N_("Cloudy weather") }, - { 11, N_("Shade") }, - { 12, N_("Daylight fluorescent (D 5700 - 7100K)") }, - { 13, N_("Day white fluorescent (N 4600 - 5400K)") }, - { 14, N_("Cool white fluorescent (W 3900 - 4500K)") }, - { 15, N_("White fluorescent (WW 3200 - 3700K)") }, - { 17, N_("Standard light A") }, - { 18, N_("Standard light B") }, - { 19, N_("Standard light C") }, - { 20, N_("D55") }, - { 21, N_("D65") }, - { 22, N_("D75") }, - { 23, N_("D50") }, - { 24, N_("ISO studio tungsten") }, - { 255, N_("other") } - }; - - //! exif:FocalPlaneResolutionUnit - extern const TagDetails xmpExifFocalPlaneResolutionUnit[] = { - { 2, N_("inches") }, - { 3, N_("centimeters") } - }; - - //! exif:SensingMethod - extern const TagDetails xmpExifSensingMethod[] = { - { 1, N_("Not defined") }, - { 2, N_("One-chip color area") }, - { 3, N_("Two-chip color area") }, - { 4, N_("Three-chip color area") }, - { 5, N_("Color sequential area") }, - { 7, N_("Trilinear sensor") }, - { 8, N_("Color sequential linear") } - }; - - //! exif:FileSource - extern const TagDetails xmpExifFileSource[] = { - { 3, N_("DSC") } - }; - - //! exif:SceneType - extern const TagDetails xmpExifSceneType[] = { - { 1, N_("directly photographed image") } - }; - - //! exif:CustomRendered - extern const TagDetails xmpExifCustomRendered[] = { - { 0, N_("Normal process") }, - { 1, N_("Custom process") } - }; - - //! exif:ExposureMode - extern const TagDetails xmpExifExposureMode[] = { - { 0, N_("Auto exposure") }, - { 1, N_("Manual exposure") }, - { 2, N_("Auto bracket") } - }; - - //! exif:WhiteBalance - extern const TagDetails xmpExifWhiteBalance[] = { - { 0, N_("Auto white balance") }, - { 1, N_("Manual white balance") } - }; - //! exif:SceneCaptureType extern const TagDetails xmpExifSceneCaptureType[] = { { 0, N_("Standard") }, @@ -749,16 +678,17 @@ namespace Exiv2 { {"Xmp.exif.ComponentsConfiguration", print0x9101 }, {"Xmp.exif.Contrast", EXV_PRINT_TAG(xmpExifNormalSoftHard) }, {"Xmp.exif.CreateDate", printXmpDate }, - {"Xmp.exif.CustomRendered", EXV_PRINT_TAG(xmpExifCustomRendered) }, + {"Xmp.exif.CustomRendered", print0xa401 }, {"Xmp.exif.DateTimeOriginal", printXmpDate }, {"Xmp.exif.ExifVersion", printXmpVersion }, {"Xmp.exif.ExposureBiasValue", print0x9204 }, + {"Xmp.exif.ExposureMode", print0xa402 }, {"Xmp.exif.ExposureProgram", print0x8822 }, - {"Xmp.exif.FileSource", EXV_PRINT_TAG(xmpExifFileSource) }, + {"Xmp.exif.FileSource", print0xa300 }, {"Xmp.exif.FlashpixVersion", printXmpVersion }, {"Xmp.exif.FNumber", print0x829d }, {"Xmp.exif.FocalLength", print0x920a }, - {"Xmp.exif.FocalPlaneResolutionUnit", EXV_PRINT_TAG(xmpExifFocalPlaneResolutionUnit) }, + {"Xmp.exif.FocalPlaneResolutionUnit", printExifUnit }, {"Xmp.exif.FocalPlaneXResolution", printFloat }, {"Xmp.exif.FocalPlaneYResolution", printFloat }, {"Xmp.exif.GainControl", EXV_PRINT_TAG(xmpExifGainControl) }, @@ -772,17 +702,17 @@ namespace Exiv2 { {"Xmp.exif.GPSStatus", EXV_PRINT_TAG(xmpExifGPSStatus) }, {"Xmp.exif.GPSTimeStamp", printXmpDate }, {"Xmp.exif.GPSTrackRef", EXV_PRINT_TAG(xmpExifGPSDirection) }, - {"Xmp.exif.LightSource", EXV_PRINT_TAG(xmpExifLightSource) }, + {"Xmp.exif.LightSource", print0x9208 }, {"Xmp.exif.MeteringMode", print0x9207 }, {"Xmp.exif.ModifyDate", printXmpDate }, {"Xmp.exif.Saturation", EXV_PRINT_TAG(xmpExifSaturation) }, {"Xmp.exif.SceneCaptureType", EXV_PRINT_TAG(xmpExifSceneCaptureType) }, - {"Xmp.exif.SceneType", EXV_PRINT_TAG(xmpExifSceneType) }, - {"Xmp.exif.SensingMethod", EXV_PRINT_TAG(xmpExifSensingMethod) }, + {"Xmp.exif.SceneType", print0xa301 }, + {"Xmp.exif.SensingMethod", print0xa217 }, {"Xmp.exif.Sharpness", EXV_PRINT_TAG(xmpExifNormalSoftHard) }, {"Xmp.exif.ShutterSpeedValue", print0x9201 }, {"Xmp.exif.SubjectDistanceRange", EXV_PRINT_TAG(xmpExifSubjectDistanceRange) }, - {"Xmp.exif.WhiteBalance", EXV_PRINT_TAG(xmpExifWhiteBalance) }, + {"Xmp.exif.WhiteBalance", print0xa403 }, {"Xmp.tiff.Orientation", print0x0112 }, {"Xmp.tiff.ResolutionUnit", printExifUnit }, {"Xmp.tiff.XResolution", printLong }, diff --git a/src/tags.cpp b/src/tags.cpp index 1b1caba2..b2eee002 100644 --- a/src/tags.cpp +++ b/src/tags.cpp @@ -638,7 +638,7 @@ namespace Exiv2 { { 1, N_("Directly photographed") } }; - //! exifCustomRendered, tag 0xa401 + //! CustomRendered, tag 0xa401 extern const TagDetails exifCustomRendered[] = { { 0, N_("Normal process") }, { 1, N_("Custom process") } @@ -782,7 +782,7 @@ namespace Exiv2 { exifIfdId, captureCond, unsignedShort, print0x9207), TagInfo(0x9208, "LightSource", N_("Light Source"), N_("The kind of light source."), - exifIfdId, captureCond, unsignedShort, EXV_PRINT_TAG(exifLightSource)), + exifIfdId, captureCond, unsignedShort, print0x9208), TagInfo(0x9209, "Flash", N_("Flash"), N_("This tag is recorded when an image is taken using a strobe light (flash)."), exifIfdId, captureCond, unsignedShort, EXV_PRINT_TAG(exifFlash)), @@ -889,17 +889,17 @@ namespace Exiv2 { exifIfdId, captureCond, unsignedRational, printValue), TagInfo(0xa217, "SensingMethod", N_("Sensing Method"), N_("Indicates the image sensor type on the camera or input device."), - exifIfdId, captureCond, unsignedShort, EXV_PRINT_TAG(exifSensingMethod)), + exifIfdId, captureCond, unsignedShort, print0xa217), TagInfo(0xa300, "FileSource", N_("File Source"), N_("Indicates the image source. If a DSC recorded the image, " "this tag value of this tag always be set to 3, indicating " "that the image was recorded on a DSC."), - exifIfdId, captureCond, undefined, EXV_PRINT_TAG(exifFileSource)), + exifIfdId, captureCond, undefined, print0xa300), TagInfo(0xa301, "SceneType", N_("Scene Type"), N_("Indicates the type of scene. If a DSC recorded the image, " "this tag value must always be set to 1, indicating that the " "image was directly photographed."), - exifIfdId, captureCond, undefined, EXV_PRINT_TAG(exifSceneType)), + exifIfdId, captureCond, undefined, print0xa301), TagInfo(0xa302, "CFAPattern", N_("Color Filter Array Pattern"), N_("Indicates the color filter array (CFA) geometric pattern of the " "image sensor when a one-chip color area sensor is used. " @@ -910,15 +910,15 @@ namespace Exiv2 { "data, such as rendering geared to output. When special " "processing is performed, the reader is expected to disable " "or minimize any further processing."), - exifIfdId, captureCond, unsignedShort, EXV_PRINT_TAG(exifCustomRendered)), + exifIfdId, captureCond, unsignedShort, print0xa401), TagInfo(0xa402, "ExposureMode", N_("Exposure Mode"), N_("This tag indicates the exposure mode set when the image was " "shot. In auto-bracketing mode, the camera shoots a series of " "frames of the same scene at different exposure settings."), - exifIfdId, captureCond, unsignedShort, EXV_PRINT_TAG(exifExposureMode)), + exifIfdId, captureCond, unsignedShort, print0xa402), TagInfo(0xa403, "WhiteBalance", N_("White Balance"), N_("This tag indicates the white balance mode set when the image was shot."), - exifIfdId, captureCond, unsignedShort, EXV_PRINT_TAG(exifWhiteBalance)), + exifIfdId, captureCond, unsignedShort, print0xa403), TagInfo(0xa404, "DigitalZoomRatio", N_("Digital Zoom Ratio"), N_("This tag indicates the digital zoom ratio when the image was " "shot. If the numerator of the recorded value is 0, this " @@ -1996,6 +1996,11 @@ namespace Exiv2 { return EXV_PRINT_TAG(exifMeteringMode)(os, value); } + std::ostream& print0x9208(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifLightSource)(os, value); + } + std::ostream& print0x920a(std::ostream& os, const Value& value) { Rational length = value.toRational(); @@ -2033,6 +2038,36 @@ namespace Exiv2 { return EXV_PRINT_TAG(exifColorSpace)(os, value); } + std::ostream& print0xa217(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifSensingMethod)(os, value); + } + + std::ostream& print0xa300(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifFileSource)(os, value); + } + + std::ostream& print0xa301(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifSceneType)(os, value); + } + + std::ostream& print0xa401(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifCustomRendered)(os, value); + } + + std::ostream& print0xa402(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifExposureMode)(os, value); + } + + std::ostream& print0xa403(std::ostream& os, const Value& value) + { + return EXV_PRINT_TAG(exifWhiteBalance)(os, value); + } + std::ostream& print0xa404(std::ostream& os, const Value& value) { Rational zoom = value.toRational(); diff --git a/src/tags.hpp b/src/tags.hpp index 7bdbe06a..9a7c5da9 100644 --- a/src/tags.hpp +++ b/src/tags.hpp @@ -444,7 +444,7 @@ namespace Exiv2 { std::ostream& printDegrees(std::ostream& os, const Value& value); //! Print function converting from UCS-2LE to UTF-8 std::ostream& printUcs2(std::ostream& os, const Value& value); - //! Print function for Exif units (wrapper to be able to use this also for XMP properties) + //! Print function for Exif units std::ostream& printExifUnit(std::ostream& os, const Value& value); //! Print GPS version std::ostream& print0x0000(std::ostream& os, const Value& value); @@ -452,9 +452,9 @@ namespace Exiv2 { std::ostream& print0x0006(std::ostream& os, const Value& value); //! Print GPS timestamp std::ostream& print0x0007(std::ostream& os, const Value& value); - //! Print orientation (wrapper to be able to use this also for XMP properties) + //! Print orientation std::ostream& print0x0112(std::ostream& os, const Value& value); - //! Print YCbCrPositioning (wrapper to be able to use this also for XMP properties) + //! Print YCbCrPositioning std::ostream& print0x0213(std::ostream& os, const Value& value); //! Print the copyright std::ostream& print0x8298(std::ostream& os, const Value& value); @@ -462,7 +462,7 @@ namespace Exiv2 { std::ostream& print0x829a(std::ostream& os, const Value& value); //! Print the f-number std::ostream& print0x829d(std::ostream& os, const Value& value); - //! Print exposure program (wrapper to be able to use this also for XMP properties) + //! Print exposure program std::ostream& print0x8822(std::ostream& os, const Value& value); //! Print ISO speed ratings std::ostream& print0x8827(std::ostream& os, const Value& value); @@ -476,14 +476,28 @@ namespace Exiv2 { std::ostream& print0x9204(std::ostream& os, const Value& value); //! Print the subject distance std::ostream& print0x9206(std::ostream& os, const Value& value); - //! Print metering mode (wrapper to be able to use this also for XMP properties) + //! Print metering mode std::ostream& print0x9207(std::ostream& os, const Value& value); + //! Print light source + std::ostream& print0x9208(std::ostream& os, const Value& value); //! Print the actual focal length of the lens std::ostream& print0x920a(std::ostream& os, const Value& value); //! Print the user comment std::ostream& print0x9286(std::ostream& os, const Value& value); - //! Print color space (wrapper to be able to use this also for XMP properties) + //! Print color space std::ostream& print0xa001(std::ostream& os, const Value& value); + //! Print sensing method + std::ostream& print0xa217(std::ostream& os, const Value& value); + //! Print file source + std::ostream& print0xa300(std::ostream& os, const Value& value); + //! Print scene type + std::ostream& print0xa301(std::ostream& os, const Value& value); + //! Print custom rendered + std::ostream& print0xa401(std::ostream& os, const Value& value); + //! Print exposure mode + std::ostream& print0xa402(std::ostream& os, const Value& value); + //! Print white balance + std::ostream& print0xa403(std::ostream& os, const Value& value); //! Print digital zoom ratio std::ostream& print0xa404(std::ostream& os, const Value& value); //! Print 35mm equivalent focal length