#721: Renamed ifdItem to groupName and big internal clean-up: consolidated groups and IfdIds.

v0.27.3
Andreas Huggel 15 years ago
parent 4c5def39cf
commit 717d789c8e

@ -196,42 +196,42 @@ namespace Exiv2 {
// Canon MakerNote Tag Info // Canon MakerNote Tag Info
const TagInfo CanonMakerNote::tagInfo_[] = { const TagInfo CanonMakerNote::tagInfo_[] = {
TagInfo(0x0000, "0x0000", "0x0000", N_("Unknown"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0000, "0x0000", "0x0000", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0001, "CameraSettings", N_("Camera Settings"), N_("Various camera settings"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0001, "CameraSettings", N_("Camera Settings"), N_("Various camera settings"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0002, "FocalLength", N_("Focal Length"), N_("Focal length"), canonIfdId, makerTags, unsignedShort, -1, printFocalLength), TagInfo(0x0002, "FocalLength", N_("Focal Length"), N_("Focal length"), canonId, makerTags, unsignedShort, -1, printFocalLength),
TagInfo(0x0003, "0x0003", "0x0003", N_("Unknown"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0003, "0x0003", "0x0003", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0004, "ShotInfo", N_("Shot Info"), N_("Shot information"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0004, "ShotInfo", N_("Shot Info"), N_("Shot information"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0005, "Panorama", N_("Panorama"), N_("Panorama"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0005, "Panorama", N_("Panorama"), N_("Panorama"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0006, "ImageType", N_("Image Type"), N_("Image type"), canonIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0006, "ImageType", N_("Image Type"), N_("Image type"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0007, "FirmwareVersion", N_("Firmware Version"), N_("Firmware version"), canonIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0007, "FirmwareVersion", N_("Firmware Version"), N_("Firmware version"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0008, "FileNumber", N_("File Number"), N_("File number"), canonIfdId, makerTags, unsignedLong, -1, print0x0008), TagInfo(0x0008, "FileNumber", N_("File Number"), N_("File number"), canonId, makerTags, unsignedLong, -1, print0x0008),
TagInfo(0x0009, "OwnerName", N_("Owner Name"), N_("Owner Name"), canonIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0009, "OwnerName", N_("Owner Name"), N_("Owner Name"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x000c, "SerialNumber", N_("Serial Number"), N_("Camera serial number"), canonIfdId, makerTags, unsignedLong, -1, print0x000c), TagInfo(0x000c, "SerialNumber", N_("Serial Number"), N_("Camera serial number"), canonId, makerTags, unsignedLong, -1, print0x000c),
TagInfo(0x000d, "CameraInfo", N_("Camera Info"), N_("Camera info"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x000d, "CameraInfo", N_("Camera Info"), N_("Camera info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x000f, "CustomFunctions", N_("Custom Functions"), N_("Custom Functions"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x000f, "CustomFunctions", N_("Custom Functions"), N_("Custom Functions"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0010, "ModelID", N_("ModelID"), N_("Model ID"), canonIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonModelId)), TagInfo(0x0010, "ModelID", N_("ModelID"), N_("Model ID"), canonId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonModelId)),
TagInfo(0x0012, "PictureInfo", N_("Picture Info"), N_("Picture info"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0012, "PictureInfo", N_("Picture Info"), N_("Picture info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0013, "ThumbnailImageValidArea", N_("Thumbnail Image Valid Area"), N_("Thumbnail image valid area"), canonIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0013, "ThumbnailImageValidArea", N_("Thumbnail Image Valid Area"), N_("Thumbnail image valid area"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x0015, "SerialNumberFormat", N_("Serial Number Format"), N_("Serial number format"), canonIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonSerialNumberFormat)), TagInfo(0x0015, "SerialNumberFormat", N_("Serial Number Format"), N_("Serial number format"), canonId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonSerialNumberFormat)),
TagInfo(0x001a, "SuperMacro", N_("Super Macro"), N_("Super macro"), canonIfdId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonSuperMacro)), TagInfo(0x001a, "SuperMacro", N_("Super Macro"), N_("Super macro"), canonId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonSuperMacro)),
TagInfo(0x0026, "AFInfo", N_("AF Info"), N_("AF info"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0026, "AFInfo", N_("AF Info"), N_("AF info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0083, "OriginalDecisionDataOffset", N_("Original Decision Data Offset"), N_("Original decision data offset"), canonIfdId, makerTags, signedLong, -1, printValue), TagInfo(0x0083, "OriginalDecisionDataOffset", N_("Original Decision Data Offset"), N_("Original decision data offset"), canonId, makerTags, signedLong, -1, printValue),
TagInfo(0x00a4, "WhiteBalanceTable", N_("White Balance Table"), N_("White balance table"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00a4, "WhiteBalanceTable", N_("White Balance Table"), N_("White balance table"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0095, "LensModel", N_("LensModel"), N_("LensModel"), canonIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0095, "LensModel", N_("LensModel"), N_("LensModel"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0096, "InternalSerialNumber", N_("Internal Serial Number"), N_("Internal serial number"), canonIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0096, "InternalSerialNumber", N_("Internal Serial Number"), N_("Internal serial number"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0097, "DustRemovalData", N_("Dust Removal Data"), N_("Dust removal data"), canonIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0097, "DustRemovalData", N_("Dust Removal Data"), N_("Dust removal data"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0099, "CustomFunctions", N_("Custom Functions"), N_("Custom functions"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0099, "CustomFunctions", N_("Custom Functions"), N_("Custom functions"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00a0, "ProcessingInfo", N_("Processing Info"), N_("Processing info"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00a0, "ProcessingInfo", N_("Processing Info"), N_("Processing info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00aa, "MeasuredColor", N_("Measured Color"), N_("Measured color"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00aa, "MeasuredColor", N_("Measured Color"), N_("Measured color"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00b4, "ColorSpace", N_("ColorSpace"), N_("ColorSpace"), canonIfdId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonColorSpace)), TagInfo(0x00b4, "ColorSpace", N_("ColorSpace"), N_("ColorSpace"), canonId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonColorSpace)),
TagInfo(0x00b5, "0x00b5", "0x00b5", N_("Unknown"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00b5, "0x00b5", "0x00b5", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00c0, "0x00c0", "0x00c0", N_("Unknown"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00c0, "0x00c0", "0x00c0", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00c1, "0x00c1", "0x00c1", N_("Unknown"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00c1, "0x00c1", "0x00c1", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00d0, "VRDOffset", N_("VRD Offset"), N_("VRD offset"), canonIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x00d0, "VRDOffset", N_("VRD Offset"), N_("VRD offset"), canonId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x00e0, "SensorInfo", N_("Sensor Info"), N_("Sensor info"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x00e0, "SensorInfo", N_("Sensor Info"), N_("Sensor info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x4001, "ColorData", N_("Color Data"), N_("Color data"), canonIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x4001, "ColorData", N_("Color Data"), N_("Color data"), canonId, makerTags, unsignedShort, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonMakerNoteTag)", "(UnknownCanonMakerNoteTag)", N_("Unknown CanonMakerNote tag"), canonIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownCanonMakerNoteTag)", "(UnknownCanonMakerNoteTag)", N_("Unknown CanonMakerNote tag"), canonId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* CanonMakerNote::tagList() const TagInfo* CanonMakerNote::tagList()
@ -730,51 +730,51 @@ namespace Exiv2 {
// Canon Camera Settings Tag Info // Canon Camera Settings Tag Info
const TagInfo CanonMakerNote::tagInfoCs_[] = { const TagInfo CanonMakerNote::tagInfoCs_[] = {
TagInfo(0x0001, "Macro", N_("Macro"), N_("Macro mode"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsMacro)), TagInfo(0x0001, "Macro", N_("Macro"), N_("Macro mode"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsMacro)),
TagInfo(0x0002, "Selftimer", N_("Selftimer"), N_("Self timer"), canonCsIfdId, makerTags, signedShort, 1, printCs0x0002), TagInfo(0x0002, "Selftimer", N_("Selftimer"), N_("Self timer"), canonCsId, makerTags, signedShort, 1, printCs0x0002),
TagInfo(0x0003, "Quality", N_("Quality"), N_("Quality"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsQuality)), TagInfo(0x0003, "Quality", N_("Quality"), N_("Quality"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsQuality)),
TagInfo(0x0004, "FlashMode", N_("Flash Mode"), N_("Flash mode setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFlashMode)), TagInfo(0x0004, "FlashMode", N_("Flash Mode"), N_("Flash mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFlashMode)),
TagInfo(0x0005, "DriveMode", N_("Drive Mode"), N_("Drive mode setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsDriveMode)), TagInfo(0x0005, "DriveMode", N_("Drive Mode"), N_("Drive mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsDriveMode)),
TagInfo(0x0006, "0x0006", "0x0006", N_("Unknown"), canonCsIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0006, "0x0006", "0x0006", N_("Unknown"), canonCsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0007, "FocusMode", N_("Focus Mode"), N_("Focus mode setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusMode)), TagInfo(0x0007, "FocusMode", N_("Focus Mode"), N_("Focus mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusMode)),
TagInfo(0x0008, "0x0008", "0x0008", N_("Unknown"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0008, "0x0008", "0x0008", N_("Unknown"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0009, "0x0009", "0x0009", N_("Unknown"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0009, "0x0009", "0x0009", N_("Unknown"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x000a, "ImageSize", N_("Image Size"), N_("Image size"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsImageSize)), TagInfo(0x000a, "ImageSize", N_("Image Size"), N_("Image size"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsImageSize)),
TagInfo(0x000b, "EasyMode", N_("Easy Mode"), N_("Easy shooting mode"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsEasyMode)), TagInfo(0x000b, "EasyMode", N_("Easy Mode"), N_("Easy shooting mode"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsEasyMode)),
TagInfo(0x000c, "DigitalZoom", N_("Digital Zoom"), N_("Digital zoom"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsDigitalZoom)), TagInfo(0x000c, "DigitalZoom", N_("Digital Zoom"), N_("Digital zoom"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsDigitalZoom)),
TagInfo(0x000d, "Contrast", N_("Contrast"), N_("Contrast setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsLnh)), TagInfo(0x000d, "Contrast", N_("Contrast"), N_("Contrast setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsLnh)),
TagInfo(0x000e, "Saturation", N_("Saturation"), N_("Saturation setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsLnh)), TagInfo(0x000e, "Saturation", N_("Saturation"), N_("Saturation setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsLnh)),
TagInfo(0x000f, "Sharpness", N_("Sharpness"), N_("Sharpness setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsLnh)), TagInfo(0x000f, "Sharpness", N_("Sharpness"), N_("Sharpness setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsLnh)),
TagInfo(0x0010, "ISOSpeed", N_("ISO Speed Mode"), N_("ISO speed setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsISOSpeed)), TagInfo(0x0010, "ISOSpeed", N_("ISO Speed Mode"), N_("ISO speed setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsISOSpeed)),
TagInfo(0x0011, "MeteringMode", N_("Metering Mode"), N_("Metering mode setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsMeteringMode)), TagInfo(0x0011, "MeteringMode", N_("Metering Mode"), N_("Metering mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsMeteringMode)),
TagInfo(0x0012, "FocusType", N_("Focus Type"), N_("Focus type setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusType)), TagInfo(0x0012, "FocusType", N_("Focus Type"), N_("Focus type setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusType)),
TagInfo(0x0013, "AFPoint", N_("AF Point"), N_("AF point selected"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsAfPoint)), TagInfo(0x0013, "AFPoint", N_("AF Point"), N_("AF point selected"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsAfPoint)),
TagInfo(0x0014, "ExposureProgram", N_("Exposure Program"), N_("Exposure mode setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsExposureProgram)), TagInfo(0x0014, "ExposureProgram", N_("Exposure Program"), N_("Exposure mode setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsExposureProgram)),
TagInfo(0x0015, "0x0015", "0x0015", N_("Unknown"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0015, "0x0015", "0x0015", N_("Unknown"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0016, "LensType", N_("Lens Type"), N_("Lens type"), canonCsIfdId, makerTags, signedShort, 1, printCsLensType), TagInfo(0x0016, "LensType", N_("Lens Type"), N_("Lens type"), canonCsId, makerTags, signedShort, 1, printCsLensType),
TagInfo(0x0017, "Lens", N_("Lens"), N_("'long' and 'short' focal length of lens (in 'focal units') and 'focal units' per mm"), canonCsIfdId, makerTags, unsignedShort, 3, printCsLens), TagInfo(0x0017, "Lens", N_("Lens"), N_("'long' and 'short' focal length of lens (in 'focal units') and 'focal units' per mm"), canonCsId, makerTags, unsignedShort, 3, printCsLens),
TagInfo(0x0018, "ShortFocal", N_("Short Focal"), N_("Short focal"), canonCsIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0018, "ShortFocal", N_("Short Focal"), N_("Short focal"), canonCsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0019, "FocalUnits", N_("Focal Units"), N_("Focal units"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0019, "FocalUnits", N_("Focal Units"), N_("Focal units"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x001a, "MaxAperture", N_("Max Aperture"), N_("Max aperture"), canonCsIfdId, makerTags, signedShort, 1, printSi0x0015), TagInfo(0x001a, "MaxAperture", N_("Max Aperture"), N_("Max aperture"), canonCsId, makerTags, signedShort, 1, printSi0x0015),
TagInfo(0x001b, "MinAperture", N_("Min Aperture"), N_("Min aperture"), canonCsIfdId, makerTags, signedShort, 1, printSi0x0015), TagInfo(0x001b, "MinAperture", N_("Min Aperture"), N_("Min aperture"), canonCsId, makerTags, signedShort, 1, printSi0x0015),
TagInfo(0x001c, "FlashActivity", N_("Flash Activity"), N_("Flash activity"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFlashActivity)), TagInfo(0x001c, "FlashActivity", N_("Flash Activity"), N_("Flash activity"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFlashActivity)),
TagInfo(0x001d, "FlashDetails", N_("Flash Details"), N_("Flash details"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG_BITMASK(canonCsFlashDetails)), TagInfo(0x001d, "FlashDetails", N_("Flash Details"), N_("Flash details"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG_BITMASK(canonCsFlashDetails)),
TagInfo(0x001e, "0x001e", "0x001e", N_("Unknown"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x001e, "0x001e", "0x001e", N_("Unknown"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x001f, "0x001f", "0x001f", N_("Unknown"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x001f, "0x001f", "0x001f", N_("Unknown"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0020, "FocusContinuous", N_("Focus Continuous"), N_("Focus continuous setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusContinuous)), TagInfo(0x0020, "FocusContinuous", N_("Focus Continuous"), N_("Focus continuous setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsFocusContinuous)),
TagInfo(0x0021, "AESetting", N_("AESetting"), N_("AE setting"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsAESetting)), TagInfo(0x0021, "AESetting", N_("AESetting"), N_("AE setting"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsAESetting)),
TagInfo(0x0022, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsImageStabilization)), TagInfo(0x0022, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsImageStabilization)),
TagInfo(0x0023, "DisplayAperture", N_("Display Aperture"), N_("Display aperture"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0023, "DisplayAperture", N_("Display Aperture"), N_("Display aperture"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0024, "ZoomSourceWidth", N_("Zoom Source Width"), N_("Zoom source width"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0024, "ZoomSourceWidth", N_("Zoom Source Width"), N_("Zoom source width"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0025, "ZoomTargetWidth", N_("Zoom Target Width"), N_("Zoom target width"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0025, "ZoomTargetWidth", N_("Zoom Target Width"), N_("Zoom target width"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0026, "0x0026", "0x0026", N_("Unknown"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0026, "0x0026", "0x0026", N_("Unknown"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0027, "SpotMeteringMode", N_("Spot Metering Mode"), N_("Spot metering mode"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsSpotMeteringMode)), TagInfo(0x0027, "SpotMeteringMode", N_("Spot Metering Mode"), N_("Spot metering mode"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsSpotMeteringMode)),
TagInfo(0x0028, "PhotoEffect", N_("Photo Effect"), N_("Photo effect"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsPhotoEffect)), TagInfo(0x0028, "PhotoEffect", N_("Photo Effect"), N_("Photo effect"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsPhotoEffect)),
TagInfo(0x0029, "ManualFlashOutput", N_("Manual Flash Output"), N_("Manual flash output"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsSRAWQuality)), TagInfo(0x0029, "ManualFlashOutput", N_("Manual Flash Output"), N_("Manual flash output"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsSRAWQuality)),
TagInfo(0x002a, "ColorTone", N_("Color Tone"), N_("Color tone"), canonCsIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x002a, "ColorTone", N_("Color Tone"), N_("Color tone"), canonCsId, makerTags, signedShort, 1, printValue),
TagInfo(0x002e, "SRAWQuality", N_("SRAW Quality Tone"), N_("SRAW quality"), canonCsIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsSRAWQuality)), TagInfo(0x002e, "SRAWQuality", N_("SRAW Quality Tone"), N_("SRAW quality"), canonCsId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsSRAWQuality)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonCsTag)", "(UnknownCanonCsTag)", N_("Unknown Canon Camera Settings 1 tag"), canonCsIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonCsTag)", "(UnknownCanonCsTag)", N_("Unknown Canon Camera Settings 1 tag"), canonCsId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListCs() const TagInfo* CanonMakerNote::tagListCs()
@ -837,34 +837,34 @@ namespace Exiv2 {
// Canon Shot Info Tag // Canon Shot Info Tag
const TagInfo CanonMakerNote::tagInfoSi_[] = { const TagInfo CanonMakerNote::tagInfoSi_[] = {
TagInfo(0x0001, "0x0001", "0x0001", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0001, "0x0001", "0x0001", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0002, "ISOSpeed", N_("ISO Speed Used"), N_("ISO speed used"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0002), TagInfo(0x0002, "ISOSpeed", N_("ISO Speed Used"), N_("ISO speed used"), canonSiId, makerTags, unsignedShort, 1, printSi0x0002),
TagInfo(0x0003, "MeasuredEV", N_("Measured EV"), N_("Measured EV"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0003), TagInfo(0x0003, "MeasuredEV", N_("Measured EV"), N_("Measured EV"), canonSiId, makerTags, unsignedShort, 1, printSi0x0003),
TagInfo(0x0004, "TargetAperture", N_("Target Aperture"), N_("Target Aperture"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0015), TagInfo(0x0004, "TargetAperture", N_("Target Aperture"), N_("Target Aperture"), canonSiId, makerTags, unsignedShort, 1, printSi0x0015),
TagInfo(0x0005, "TargetShutterSpeed", N_("Target Shutter Speed"), N_("Target shutter speed"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0016), TagInfo(0x0005, "TargetShutterSpeed", N_("Target Shutter Speed"), N_("Target shutter speed"), canonSiId, makerTags, unsignedShort, 1, printSi0x0016),
TagInfo(0x0006, "0x0006", "0x0006", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0006, "0x0006", "0x0006", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0007, "WhiteBalance", N_("White Balance"), N_("White balance setting"), canonSiIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(canonSiWhiteBalance)), TagInfo(0x0007, "WhiteBalance", N_("White Balance"), N_("White balance setting"), canonSiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(canonSiWhiteBalance)),
TagInfo(0x0008, "0x0008", "0x0008", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0008, "0x0008", "0x0008", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0009, "Sequence", N_("Sequence"), N_("Sequence number (if in a continuous burst)"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0009), TagInfo(0x0009, "Sequence", N_("Sequence"), N_("Sequence number (if in a continuous burst)"), canonSiId, makerTags, unsignedShort, 1, printSi0x0009),
TagInfo(0x000a, "0x000a", "0x000a", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000a, "0x000a", "0x000a", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000b, "0x000b", "0x000b", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000b, "0x000b", "0x000b", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000c, "0x000c", "0x000c", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000c, "0x000c", "0x000c", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000d, "0x000d", "0x000d", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000d, "0x000d", "0x000d", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000e, "AFPointUsed", N_("AF Point Used"), N_("AF point used"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x000e), TagInfo(0x000e, "AFPointUsed", N_("AF Point Used"), N_("AF point used"), canonSiId, makerTags, unsignedShort, 1, printSi0x000e),
TagInfo(0x000f, "FlashBias", N_("Flash Bias"), N_("Flash bias"), canonSiIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(canonSiFlashBias)), TagInfo(0x000f, "FlashBias", N_("Flash Bias"), N_("Flash bias"), canonSiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(canonSiFlashBias)),
TagInfo(0x0010, "0x0010", "0x0010", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0010, "0x0010", "0x0010", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0011, "0x0011", "0x0011", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0011, "0x0011", "0x0011", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0012, "0x0012", "0x0012", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0012, "0x0012", "0x0012", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0013, "SubjectDistance", N_("Subject Distance"), N_("Subject distance (units are not clear)"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0013), TagInfo(0x0013, "SubjectDistance", N_("Subject Distance"), N_("Subject distance (units are not clear)"), canonSiId, makerTags, unsignedShort, 1, printSi0x0013),
TagInfo(0x0014, "0x0014", "0x0014", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0014, "0x0014", "0x0014", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0015, "ApertureValue", N_("Aperture Value"), N_("Aperture"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0015), TagInfo(0x0015, "ApertureValue", N_("Aperture Value"), N_("Aperture"), canonSiId, makerTags, unsignedShort, 1, printSi0x0015),
TagInfo(0x0016, "ShutterSpeedValue", N_("Shutter Speed Value"), N_("Shutter speed"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0016), TagInfo(0x0016, "ShutterSpeedValue", N_("Shutter Speed Value"), N_("Shutter speed"), canonSiId, makerTags, unsignedShort, 1, printSi0x0016),
TagInfo(0x0017, "MeasuredEV2", N_("Measured EV 2"), N_("Measured EV 2"), canonSiIfdId, makerTags, unsignedShort, 1, printSi0x0017), TagInfo(0x0017, "MeasuredEV2", N_("Measured EV 2"), N_("Measured EV 2"), canonSiId, makerTags, unsignedShort, 1, printSi0x0017),
TagInfo(0x0018, "0x0018", "0x0018", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0018, "0x0018", "0x0018", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0019, "0x0019", "0x0019", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0019, "0x0019", "0x0019", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001a, "0x001a", "0x001a", N_("Unknown"), canonSiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x001a, "0x001a", "0x001a", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonSiTag)", "(UnknownCanonSiTag)", N_("Unknown Canon Camera Settings 2 tag"), canonSiIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonSiTag)", "(UnknownCanonSiTag)", N_("Unknown Canon Camera Settings 2 tag"), canonSiId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListSi() const TagInfo* CanonMakerNote::tagListSi()
@ -883,10 +883,10 @@ namespace Exiv2 {
// Canon Panorama Info // Canon Panorama Info
const TagInfo CanonMakerNote::tagInfoPa_[] = { const TagInfo CanonMakerNote::tagInfoPa_[] = {
TagInfo(0x0002, "PanoramaFrame", N_("Panorama Frame"), N_("Panorama frame number"), canonPaIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0002, "PanoramaFrame", N_("Panorama Frame"), N_("Panorama frame number"), canonPaId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0005, "PanoramaDirection", N_("Panorama Direction"), N_("Panorama direction"), canonPaIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(canonPaDirection)), TagInfo(0x0005, "PanoramaDirection", N_("Panorama Direction"), N_("Panorama direction"), canonPaId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(canonPaDirection)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonCs2Tag)", "(UnknownCanonCs2Tag)", N_("Unknown Canon Panorama tag"), canonPaIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonCs2Tag)", "(UnknownCanonCs2Tag)", N_("Unknown Canon Panorama tag"), canonPaId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListPa() const TagInfo* CanonMakerNote::tagListPa()
@ -896,23 +896,23 @@ namespace Exiv2 {
// Canon Custom Function Tag Info // Canon Custom Function Tag Info
const TagInfo CanonMakerNote::tagInfoCf_[] = { const TagInfo CanonMakerNote::tagInfoCf_[] = {
TagInfo(0x0001, "NoiseReduction", N_("Noise Reduction"), N_("Long exposure noise reduction"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0001, "NoiseReduction", N_("Noise Reduction"), N_("Long exposure noise reduction"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0002, "ShutterAeLock", N_("Shutter Ae Lock"), N_("Shutter/AE lock buttons"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0002, "ShutterAeLock", N_("Shutter Ae Lock"), N_("Shutter/AE lock buttons"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0003, "MirrorLockup", N_("Mirror Lockup"), N_("Mirror lockup"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0003, "MirrorLockup", N_("Mirror Lockup"), N_("Mirror lockup"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0004, "ExposureLevelIncrements", N_("Exposure Level Increments"), N_("Tv/Av and exposure level"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0004, "ExposureLevelIncrements", N_("Exposure Level Increments"), N_("Tv/Av and exposure level"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0005, "AFAssist", N_("AF Assist"), N_("AF assist light"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0005, "AFAssist", N_("AF Assist"), N_("AF assist light"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0006, "FlashSyncSpeedAv", N_("Flash Sync Speed Av"), N_("Shutter speed in Av mode"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0006, "FlashSyncSpeedAv", N_("Flash Sync Speed Av"), N_("Shutter speed in Av mode"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0007, "AEBSequence", N_("AEB Sequence"), N_("AEB sequence/auto cancellation"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0007, "AEBSequence", N_("AEB Sequence"), N_("AEB sequence/auto cancellation"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0008, "ShutterCurtainSync", N_("Shutter Curtain Sync"), N_("Shutter curtain sync"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0008, "ShutterCurtainSync", N_("Shutter Curtain Sync"), N_("Shutter curtain sync"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0009, "LensAFStopButton", N_("Lens AF Stop Button"), N_("Lens AF stop button Fn. Switch"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0009, "LensAFStopButton", N_("Lens AF Stop Button"), N_("Lens AF stop button Fn. Switch"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000a, "FillFlashAutoReduction", N_("Fill Flash Auto Reduction"), N_("Auto reduction of fill flash"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000a, "FillFlashAutoReduction", N_("Fill Flash Auto Reduction"), N_("Auto reduction of fill flash"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000b, "MenuButtonReturn", N_("Menu Button Return"), N_("Menu button return position"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000b, "MenuButtonReturn", N_("Menu Button Return"), N_("Menu button return position"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000c, "SetButtonFunction", N_("Set Button Function"), N_("SET button func. when shooting"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000c, "SetButtonFunction", N_("Set Button Function"), N_("SET button func. when shooting"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000d, "SensorCleaning", N_("Sensor Cleaning"), N_("Sensor cleaning"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000d, "SensorCleaning", N_("Sensor Cleaning"), N_("Sensor cleaning"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000e, "SuperimposedDisplay", N_("Superimposed Display"), N_("Superimposed display"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000e, "SuperimposedDisplay", N_("Superimposed Display"), N_("Superimposed display"), canonCfId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000f, "ShutterReleaseNoCFCard", N_("Shutter Release No CF Card"), N_("Shutter Release W/O CF Card"), canonCfIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x000f, "ShutterReleaseNoCFCard", N_("Shutter Release No CF Card"), N_("Shutter Release W/O CF Card"), canonCfId, makerTags, unsignedShort, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonCfTag)", "(UnknownCanonCfTag)", N_("Unknown Canon Custom Function tag"), canonCfIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonCfTag)", "(UnknownCanonCfTag)", N_("Unknown Canon Custom Function tag"), canonCfId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListCf() const TagInfo* CanonMakerNote::tagListCf()
@ -946,14 +946,14 @@ namespace Exiv2 {
// Canon Picture Info Tag // Canon Picture Info Tag
const TagInfo CanonMakerNote::tagInfoPi_[] = { const TagInfo CanonMakerNote::tagInfoPi_[] = {
TagInfo(0x0002, "ImageWidth", N_("Image Width"), N_("Image width"), canonPiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0002, "ImageWidth", N_("Image Width"), N_("Image width"), canonPiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0003, "ImageHeight", N_("Image Height"), N_("Image height"), canonPiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0003, "ImageHeight", N_("Image Height"), N_("Image height"), canonPiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0004, "ImageWidthAsShot", N_("Image Width As Shot"), N_("Image width (as shot)"), canonPiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0004, "ImageWidthAsShot", N_("Image Width As Shot"), N_("Image width (as shot)"), canonPiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0005, "ImageHeightAsShot", N_("Image Height As Shot"), N_("Image height (as shot)"), canonPiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo(0x0005, "ImageHeightAsShot", N_("Image Height As Shot"), N_("Image height (as shot)"), canonPiId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0016, "AFPointsUsed", N_("AF Points Used"), N_("AF points used"), canonPiIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG_BITMASK(canonPiAFPointsUsed)), TagInfo(0x0016, "AFPointsUsed", N_("AF Points Used"), N_("AF points used"), canonPiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG_BITMASK(canonPiAFPointsUsed)),
TagInfo(0x001a, "AFPointsUsed20D", N_("AF Points Used 20D"), N_("AF points used (20D)"), canonPiIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG_BITMASK(canonPiAFPointsUsed20D)), TagInfo(0x001a, "AFPointsUsed20D", N_("AF Points Used 20D"), N_("AF points used (20D)"), canonPiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG_BITMASK(canonPiAFPointsUsed20D)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonPiTag)", "(UnknownCanonPiTag)", N_("Unknown Canon Picture Info tag"), canonPiIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonPiTag)", "(UnknownCanonPiTag)", N_("Unknown Canon Picture Info tag"), canonPiId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListPi() const TagInfo* CanonMakerNote::tagListPi()
@ -1020,23 +1020,23 @@ namespace Exiv2 {
// Canon File Info Tag // Canon File Info Tag
const TagInfo CanonMakerNote::tagInfoFi_[] = { const TagInfo CanonMakerNote::tagInfoFi_[] = {
TagInfo(0x0001, "FileNumber", N_("File Number"), N_("File Number"), canonFiIfdId, makerTags, unsignedLong, 1, printFiFileNumber), TagInfo(0x0001, "FileNumber", N_("File Number"), N_("File Number"), canonFiId, makerTags, unsignedLong, 1, printFiFileNumber),
TagInfo(0x0003, "BracketMode", N_("Bracket Mode"), N_("Bracket Mode"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonBracketMode)), TagInfo(0x0003, "BracketMode", N_("Bracket Mode"), N_("Bracket Mode"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonBracketMode)),
TagInfo(0x0004, "BracketValue", N_("Bracket Value"), N_("Bracket Value"), canonFiIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0004, "BracketValue", N_("Bracket Value"), N_("Bracket Value"), canonFiId, makerTags, signedShort, 1, printValue),
TagInfo(0x0005, "BracketShotNumber", N_("Bracket Shot Number"), N_("Bracket Shot Number"), canonFiIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0005, "BracketShotNumber", N_("Bracket Shot Number"), N_("Bracket Shot Number"), canonFiId, makerTags, signedShort, 1, printValue),
TagInfo(0x0006, "RawJpgQuality", N_("Raw Jpg Quality"), N_("Raw Jpg Quality"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsQuality)), TagInfo(0x0006, "RawJpgQuality", N_("Raw Jpg Quality"), N_("Raw Jpg Quality"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonCsQuality)),
TagInfo(0x0007, "RawJpgSize", N_("Raw Jpg Size"), N_("Raw Jpg Size"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonRawJpgSize)), TagInfo(0x0007, "RawJpgSize", N_("Raw Jpg Size"), N_("Raw Jpg Size"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonRawJpgSize)),
TagInfo(0x0008, "NoiseReduction", N_("Noise Reduction"), N_("Noise Reduction"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonNoiseReduction)), TagInfo(0x0008, "NoiseReduction", N_("Noise Reduction"), N_("Noise Reduction"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonNoiseReduction)),
TagInfo(0x0009, "WBBracketMode", N_("WB Bracket Mode"), N_("WB Bracket Mode"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonWBBracketMode)), TagInfo(0x0009, "WBBracketMode", N_("WB Bracket Mode"), N_("WB Bracket Mode"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonWBBracketMode)),
TagInfo(0x000c, "WBBracketValueAB", N_("WB Bracket Value AB"), N_("WB Bracket Value AB"), canonFiIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x000c, "WBBracketValueAB", N_("WB Bracket Value AB"), N_("WB Bracket Value AB"), canonFiId, makerTags, signedShort, 1, printValue),
TagInfo(0x000d, "WBBracketValueGM", N_("WB Bracket Value GM"), N_("WB Bracket Value GM"), canonFiIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x000d, "WBBracketValueGM", N_("WB Bracket Value GM"), N_("WB Bracket Value GM"), canonFiId, makerTags, signedShort, 1, printValue),
TagInfo(0x000e, "FilterEffect", N_("Filter Effect"), N_("Filter Effect"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonFilterEffect)), TagInfo(0x000e, "FilterEffect", N_("Filter Effect"), N_("Filter Effect"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonFilterEffect)),
TagInfo(0x000f, "ToningEffect", N_("Toning Effect"), N_("Toning Effect"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonToningEffect)), TagInfo(0x000f, "ToningEffect", N_("Toning Effect"), N_("Toning Effect"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonToningEffect)),
TagInfo(0x0010, "MacroMagnification", N_("Macro Magnification"), N_("Macro magnification"), canonFiIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0010, "MacroMagnification", N_("Macro Magnification"), N_("Macro magnification"), canonFiId, makerTags, signedShort, 1, printValue),
TagInfo(0x0013, "LiveViewShooting", N_("Live View Shooting"), N_("Live view shooting"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonOffOn)), TagInfo(0x0013, "LiveViewShooting", N_("Live View Shooting"), N_("Live view shooting"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonOffOn)),
TagInfo(0x0019, "FlashExposureLock", N_("Flash Exposure Lock"), N_("Flash exposure lock"), canonFiIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonOffOn)), TagInfo(0x0019, "FlashExposureLock", N_("Flash Exposure Lock"), N_("Flash exposure lock"), canonFiId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonOffOn)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonFiTag)", "(UnknownCanonFiTag)", N_("Unknown Canon File Info tag"), canonFiIfdId, makerTags, signedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonFiTag)", "(UnknownCanonFiTag)", N_("Unknown Canon File Info tag"), canonFiId, makerTags, signedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListFi() const TagInfo* CanonMakerNote::tagListFi()
@ -1087,20 +1087,20 @@ namespace Exiv2 {
// Canon Processing Info Tag // Canon Processing Info Tag
const TagInfo CanonMakerNote::tagInfoPr_[] = { const TagInfo CanonMakerNote::tagInfoPr_[] = {
TagInfo(0x0001, "ToneCurve", N_("ToneCurve"), N_("Tone curve"), canonPrIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonToneCurve)), TagInfo(0x0001, "ToneCurve", N_("ToneCurve"), N_("Tone curve"), canonPrId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonToneCurve)),
TagInfo(0x0002, "Sharpness", N_("Sharpness"), N_("Sharpness"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0002, "Sharpness", N_("Sharpness"), N_("Sharpness"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x0003, "SharpnessFrequency", N_("SharpnessFrequency"), N_("Sharpness frequency"), canonPrIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonSharpnessFrequency)), TagInfo(0x0003, "SharpnessFrequency", N_("SharpnessFrequency"), N_("Sharpness frequency"), canonPrId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonSharpnessFrequency)),
TagInfo(0x0004, "SensorRedLevel", N_("SensorRedLevel"), N_("Sensor red level"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0004, "SensorRedLevel", N_("SensorRedLevel"), N_("Sensor red level"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x0005, "SensorBlueLevel", N_("SensorBlueLevel"), N_("Sensor blue level"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0005, "SensorBlueLevel", N_("SensorBlueLevel"), N_("Sensor blue level"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x0006, "WhiteBalanceRed", N_("WhiteBalanceRed"), N_("White balance red"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0006, "WhiteBalanceRed", N_("WhiteBalanceRed"), N_("White balance red"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x0007, "WhiteBalanceBlue", N_("WhiteBalanceBlue"), N_("White balance blue"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0007, "WhiteBalanceBlue", N_("WhiteBalanceBlue"), N_("White balance blue"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x0008, "WhiteBalance", N_("WhiteBalance"), N_("White balance"), canonPrIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonSiWhiteBalance)), TagInfo(0x0008, "WhiteBalance", N_("WhiteBalance"), N_("White balance"), canonPrId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonSiWhiteBalance)),
TagInfo(0x0009, "ColorTemperature", N_("ColorTemperature"), N_("Color Temperature"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x0009, "ColorTemperature", N_("ColorTemperature"), N_("Color Temperature"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x000a, "PictureStyle", N_("PictureStyle"), N_("Picture style"), canonPrIfdId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonPictureStyle)), TagInfo(0x000a, "PictureStyle", N_("PictureStyle"), N_("Picture style"), canonPrId, makerTags, signedShort, 1, EXV_PRINT_TAG(canonPictureStyle)),
TagInfo(0x000b, "DigitalGain", N_("DigitalGain"), N_("Digital gain"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x000b, "DigitalGain", N_("DigitalGain"), N_("Digital gain"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x000c, "WBShiftAB", N_("WBShiftAB"), N_("WBShift AB"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x000c, "WBShiftAB", N_("WBShiftAB"), N_("WBShift AB"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0x000d, "WBShiftGM", N_("WBShiftGM"), N_("WB Shift GM"), canonPrIfdId, makerTags, signedShort, 1, printValue), TagInfo(0x000d, "WBShiftGM", N_("WBShiftGM"), N_("WB Shift GM"), canonPrId, makerTags, signedShort, 1, printValue),
TagInfo(0xffff, "(UnknownCanonPrTag)", "(UnknownCanonPrTag)", N_("Unknown Canon Processing Info tag"), canonPrIfdId, makerTags, signedShort, 1, printValue) TagInfo(0xffff, "(UnknownCanonPrTag)", "(UnknownCanonPrTag)", N_("Unknown Canon Processing Info tag"), canonPrId, makerTags, signedShort, 1, printValue)
}; };
const TagInfo* CanonMakerNote::tagListPr() const TagInfo* CanonMakerNote::tagListPr()

@ -270,33 +270,33 @@ namespace Exiv2 {
the other parameters in the mapping structure. the other parameters in the mapping structure.
*/ */
const CrwMapping CrwMap::crwMapping_[] = { const CrwMapping CrwMap::crwMapping_[] = {
// CrwTag CrwDir Size ExifTag IfdId decodeFct encodeFct // CrwTag CrwDir Size ExifTag IfdId decodeFct encodeFct
// ------ ------ ---- ------- ----- --------- --------- // ------ ------ ---- ------- ----- --------- ---------
CrwMapping(0x0805, 0x300a, 0, 0, canonIfdId, decode0x0805, encode0x0805), CrwMapping(0x0805, 0x300a, 0, 0, canonId, decode0x0805, encode0x0805),
CrwMapping(0x080a, 0x2807, 0, 0, canonIfdId, decode0x080a, encode0x080a), CrwMapping(0x080a, 0x2807, 0, 0, canonId, decode0x080a, encode0x080a),
CrwMapping(0x080b, 0x3004, 0, 0x0007, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x080b, 0x3004, 0, 0x0007, canonId, decodeBasic, encodeBasic),
CrwMapping(0x0810, 0x2807, 0, 0x0009, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x0810, 0x2807, 0, 0x0009, canonId, decodeBasic, encodeBasic),
CrwMapping(0x0815, 0x2804, 0, 0x0006, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x0815, 0x2804, 0, 0x0006, canonId, decodeBasic, encodeBasic),
CrwMapping(0x1029, 0x300b, 0, 0x0002, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x1029, 0x300b, 0, 0x0002, canonId, decodeBasic, encodeBasic),
CrwMapping(0x102a, 0x300b, 0, 0x0004, canonIfdId, decodeArray, encodeArray), CrwMapping(0x102a, 0x300b, 0, 0x0004, canonId, decodeArray, encodeArray),
CrwMapping(0x102d, 0x300b, 0, 0x0001, canonIfdId, decodeArray, encodeArray), CrwMapping(0x102d, 0x300b, 0, 0x0001, canonId, decodeArray, encodeArray),
CrwMapping(0x1033, 0x300b, 0, 0x000f, canonIfdId, decodeArray, encodeArray), CrwMapping(0x1033, 0x300b, 0, 0x000f, canonId, decodeArray, encodeArray),
CrwMapping(0x1038, 0x300b, 0, 0x0012, canonIfdId, decodeArray, encodeArray), CrwMapping(0x1038, 0x300b, 0, 0x0012, canonId, decodeArray, encodeArray),
CrwMapping(0x10a9, 0x300b, 0, 0x00a9, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x10a9, 0x300b, 0, 0x00a9, canonId, decodeBasic, encodeBasic),
// Mapped to Exif.Photo.ColorSpace instead (see below) // Mapped to Exif.Photo.ColorSpace instead (see below)
//CrwMapping(0x10b4, 0x300b, 0, 0x00b4, canonIfdId, decodeBasic, encodeBasic), //CrwMapping(0x10b4, 0x300b, 0, 0x00b4, canonId, decodeBasic, encodeBasic),
CrwMapping(0x10b4, 0x300b, 0, 0xa001, exifIfdId, decodeBasic, encodeBasic), CrwMapping(0x10b4, 0x300b, 0, 0xa001, exifId, decodeBasic, encodeBasic),
CrwMapping(0x10b5, 0x300b, 0, 0x00b5, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x10b5, 0x300b, 0, 0x00b5, canonId, decodeBasic, encodeBasic),
CrwMapping(0x10c0, 0x300b, 0, 0x00c0, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x10c0, 0x300b, 0, 0x00c0, canonId, decodeBasic, encodeBasic),
CrwMapping(0x10c1, 0x300b, 0, 0x00c1, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x10c1, 0x300b, 0, 0x00c1, canonId, decodeBasic, encodeBasic),
CrwMapping(0x1807, 0x3002, 0, 0x9206, exifIfdId, decodeBasic, encodeBasic), CrwMapping(0x1807, 0x3002, 0, 0x9206, exifId, decodeBasic, encodeBasic),
CrwMapping(0x180b, 0x3004, 0, 0x000c, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x180b, 0x3004, 0, 0x000c, canonId, decodeBasic, encodeBasic),
CrwMapping(0x180e, 0x300a, 0, 0x9003, exifIfdId, decode0x180e, encode0x180e), CrwMapping(0x180e, 0x300a, 0, 0x9003, exifId, decode0x180e, encode0x180e),
CrwMapping(0x1810, 0x300a, 0, 0xa002, exifIfdId, decode0x1810, encode0x1810), CrwMapping(0x1810, 0x300a, 0, 0xa002, exifId, decode0x1810, encode0x1810),
CrwMapping(0x1817, 0x300a, 4, 0x0008, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x1817, 0x300a, 4, 0x0008, canonId, decodeBasic, encodeBasic),
//CrwMapping(0x1818, 0x3002, 0, 0x9204, exifIfdId, decodeBasic, encodeBasic), //CrwMapping(0x1818, 0x3002, 0, 0x9204, exifId, decodeBasic, encodeBasic),
CrwMapping(0x183b, 0x300b, 0, 0x0015, canonIfdId, decodeBasic, encodeBasic), CrwMapping(0x183b, 0x300b, 0, 0x0015, canonId, decodeBasic, encodeBasic),
CrwMapping(0x2008, 0x0000, 0, 0, ifd1Id, decode0x2008, encode0x2008), CrwMapping(0x2008, 0x0000, 0, 0, ifd1Id, decode0x2008, encode0x2008),
// End of list marker // End of list marker
CrwMapping(0x0000, 0x0000, 0, 0x0000, ifdIdNotSet, 0, 0) CrwMapping(0x0000, 0x0000, 0, 0x0000, ifdIdNotSet, 0, 0)
}; // CrwMap::crwMapping_[] }; // CrwMap::crwMapping_[]
@ -1011,28 +1011,28 @@ namespace Exiv2 {
IfdId ifdId = ifdIdNotSet; IfdId ifdId = ifdIdNotSet;
switch (pCrwMapping->tag_) { switch (pCrwMapping->tag_) {
case 0x0001: ifdId = canonCsIfdId; break; case 0x0001: ifdId = canonCsId; break;
case 0x0004: ifdId = canonSiIfdId; break; case 0x0004: ifdId = canonSiId; break;
case 0x000f: ifdId = canonCfIfdId; break; case 0x000f: ifdId = canonCfId; break;
case 0x0012: ifdId = canonPiIfdId; break; case 0x0012: ifdId = canonPiId; break;
} }
assert(ifdId != ifdIdNotSet); assert(ifdId != ifdIdNotSet);
std::string ifdItem(Internal::ifdItem(ifdId)); std::string groupName(Internal::groupName(ifdId));
uint16_t c = 1; uint16_t c = 1;
while (uint32_t(c)*2 < ciffComponent.size()) { while (uint32_t(c)*2 < ciffComponent.size()) {
uint16_t n = 1; uint16_t n = 1;
ExifKey key(c, ifdItem); ExifKey key(c, groupName);
UShortValue value; UShortValue value;
if (ifdId == canonCsIfdId && c == 23 && ciffComponent.size() > 50) n = 3; if (ifdId == canonCsId && c == 23 && ciffComponent.size() > 50) n = 3;
value.read(ciffComponent.pData() + c*2, n*2, byteOrder); value.read(ciffComponent.pData() + c*2, n*2, byteOrder);
image.exifData().add(key, &value); image.exifData().add(key, &value);
if (ifdId == canonSiIfdId && c == 21) aperture = value.toLong(); if (ifdId == canonSiId && c == 21) aperture = value.toLong();
if (ifdId == canonSiIfdId && c == 22) shutterSpeed = value.toLong(); if (ifdId == canonSiId && c == 22) shutterSpeed = value.toLong();
c += n; c += n;
} }
if (ifdId == canonSiIfdId) { if (ifdId == canonSiId) {
// Exif.Photo.FNumber // Exif.Photo.FNumber
float f = fnumber(canonEv(aperture)); float f = fnumber(canonEv(aperture));
URational ur = floatToRationalCast(f); URational ur = floatToRationalCast(f);
@ -1072,7 +1072,7 @@ namespace Exiv2 {
char s[m]; char s[m];
std::strftime(s, m, "%Y:%m:%d %H:%M:%S", tm); std::strftime(s, m, "%Y:%m:%d %H:%M:%S", tm);
ExifKey key(pCrwMapping->tag_, Internal::ifdItem(pCrwMapping->ifdId_)); ExifKey key(pCrwMapping->tag_, Internal::groupName(pCrwMapping->ifdId_));
AsciiValue value; AsciiValue value;
value.read(std::string(s)); value.read(std::string(s));
image.exifData().add(key, &value); image.exifData().add(key, &value);
@ -1120,7 +1120,7 @@ namespace Exiv2 {
{ {
assert(pCrwMapping != 0); assert(pCrwMapping != 0);
// create a key and value pair // create a key and value pair
ExifKey key(pCrwMapping->tag_, Internal::ifdItem(pCrwMapping->ifdId_)); ExifKey key(pCrwMapping->tag_, Internal::groupName(pCrwMapping->ifdId_));
Value::AutoPtr value; Value::AutoPtr value;
if (ciffComponent.typeId() != directory) { if (ciffComponent.typeId() != directory) {
value = Value::create(ciffComponent.typeId()); value = Value::create(ciffComponent.typeId());
@ -1175,7 +1175,7 @@ namespace Exiv2 {
assert(pHead != 0); assert(pHead != 0);
// Determine the source Exif metadatum // Determine the source Exif metadatum
ExifKey ek(pCrwMapping->tag_, Internal::ifdItem(pCrwMapping->ifdId_)); ExifKey ek(pCrwMapping->tag_, Internal::groupName(pCrwMapping->ifdId_));
ExifData::const_iterator ed = image.exifData().findKey(ek); ExifData::const_iterator ed = image.exifData().findKey(ek);
// Set the new value or remove the entry // Set the new value or remove the entry
@ -1254,10 +1254,10 @@ namespace Exiv2 {
IfdId ifdId = ifdIdNotSet; IfdId ifdId = ifdIdNotSet;
switch (pCrwMapping->tag_) { switch (pCrwMapping->tag_) {
case 0x0001: ifdId = canonCsIfdId; break; case 0x0001: ifdId = canonCsId; break;
case 0x0004: ifdId = canonSiIfdId; break; case 0x0004: ifdId = canonSiId; break;
case 0x000f: ifdId = canonCfIfdId; break; case 0x000f: ifdId = canonCfId; break;
case 0x0012: ifdId = canonPiIfdId; break; case 0x0012: ifdId = canonPiId; break;
} }
assert(ifdId != ifdIdNotSet); assert(ifdId != ifdIdNotSet);
DataBuf buf = packIfdId(image.exifData(), ifdId, pHead->byteOrder()); DataBuf buf = packIfdId(image.exifData(), ifdId, pHead->byteOrder());
@ -1283,7 +1283,7 @@ namespace Exiv2 {
assert(pHead != 0); assert(pHead != 0);
time_t t = 0; time_t t = 0;
const ExifKey key(pCrwMapping->tag_, Internal::ifdItem(pCrwMapping->ifdId_)); const ExifKey key(pCrwMapping->tag_, Internal::groupName(pCrwMapping->ifdId_));
const ExifData::const_iterator ed = image.exifData().findKey(key); const ExifData::const_iterator ed = image.exifData().findKey(key);
if (ed != image.exifData().end()) { if (ed != image.exifData().end()) {
struct tm tm; struct tm tm;

@ -693,7 +693,7 @@ namespace Exiv2 {
subImage7Id, subImage7Id,
subImage8Id, subImage8Id,
subImage9Id, subImage9Id,
panaRawIfdId, panaRawId,
ifd2Id, ifd2Id,
ifd3Id ifd3Id
}; };
@ -786,7 +786,7 @@ namespace Exiv2 {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: Exif IFD " << filteredPvTags[i].key_ << " not encoded\n"; std::cerr << "Warning: Exif IFD " << filteredPvTags[i].key_ << " not encoded\n";
#endif #endif
eraseIfd(ed, Internal::ifdIdByIfdItem(filteredPvTags[i].key_)); eraseIfd(ed, Internal::groupId(filteredPvTags[i].key_));
} }
break; break;
} }

@ -175,108 +175,108 @@ namespace Exiv2 {
const TagInfo FujiMakerNote::tagInfo_[] = { const TagInfo FujiMakerNote::tagInfo_[] = {
TagInfo(0x0000, "Version", N_("Version"), TagInfo(0x0000, "Version", N_("Version"),
N_("Fujifilm Makernote version"), N_("Fujifilm Makernote version"),
fujiIfdId, makerTags, undefined, -1, printValue), fujiId, makerTags, undefined, -1, printValue),
TagInfo(0x0010, "SerialNumber", N_("Serial Number"), TagInfo(0x0010, "SerialNumber", N_("Serial Number"),
N_("This number is unique, and contains the date of manufacture, " N_("This number is unique, and contains the date of manufacture, "
"but is not the same as the number printed on the camera body."), "but is not the same as the number printed on the camera body."),
fujiIfdId, makerTags, asciiString, -1, printValue), fujiId, makerTags, asciiString, -1, printValue),
TagInfo(0x1000, "Quality", N_("Quality"), TagInfo(0x1000, "Quality", N_("Quality"),
N_("Image quality setting"), N_("Image quality setting"),
fujiIfdId, makerTags, asciiString, -1, printValue), fujiId, makerTags, asciiString, -1, printValue),
TagInfo(0x1001, N_("Sharpness"), N_("Sharpness"), TagInfo(0x1001, N_("Sharpness"), N_("Sharpness"),
N_("Sharpness setting"), N_("Sharpness setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiSharpness)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiSharpness)),
TagInfo(0x1002, "WhiteBalance", N_("White Balance"), TagInfo(0x1002, "WhiteBalance", N_("White Balance"),
N_("White balance setting"), N_("White balance setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiWhiteBalance)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiWhiteBalance)),
TagInfo(0x1003, "Color", N_("Color"), TagInfo(0x1003, "Color", N_("Color"),
N_("Chroma saturation setting"), N_("Chroma saturation setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiColor)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiColor)),
TagInfo(0x1004, "Tone", N_("Tone"), TagInfo(0x1004, "Tone", N_("Tone"),
N_("Contrast setting"), N_("Contrast setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiTone)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiTone)),
TagInfo(0x1010, "FlashMode", N_("Flash Mode"), TagInfo(0x1010, "FlashMode", N_("Flash Mode"),
N_("Flash firing mode setting"), N_("Flash firing mode setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFlashMode)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFlashMode)),
TagInfo(0x1011, "FlashStrength", N_("Flash Strength"), TagInfo(0x1011, "FlashStrength", N_("Flash Strength"),
N_("Flash firing strength compensation setting"), N_("Flash firing strength compensation setting"),
fujiIfdId, makerTags, signedRational, -1, printValue), fujiId, makerTags, signedRational, -1, printValue),
TagInfo(0x1020, "Macro", N_("Macro"), TagInfo(0x1020, "Macro", N_("Macro"),
N_("Macro mode setting"), N_("Macro mode setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)),
TagInfo(0x1021, "FocusMode", N_("Focus Mode"), TagInfo(0x1021, "FocusMode", N_("Focus Mode"),
N_("Focusing mode setting"), N_("Focusing mode setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFocusMode)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFocusMode)),
TagInfo(0x1022, "0x1022", "0x1022", TagInfo(0x1022, "0x1022", "0x1022",
N_("Unknown"), N_("Unknown"),
fujiIfdId, makerTags, unsignedShort, -1, printValue), fujiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1030, "SlowSync", N_("Slow Sync"), TagInfo(0x1030, "SlowSync", N_("Slow Sync"),
N_("Slow synchro mode setting"), N_("Slow synchro mode setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)),
TagInfo(0x1031, "PictureMode", N_("Picture Mode"), TagInfo(0x1031, "PictureMode", N_("Picture Mode"),
N_("Picture mode setting"), N_("Picture mode setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiPictureMode)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiPictureMode)),
TagInfo(0x1032, "0x1032", "0x1032", TagInfo(0x1032, "0x1032", "0x1032",
N_("Unknown"), N_("Unknown"),
fujiIfdId, makerTags, unsignedShort, -1, printValue), fujiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1100, "Continuous", N_("Continuous"), TagInfo(0x1100, "Continuous", N_("Continuous"),
N_("Continuous shooting or auto bracketing setting"), N_("Continuous shooting or auto bracketing setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiContinuous)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiContinuous)),
TagInfo(0x1101, "SequenceNumber", N_("Sequence Number"), TagInfo(0x1101, "SequenceNumber", N_("Sequence Number"),
N_("Sequence number"), N_("Sequence number"),
fujiIfdId, makerTags, unsignedShort, -1, printValue), fujiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1200, "0x1200", "0x1200", TagInfo(0x1200, "0x1200", "0x1200",
N_("Unknown"), N_("Unknown"),
fujiIfdId, makerTags, unsignedShort, -1, printValue), fujiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1210, "FinePixColor", N_("FinePix Color"), TagInfo(0x1210, "FinePixColor", N_("FinePix Color"),
N_("Fuji FinePix color setting"), N_("Fuji FinePix color setting"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFinePixColor)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFinePixColor)),
TagInfo(0x1300, "BlurWarning", N_("Blur Warning"), TagInfo(0x1300, "BlurWarning", N_("Blur Warning"),
N_("Blur warning status"), N_("Blur warning status"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)),
TagInfo(0x1301, "FocusWarning", N_("Focus Warning"), TagInfo(0x1301, "FocusWarning", N_("Focus Warning"),
N_("Auto Focus warning status"), N_("Auto Focus warning status"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)),
TagInfo(0x1302, "ExposureWarning", N_("Exposure Warning"), TagInfo(0x1302, "ExposureWarning", N_("Exposure Warning"),
N_("Auto exposure warning status"), N_("Auto exposure warning status"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiOffOn)),
TagInfo(0x1400, "DynamicRange", N_("Dynamic Range"), TagInfo(0x1400, "DynamicRange", N_("Dynamic Range"),
N_("Dynamic range"), N_("Dynamic range"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDynamicRange)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDynamicRange)),
TagInfo(0x1401, "FilmMode", N_("Film Mode"), TagInfo(0x1401, "FilmMode", N_("Film Mode"),
N_("Film mode"), N_("Film mode"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFilmMode)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiFilmMode)),
TagInfo(0x1402, "DynamicRangeSetting", N_("Dynamic Range Setting"), TagInfo(0x1402, "DynamicRangeSetting", N_("Dynamic Range Setting"),
N_("Dynamic range settings"), N_("Dynamic range settings"),
fujiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDynamicRangeSetting)), fujiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(fujiDynamicRangeSetting)),
TagInfo(0x1403, "DevelopmentDynamicRange", N_("Development Dynamic Range"), TagInfo(0x1403, "DevelopmentDynamicRange", N_("Development Dynamic Range"),
N_("Development dynamic range"), N_("Development dynamic range"),
fujiIfdId, makerTags, unsignedShort, -1, printValue), fujiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1404, "MinFocalLength", N_("Minimum Focal Length"), TagInfo(0x1404, "MinFocalLength", N_("Minimum Focal Length"),
N_("Minimum focal length"), N_("Minimum focal length"),
fujiIfdId, makerTags, unsignedRational, -1, printValue), fujiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x1405, "MaxFocalLength", N_("Maximum Focal Length"), TagInfo(0x1405, "MaxFocalLength", N_("Maximum Focal Length"),
N_("Maximum focal length"), N_("Maximum focal length"),
fujiIfdId, makerTags, unsignedRational, -1, printValue), fujiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x1406, "MaxApertureAtMinFocal", N_("Maximum Aperture at Mininimum Focal"), TagInfo(0x1406, "MaxApertureAtMinFocal", N_("Maximum Aperture at Mininimum Focal"),
N_("Maximum aperture at mininimum focal"), N_("Maximum aperture at mininimum focal"),
fujiIfdId, makerTags, unsignedRational, -1, printValue), fujiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x1407, "MaxApertureAtMaxFocal", N_("Maximum Aperture at Maxinimum Focal"), TagInfo(0x1407, "MaxApertureAtMaxFocal", N_("Maximum Aperture at Maxinimum Focal"),
N_("Maximum aperture at maxinimum focal"), N_("Maximum aperture at maxinimum focal"),
fujiIfdId, makerTags, unsignedRational, -1, printValue), fujiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x8000, "FileSource", N_("File Source"), TagInfo(0x8000, "FileSource", N_("File Source"),
N_("File source"), N_("File source"),
fujiIfdId, makerTags, asciiString, -1, printValue), fujiId, makerTags, asciiString, -1, printValue),
TagInfo(0x8002, "OrderNumber", N_("Order Number"), TagInfo(0x8002, "OrderNumber", N_("Order Number"),
N_("Order number"), N_("Order number"),
fujiIfdId, makerTags, unsignedLong, -1, printValue), fujiId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x8003, "FrameNumber", N_("Frame Number"), TagInfo(0x8003, "FrameNumber", N_("Frame Number"),
N_("Frame number"), N_("Frame number"),
fujiIfdId, makerTags, unsignedShort, -1, printValue), fujiId, makerTags, unsignedShort, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "(UnknownFujiMakerNoteTag)", TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "(UnknownFujiMakerNoteTag)",
N_("Unknown FujiMakerNote tag"), N_("Unknown FujiMakerNote tag"),
fujiIfdId, makerTags, asciiString, -1, printValue) fujiId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* FujiMakerNote::tagList() const TagInfo* FujiMakerNote::tagList()

@ -61,25 +61,25 @@ namespace Exiv2 {
namespace Internal { namespace Internal {
const TiffMnRegistry TiffMnCreator::registry_[] = { const TiffMnRegistry TiffMnCreator::registry_[] = {
{ "Canon", Group::canonmn, newIfdMn, newIfdMn2 }, { "Canon", canonId, newIfdMn, newIfdMn2 },
{ "FOVEON", Group::sigmamn, newSigmaMn, newSigmaMn2 }, { "FOVEON", sigmaId, newSigmaMn, newSigmaMn2 },
{ "FUJI", Group::fujimn, newFujiMn, newFujiMn2 }, { "FUJI", fujiId, newFujiMn, newFujiMn2 },
{ "KONICA MINOLTA", Group::minoltamn, newIfdMn, newIfdMn2 }, { "KONICA MINOLTA", minoltaId, newIfdMn, newIfdMn2 },
{ "Minolta", Group::minoltamn, newIfdMn, newIfdMn2 }, { "Minolta", minoltaId, newIfdMn, newIfdMn2 },
{ "NIKON", Group::nikonmn, newNikonMn, 0 }, { "NIKON", ifdIdNotSet, newNikonMn, 0 }, // mnGroup_ is not used
{ "OLYMPUS", Group::olympmn, newOlympusMn, 0 }, { "OLYMPUS", ifdIdNotSet, newOlympusMn, 0 }, // mnGroup_ is not used
{ "Panasonic", Group::panamn, newPanasonicMn, newPanasonicMn2 }, { "Panasonic", panasonicId, newPanasonicMn, newPanasonicMn2 },
{ "PENTAX", Group::pentaxmn, newPentaxMn, newPentaxMn2 }, { "PENTAX", pentaxId, newPentaxMn, newPentaxMn2 },
{ "SIGMA", Group::sigmamn, newSigmaMn, newSigmaMn2 }, { "SIGMA", sigmaId, newSigmaMn, newSigmaMn2 },
{ "SONY", Group::sonymn, newSonyMn, 0 }, { "SONY", ifdIdNotSet, newSonyMn, 0 }, // mnGroup_ is not used
// Entries below are only used for lookup by group // Entries below are only used for lookup by group
{ "-", Group::nikon1mn, 0, newIfdMn2 }, { "-", nikon1Id, 0, newIfdMn2 },
{ "-", Group::nikon2mn, 0, newNikon2Mn2 }, { "-", nikon2Id, 0, newNikon2Mn2 },
{ "-", Group::nikon3mn, 0, newNikon3Mn2 }, { "-", nikon3Id, 0, newNikon3Mn2 },
{ "-", Group::sony1mn, 0, newSony1Mn2 }, { "-", sony1Id, 0, newSony1Mn2 },
{ "-", Group::sony2mn, 0, newSony2Mn2 }, { "-", sony2Id, 0, newSony2Mn2 },
{ "-", Group::olymp1mn, 0, newOlympusMn2 }, { "-", olympusId, 0, newOlympusMn2 },
{ "-", Group::olymp2mn, 0, newOlympus2Mn2 } { "-", olympus2Id, 0, newOlympus2Mn2 }
}; };
bool TiffMnRegistry::operator==(const std::string& key) const bool TiffMnRegistry::operator==(const std::string& key) const
@ -88,13 +88,13 @@ namespace Exiv2 {
return make == key.substr(0, make.length()); return make == key.substr(0, make.length());
} }
bool TiffMnRegistry::operator==(const uint16_t& key) const bool TiffMnRegistry::operator==(IfdId key) const
{ {
return mnGroup_ == key; return mnGroup_ == key;
} }
TiffComponent* TiffMnCreator::create(uint16_t tag, TiffComponent* TiffMnCreator::create(uint16_t tag,
uint16_t group, IfdId group,
const std::string& make, const std::string& make,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
@ -115,12 +115,19 @@ namespace Exiv2 {
} // TiffMnCreator::create } // TiffMnCreator::create
TiffComponent* TiffMnCreator::create(uint16_t tag, TiffComponent* TiffMnCreator::create(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
TiffComponent* tc = 0; TiffComponent* tc = 0;
const TiffMnRegistry* tmr = find(registry_, mnGroup); const TiffMnRegistry* tmr = find(registry_, mnGroup);
if (tmr) { if (tmr) {
if (tmr->newMnFct2_ == 0) {
std::cout << "mnGroup = " << mnGroup << "\n";
}
assert(tmr->newMnFct2_); assert(tmr->newMnFct2_);
tc = tmr->newMnFct2_(tag, group, mnGroup); tc = tmr->newMnFct2_(tag, group, mnGroup);
} }
@ -601,8 +608,8 @@ namespace Exiv2 {
// free functions // free functions
TiffComponent* newIfdMn(uint16_t tag, TiffComponent* newIfdMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* /*pData*/, const byte* /*pData*/,
uint32_t /*size*/, uint32_t /*size*/,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
@ -611,43 +618,43 @@ namespace Exiv2 {
} }
TiffComponent* newIfdMn2(uint16_t tag, TiffComponent* newIfdMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, 0); return new TiffIfdMakernote(tag, group, mnGroup, 0);
} }
TiffComponent* newOlympusMn(uint16_t tag, TiffComponent* newOlympusMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t /*mnGroup*/, IfdId /*mnGroup*/,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
{ {
if (size < 10 || std::string(reinterpret_cast<const char*>(pData), 10) if (size < 10 || std::string(reinterpret_cast<const char*>(pData), 10)
!= std::string("OLYMPUS\0II", 10)) { != std::string("OLYMPUS\0II", 10)) {
return newOlympusMn2(tag, group, Group::olymp1mn); return newOlympusMn2(tag, group, olympusId);
} }
return newOlympus2Mn2(tag, group, Group::olymp2mn); return newOlympus2Mn2(tag, group, olympus2Id);
} }
TiffComponent* newOlympusMn2(uint16_t tag, TiffComponent* newOlympusMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new OlympusMnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new OlympusMnHeader);
} }
TiffComponent* newOlympus2Mn2(uint16_t tag, TiffComponent* newOlympus2Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new Olympus2MnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new Olympus2MnHeader);
} }
TiffComponent* newFujiMn(uint16_t tag, TiffComponent* newFujiMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* /*pData*/, const byte* /*pData*/,
uint32_t /*size*/, uint32_t /*size*/,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
@ -656,15 +663,15 @@ namespace Exiv2 {
} }
TiffComponent* newFujiMn2(uint16_t tag, TiffComponent* newFujiMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new FujiMnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new FujiMnHeader);
} }
TiffComponent* newNikonMn(uint16_t tag, TiffComponent* newNikonMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t /*mnGroup*/, IfdId /*mnGroup*/,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
@ -672,7 +679,7 @@ namespace Exiv2 {
// If there is no "Nikon" string it must be Nikon1 format // If there is no "Nikon" string it must be Nikon1 format
if (size < 6 || std::string(reinterpret_cast<const char*>(pData), 6) if (size < 6 || std::string(reinterpret_cast<const char*>(pData), 6)
!= std::string("Nikon\0", 6)) { != std::string("Nikon\0", 6)) {
return newIfdMn2(tag, group, Group::nikon1mn); return newIfdMn2(tag, group, nikon1Id);
} }
// If the "Nikon" string is not followed by a TIFF header, we assume // If the "Nikon" string is not followed by a TIFF header, we assume
// Nikon2 format // Nikon2 format
@ -680,29 +687,29 @@ namespace Exiv2 {
if ( size < 18 if ( size < 18
|| !tiffHeader.read(pData + 10, size - 10) || !tiffHeader.read(pData + 10, size - 10)
|| tiffHeader.tag() != 0x002a) { || tiffHeader.tag() != 0x002a) {
return newNikon2Mn2(tag, group, Group::nikon2mn); return newNikon2Mn2(tag, group, nikon2Id);
} }
// Else we have a Nikon3 makernote // Else we have a Nikon3 makernote
return newNikon3Mn2(tag, group, Group::nikon3mn); return newNikon3Mn2(tag, group, nikon3Id);
} }
TiffComponent* newNikon2Mn2(uint16_t tag, TiffComponent* newNikon2Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new Nikon2MnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new Nikon2MnHeader);
} }
TiffComponent* newNikon3Mn2(uint16_t tag, TiffComponent* newNikon3Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new Nikon3MnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new Nikon3MnHeader);
} }
TiffComponent* newPanasonicMn(uint16_t tag, TiffComponent* newPanasonicMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* /*pData*/, const byte* /*pData*/,
uint32_t /*size*/, uint32_t /*size*/,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
@ -711,32 +718,32 @@ namespace Exiv2 {
} }
TiffComponent* newPanasonicMn2(uint16_t tag, TiffComponent* newPanasonicMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new PanasonicMnHeader, false); return new TiffIfdMakernote(tag, group, mnGroup, new PanasonicMnHeader, false);
} }
TiffComponent* newPentaxMn(uint16_t tag, TiffComponent* newPentaxMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* /*pData*/, const byte* /*pData*/,
uint32_t /*size*/, uint32_t /*size*/,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
{ {
return newPentaxMn2(tag, group, mnGroup); return newPentaxMn2(tag, group, mnGroup);
} }
TiffComponent* newPentaxMn2(uint16_t tag, TiffComponent* newPentaxMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new PentaxMnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new PentaxMnHeader);
} }
TiffComponent* newSigmaMn(uint16_t tag, TiffComponent* newSigmaMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* /*pData*/, const byte* /*pData*/,
uint32_t /*size*/, uint32_t /*size*/,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
@ -745,15 +752,15 @@ namespace Exiv2 {
} }
TiffComponent* newSigmaMn2(uint16_t tag, TiffComponent* newSigmaMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new SigmaMnHeader); return new TiffIfdMakernote(tag, group, mnGroup, new SigmaMnHeader);
} }
TiffComponent* newSonyMn(uint16_t tag, TiffComponent* newSonyMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t /*mnGroup*/, IfdId /*mnGroup*/,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder /*byteOrder*/) ByteOrder /*byteOrder*/)
@ -761,21 +768,21 @@ namespace Exiv2 {
// If there is no "SONY DSC " string we assume it's a simple IFD Makernote // If there is no "SONY DSC " string we assume it's a simple IFD Makernote
if (size < 12 || std::string(reinterpret_cast<const char*>(pData), 12) if (size < 12 || std::string(reinterpret_cast<const char*>(pData), 12)
!= std::string("SONY DSC \0\0\0", 12)) { != std::string("SONY DSC \0\0\0", 12)) {
return newSony2Mn2(tag, group, Group::sony2mn); return newSony2Mn2(tag, group, sony2Id);
} }
return newSony1Mn2(tag, group, Group::sony1mn); return newSony1Mn2(tag, group, sony1Id);
} }
TiffComponent* newSony1Mn2(uint16_t tag, TiffComponent* newSony1Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, new SonyMnHeader, false); return new TiffIfdMakernote(tag, group, mnGroup, new SonyMnHeader, false);
} }
TiffComponent* newSony2Mn2(uint16_t tag, TiffComponent* newSony2Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup) IfdId mnGroup)
{ {
return new TiffIfdMakernote(tag, group, mnGroup, 0, true); return new TiffIfdMakernote(tag, group, mnGroup, 0, true);
} }
@ -857,14 +864,14 @@ namespace Exiv2 {
if (nci == 0 || nci->start_ == NA || size <= nci->start_) return buf; if (nci == 0 || nci->start_ == NA || size <= nci->start_) return buf;
// Find Exif.Nikon3.ShutterCount // Find Exif.Nikon3.ShutterCount
TiffFinder finder(0x00a7, Group::nikon3mn); TiffFinder finder(0x00a7, nikon3Id);
pRoot->accept(finder); pRoot->accept(finder);
TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result()); TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result());
if (!te || !te->pValue() || te->pValue()->count() == 0) return buf; if (!te || !te->pValue() || te->pValue()->count() == 0) return buf;
uint32_t count = static_cast<uint32_t>(te->pValue()->toLong()); uint32_t count = static_cast<uint32_t>(te->pValue()->toLong());
// Find Exif.Nikon3.SerialNumber // Find Exif.Nikon3.SerialNumber
finder.init(0x001d, Group::nikon3mn); finder.init(0x001d, nikon3Id);
pRoot->accept(finder); pRoot->accept(finder);
te = dynamic_cast<TiffEntryBase*>(finder.result()); te = dynamic_cast<TiffEntryBase*>(finder.result());
if (!te || !te->pValue() || te->pValue()->count() == 0) return buf; if (!te || !te->pValue() || te->pValue()->count() == 0) return buf;
@ -904,7 +911,7 @@ namespace Exiv2 {
namespace { namespace {
std::string getExifModel(Exiv2::Internal::TiffComponent* const pRoot) std::string getExifModel(Exiv2::Internal::TiffComponent* const pRoot)
{ {
Exiv2::Internal::TiffFinder finder(0x0110, Exiv2::Internal::Group::ifd0); // Exif.Image.Model Exiv2::Internal::TiffFinder finder(0x0110, Exiv2::Internal::ifd0Id); // Exif.Image.Model
pRoot->accept(finder); pRoot->accept(finder);
Exiv2::Internal::TiffEntryBase* te = dynamic_cast<Exiv2::Internal::TiffEntryBase*>(finder.result()); Exiv2::Internal::TiffEntryBase* te = dynamic_cast<Exiv2::Internal::TiffEntryBase*>(finder.result());
if (!te || !te->pValue() || te->pValue()->count() == 0) return std::string(); if (!te || !te->pValue() || te->pValue()->count() == 0) return std::string();

@ -35,6 +35,7 @@
// ***************************************************************************** // *****************************************************************************
// included header files // included header files
#include "tifffwd_int.hpp" #include "tifffwd_int.hpp"
#include "tags_int.hpp"
#include "types.hpp" #include "types.hpp"
// + standard includes // + standard includes
@ -45,103 +46,21 @@
namespace Exiv2 { namespace Exiv2 {
namespace Internal { namespace Internal {
namespace Group {
const uint16_t olympmn = 257; //!< any Olympus makernote
const uint16_t fujimn = 258; //!< Fujifilm makernote
const uint16_t canonmn = 259; //!< Canon makernote
const uint16_t canoncs = 260; //!< Canon camera settings
const uint16_t canonsi = 261; //!< Canon shot info
const uint16_t canoncf = 262; //!< Canon custom functions
const uint16_t nikonmn = 263; //!< Any Nikon makernote (pseudo group)
const uint16_t nikon1mn = 264; //!< Nikon1 makernote
const uint16_t nikon2mn = 265; //!< Nikon2 makernote
const uint16_t nikon3mn = 266; //!< Nikon3 makernote
const uint16_t panamn = 267; //!< Panasonic makernote
const uint16_t sigmamn = 268; //!< Sigma makernote
const uint16_t sonymn = 269; //!< Any Sony makernote (pseudo group)
const uint16_t sony1mn = 270; //!< Sony1 makernote
const uint16_t sony2mn = 271; //!< Sony2 makernote
const uint16_t minoltamn = 272; //!< Minolta makernote
const uint16_t minocso = 273; //!< Minolta camera settings (old)
const uint16_t minocsn = 274; //!< Minolta camera settings (new)
const uint16_t minocs5 = 275; //!< Minolta camera settings (D5)
const uint16_t minocs7 = 276; //!< Minolta camera settings (D7)
const uint16_t canonpi = 277; //!< Canon picture info
const uint16_t canonpa = 278; //!< Canon panorama
const uint16_t pentaxmn = 279; //!< Pentax makernote
const uint16_t nikonpv = 280; //!< Nikon preview sub-IFD
const uint16_t olymp1mn = 281; //!< Olympus makernote
const uint16_t olymp2mn = 282; //!< Olympus II makernote
const uint16_t olympcs = 283; //!< Olympus camera settings
const uint16_t olympeq = 284; //!< Olympus equipment tags
const uint16_t olymprd = 285; //!< Olympus raw development tags
const uint16_t olymprd2 = 286; //!< Olympus raw development 2 tags
const uint16_t olympip = 287; //!< Olympus image processing tags
const uint16_t olympfi = 288; //!< Olympus focus info tags
const uint16_t olympfe1 = 289; //!< Olympus FE 1 tags
const uint16_t olympfe2 = 290; //!< Olympus FE 2 tags
const uint16_t olympfe3 = 291; //!< Olympus FE 3 tags
const uint16_t olympfe4 = 292; //!< Olympus FE 4 tags
const uint16_t olympfe5 = 293; //!< Olympus FE 5 tags
const uint16_t olympfe6 = 294; //!< Olympus FE 6 tags
const uint16_t olympfe7 = 295; //!< Olympus FE 7 tags
const uint16_t olympfe8 = 296; //!< Olympus FE 8 tags
const uint16_t olympfe9 = 297; //!< Olympus FE 9 tags
const uint16_t olympri = 298; //!< Olympus raw info tags
const uint16_t nikonwt = 299; //!< Nikon World Time tags
const uint16_t nikonii = 300; //!< Nikon ISO Info tags
const uint16_t nikonld1 = 301; //!< Nikon Lens Data 1 tags
const uint16_t nikonld2 = 302; //!< Nikon Lens Data 2 tags
const uint16_t nikonld3 = 303; //!< Nikon Lens Data 3 tags
const uint16_t nikoncb1 = 304; //!< Nikon Color Balance 1 Tags
const uint16_t nikoncb2 = 305; //!< Nikon Color Balance 2 Tags
const uint16_t nikoncb2a = 306; //!< Nikon Color Balance 2 Tags
const uint16_t nikoncb2b = 307; //!< Nikon Color Balance 2 Tags
const uint16_t nikoncb3 = 308; //!< Nikon Color Balance 3 Tags
const uint16_t nikoncb4 = 309; //!< Nikon Color Balance 4 Tags
const uint16_t nikonvr = 310; //!< Nikon Vibration Reduction Tags
const uint16_t nikonpc = 311; //!< Nikon Picture Control Tags
const uint16_t nikonaf = 312; //!< Nikon Auto Focus Tags
const uint16_t nikonsi1 = 313; //!< Nikon Shot Info D80 Tags
const uint16_t nikonsi2 = 314; //!< Nikon Shot Info D40 Tags
const uint16_t nikonsi3 = 315; //!< Nikon Shot Info D300 Tags (a)
const uint16_t nikonsi4 = 316; //!< Nikon Shot Info D300 Tags (b)
const uint16_t nikonsi5 = 317; //!< Nikon Shot Info v2.* Tags
const uint16_t nikonsi6 = 318; //!< Nikon Shot Info v1.* Tags
const uint16_t canonfi = 320; //!< Canon File Info
const uint16_t sonymltmn = 330; //!< Sony Minolta Makernotes
const uint16_t sony1cs = 331; //!< Sony Camera Settings (in Sony1 makernote)
const uint16_t sony1cs2 = 332; //!< Sony Camera Settings 2 (in Sony1 makernote)
const uint16_t sony1mcso = 333; //!< Minolta (old) Camera Settings (in Sony1 makernote)
const uint16_t sony1mcsn = 334; //!< Minolta (new) Camera Settings (in Sony1 makernote)
const uint16_t sony1mcsa100=335;//!< Sony A100 Camera Settings (in Sony1 makernote)
const uint16_t sony1mcs7 = 336; //!< Minolta D7 Camera Settings (in Sony1 makernote)
const uint16_t sony2cs = 337; //!< Sony Camera Settings (in Sony2 makernote)
const uint16_t sony2cs2 = 338; //!< Sony Camera Settings 2 (in Sony2 makernote)
const uint16_t nikonfi = 362; //!< Nikon File Info Tags
const uint16_t nikonaf2 = 363; //!< Nikon Auto Focus 2 Tags
const uint16_t nikonme = 364; //!< Nikon Multi Exposure Tags
const uint16_t nikonfl1 = 365; //!< Nikon Flash Info 1 Tags
const uint16_t nikonfl2 = 366; //!< Nikon Flash Info 2 Tags
const uint16_t nikonfl3 = 367; //!< Nikon Flash Info 3 Tags
const uint16_t canonpr = 368; //!< Canon ProcessingInfo Tags
}
// ***************************************************************************** // *****************************************************************************
// class definitions // class definitions
//! Type for a pointer to a function creating a makernote (image) //! Type for a pointer to a function creating a makernote (image)
typedef TiffComponent* (*NewMnFct)(uint16_t tag, typedef TiffComponent* (*NewMnFct)(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Type for a pointer to a function creating a makernote (group) //! Type for a pointer to a function creating a makernote (group)
typedef TiffComponent* (*NewMnFct2)(uint16_t tag, typedef TiffComponent* (*NewMnFct2)(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Makernote registry structure //! Makernote registry structure
struct TiffMnRegistry { struct TiffMnRegistry {
@ -156,11 +75,11 @@ namespace Exiv2 {
bool operator==(const std::string& key) const; bool operator==(const std::string& key) const;
//! Compare a TiffMnRegistry structure with a makernote group //! Compare a TiffMnRegistry structure with a makernote group
bool operator==(const uint16_t& key) const; bool operator==(IfdId key) const;
// DATA // DATA
const char* make_; //!< Camera make const char* make_; //!< Camera make
uint16_t mnGroup_; //!< Group identifier IfdId mnGroup_; //!< Group identifier
NewMnFct newMnFct_; //!< Makernote create function (image) NewMnFct newMnFct_; //!< Makernote create function (image)
NewMnFct2 newMnFct2_; //!< Makernote create function (group) NewMnFct2 newMnFct2_; //!< Makernote create function (group)
}; };
@ -182,7 +101,7 @@ namespace Exiv2 {
file dependencies. file dependencies.
*/ */
static TiffComponent* create(uint16_t tag, static TiffComponent* create(uint16_t tag,
uint16_t group, IfdId group,
const std::string& make, const std::string& make,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
@ -192,8 +111,8 @@ namespace Exiv2 {
when a makernote is written back from Exif tags. when a makernote is written back from Exif tags.
*/ */
static TiffComponent* create(uint16_t tag, static TiffComponent* create(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
protected: protected:
//! Prevent destruction (needed if used as a policy class) //! Prevent destruction (needed if used as a policy class)
@ -540,125 +459,125 @@ namespace Exiv2 {
//! Function to create a simple IFD makernote (Canon, Minolta, Nikon1) //! Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
TiffComponent* newIfdMn(uint16_t tag, TiffComponent* newIfdMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create a simple IFD makernote (Canon, Minolta, Nikon1) //! Function to create a simple IFD makernote (Canon, Minolta, Nikon1)
TiffComponent* newIfdMn2(uint16_t tag, TiffComponent* newIfdMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create an Olympus makernote //! Function to create an Olympus makernote
TiffComponent* newOlympusMn(uint16_t tag, TiffComponent* newOlympusMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create an Olympus makernote //! Function to create an Olympus makernote
TiffComponent* newOlympusMn2(uint16_t tag, TiffComponent* newOlympusMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create an Olympus II makernote //! Function to create an Olympus II makernote
TiffComponent* newOlympus2Mn2(uint16_t tag, TiffComponent* newOlympus2Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create a Fujifilm makernote //! Function to create a Fujifilm makernote
TiffComponent* newFujiMn(uint16_t tag, TiffComponent* newFujiMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create a Fujifilm makernote //! Function to create a Fujifilm makernote
TiffComponent* newFujiMn2(uint16_t tag, TiffComponent* newFujiMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
/*! /*!
@brief Function to create a Nikon makernote. This will create the @brief Function to create a Nikon makernote. This will create the
appropriate Nikon 1, 2 or 3 makernote, based on the arguments. appropriate Nikon 1, 2 or 3 makernote, based on the arguments.
*/ */
TiffComponent* newNikonMn(uint16_t tag, TiffComponent* newNikonMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create a Nikon2 makernote //! Function to create a Nikon2 makernote
TiffComponent* newNikon2Mn2(uint16_t tag, TiffComponent* newNikon2Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create a Nikon3 makernote //! Function to create a Nikon3 makernote
TiffComponent* newNikon3Mn2(uint16_t tag, TiffComponent* newNikon3Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create a Panasonic makernote //! Function to create a Panasonic makernote
TiffComponent* newPanasonicMn(uint16_t tag, TiffComponent* newPanasonicMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create a Panasonic makernote //! Function to create a Panasonic makernote
TiffComponent* newPanasonicMn2(uint16_t tag, TiffComponent* newPanasonicMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create an Pentax makernote //! Function to create an Pentax makernote
TiffComponent* newPentaxMn(uint16_t tag, TiffComponent* newPentaxMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create an Pentax makernote //! Function to create an Pentax makernote
TiffComponent* newPentaxMn2(uint16_t tag, TiffComponent* newPentaxMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create a Sigma makernote //! Function to create a Sigma makernote
TiffComponent* newSigmaMn(uint16_t tag, TiffComponent* newSigmaMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create a Sigma makernote //! Function to create a Sigma makernote
TiffComponent* newSigmaMn2(uint16_t tag, TiffComponent* newSigmaMn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create a Sony makernote //! Function to create a Sony makernote
TiffComponent* newSonyMn(uint16_t tag, TiffComponent* newSonyMn(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
const byte* pData, const byte* pData,
uint32_t size, uint32_t size,
ByteOrder byteOrder); ByteOrder byteOrder);
//! Function to create a Sony1 makernote //! Function to create a Sony1 makernote
TiffComponent* newSony1Mn2(uint16_t tag, TiffComponent* newSony1Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
//! Function to create a Sony2 makernote //! Function to create a Sony2 makernote
TiffComponent* newSony2Mn2(uint16_t tag, TiffComponent* newSony2Mn2(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup); IfdId mnGroup);
/*! /*!
@brief Function to select cfg + def of the Sony Camera Settings complex binary array. @brief Function to select cfg + def of the Sony Camera Settings complex binary array.

@ -89,104 +89,104 @@ namespace Exiv2 {
const TagInfo MinoltaMakerNote::tagInfo_[] = { const TagInfo MinoltaMakerNote::tagInfo_[] = {
TagInfo(0x0000, "Version", N_("Makernote Version"), TagInfo(0x0000, "Version", N_("Makernote Version"),
N_("String 'MLT0' (not null terminated)"), N_("String 'MLT0' (not null terminated)"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0001, "CameraSettingsStdOld", N_("Camera Settings (Std Old)"), TagInfo(0x0001, "CameraSettingsStdOld", N_("Camera Settings (Std Old)"),
N_("Standard Camera settings (Old Camera models like D5, D7, S304, and S404)"), N_("Standard Camera settings (Old Camera models like D5, D7, S304, and S404)"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0003, "CameraSettingsStdNew", N_("Camera Settings (Std New)"), TagInfo(0x0003, "CameraSettingsStdNew", N_("Camera Settings (Std New)"),
N_("Standard Camera settings (New Camera Models like D7u, D7i, and D7hi)"), N_("Standard Camera settings (New Camera Models like D7u, D7i, and D7hi)"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0004, "CameraSettings7D", N_("Camera Settings (7D)"), TagInfo(0x0004, "CameraSettings7D", N_("Camera Settings (7D)"),
N_("Camera Settings (for Dynax 7D model)"), N_("Camera Settings (for Dynax 7D model)"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0018, "ImageStabilizationData", N_("Image Stabilization Data"), TagInfo(0x0018, "ImageStabilizationData", N_("Image Stabilization Data"),
N_("Image stabilization data"), N_("Image stabilization data"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
// TODO: Implement WB Info A100 tags decoding. // TODO: Implement WB Info A100 tags decoding.
TagInfo(0x0020, "WBInfoA100", N_("WB Info A100"), TagInfo(0x0020, "WBInfoA100", N_("WB Info A100"),
N_("White balance information for the Sony DSLR-A100"), N_("White balance information for the Sony DSLR-A100"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0040, "CompressedImageSize", N_("Compressed Image Size"), TagInfo(0x0040, "CompressedImageSize", N_("Compressed Image Size"),
N_("Compressed image size"), N_("Compressed image size"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0081, "Thumbnail", N_("Thumbnail"), TagInfo(0x0081, "Thumbnail", N_("Thumbnail"),
N_("Jpeg thumbnail 640x480 pixels"), N_("Jpeg thumbnail 640x480 pixels"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0088, "ThumbnailOffset", N_("Thumbnail Offset"), TagInfo(0x0088, "ThumbnailOffset", N_("Thumbnail Offset"),
N_("Offset of the thumbnail"), N_("Offset of the thumbnail"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0089, "ThumbnailLength", N_("Thumbnail Length"), TagInfo(0x0089, "ThumbnailLength", N_("Thumbnail Length"),
N_("Size of the thumbnail"), N_("Size of the thumbnail"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0100, "SceneMode", N_("Scene Mode"), TagInfo(0x0100, "SceneMode", N_("Scene Mode"),
N_("Scene Mode"), N_("Scene Mode"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonySceneMode), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonySceneMode),
// TODO: for A100, use Sony table from printMinoltaSonyColorMode(). // TODO: for A100, use Sony table from printMinoltaSonyColorMode().
TagInfo(0x0101, "ColorMode", N_("Color Mode"), TagInfo(0x0101, "ColorMode", N_("Color Mode"),
N_("Color mode"), N_("Color mode"),
minoltaIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(minoltaColorMode)), minoltaId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(minoltaColorMode)),
TagInfo(0x0102, "Quality", N_("Image Quality"), TagInfo(0x0102, "Quality", N_("Image Quality"),
N_("Image quality"), N_("Image quality"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyImageQuality), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyImageQuality),
// TODO: Tag 0x0103 : quality or image size (see ExifTool doc). // TODO: Tag 0x0103 : quality or image size (see ExifTool doc).
TagInfo(0x0103, "0x0103", N_("0x0103"), TagInfo(0x0103, "0x0103", N_("0x0103"),
N_("0x0103"), N_("0x0103"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0104, "FlashExposureComp", N_("Flash Exposure Compensation"), TagInfo(0x0104, "FlashExposureComp", N_("Flash Exposure Compensation"),
N_("Flash exposure compensation in EV"), N_("Flash exposure compensation in EV"),
minoltaIfdId, makerTags, signedRational, -1, print0x9204), minoltaId, makerTags, signedRational, -1, print0x9204),
TagInfo(0x0105, "Teleconverter", N_("Teleconverter Model"), TagInfo(0x0105, "Teleconverter", N_("Teleconverter Model"),
N_("Teleconverter Model"), N_("Teleconverter Model"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyTeleconverterModel), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyTeleconverterModel),
TagInfo(0x0107, "ImageStabilization", N_("Image Stabilization"), TagInfo(0x0107, "ImageStabilization", N_("Image Stabilization"),
N_("Image stabilization"), N_("Image stabilization"),
minoltaIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(minoltaImageStabilization)), minoltaId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(minoltaImageStabilization)),
TagInfo(0x0109, "RawAndJpgRecording", N_("RAW+JPG Recording"), TagInfo(0x0109, "RawAndJpgRecording", N_("RAW+JPG Recording"),
N_("RAW and JPG files recording"), N_("RAW and JPG files recording"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyBoolValue), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyBoolValue),
TagInfo(0x010a, "ZoneMatching", N_("Zone Matching"), TagInfo(0x010a, "ZoneMatching", N_("Zone Matching"),
N_("Zone matching"), N_("Zone matching"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyZoneMatching), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyZoneMatching),
TagInfo(0x010b, "ColorTemperature", N_("Color Temperature"), TagInfo(0x010b, "ColorTemperature", N_("Color Temperature"),
N_("Color temperature"), N_("Color temperature"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x010c, "LensID", N_("Lens ID"), TagInfo(0x010c, "LensID", N_("Lens ID"),
N_("Lens identifier"), N_("Lens identifier"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyLensID), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyLensID),
TagInfo(0x0111, "ColorCompensationFilter", N_("Color Compensation Filter"), TagInfo(0x0111, "ColorCompensationFilter", N_("Color Compensation Filter"),
N_("Color Compensation Filter: negative is green, positive is magenta"), N_("Color Compensation Filter: negative is green, positive is magenta"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0112, "WhiteBalanceFineTune", N_("White Balance Fine Tune"), TagInfo(0x0112, "WhiteBalanceFineTune", N_("White Balance Fine Tune"),
N_("White Balance Fine Tune Value"), N_("White Balance Fine Tune Value"),
minoltaIfdId, makerTags, unsignedLong, -1, printValue), minoltaId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0113, "ImageStabilizationA100", N_("Image Stabilization A100"), TagInfo(0x0113, "ImageStabilizationA100", N_("Image Stabilization A100"),
N_("Image Stabilization for the Sony DSLR-A100"), N_("Image Stabilization for the Sony DSLR-A100"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyBoolValue), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyBoolValue),
// TODO: implement CameraSettingsA100 tags decoding. // TODO: implement CameraSettingsA100 tags decoding.
TagInfo(0x0114, "CameraSettings5D", N_("Camera Settings (5D)"), TagInfo(0x0114, "CameraSettings5D", N_("Camera Settings (5D)"),
N_("Camera Settings (for Dynax 5D model)"), N_("Camera Settings (for Dynax 5D model)"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0115, "WhiteBalance", N_("White Balance"), TagInfo(0x0115, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
minoltaIfdId, makerTags, unsignedLong, -1, printMinoltaSonyWhiteBalanceStd), minoltaId, makerTags, unsignedLong, -1, printMinoltaSonyWhiteBalanceStd),
TagInfo(0x0e00, "PrintIM", N_("Print IM"), TagInfo(0x0e00, "PrintIM", N_("Print IM"),
N_("PrintIM information"), N_("PrintIM information"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
TagInfo(0x0f00, "CameraSettingsZ1", N_("Camera Settings (Z1)"), TagInfo(0x0f00, "CameraSettingsZ1", N_("Camera Settings (Z1)"),
N_("Camera Settings (for Z1, DImage X, and F100 models)"), N_("Camera Settings (for Z1, DImage X, and F100 models)"),
minoltaIfdId, makerTags, undefined, -1, printValue), minoltaId, makerTags, undefined, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownMinoltaMakerNoteTag)", "(UnknownMinoltaMakerNoteTag)", TagInfo(0xffff, "(UnknownMinoltaMakerNoteTag)", "(UnknownMinoltaMakerNoteTag)",
N_("Unknown Minolta MakerNote tag"), N_("Unknown Minolta MakerNote tag"),
minoltaIfdId, makerTags, asciiString, -1, printValue) minoltaId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* MinoltaMakerNote::tagList() const TagInfo* MinoltaMakerNote::tagList()
@ -488,158 +488,158 @@ namespace Exiv2 {
const TagInfo MinoltaMakerNote::tagInfoCsStd_[] = { const TagInfo MinoltaMakerNote::tagInfoCsStd_[] = {
TagInfo(0x0001, "ExposureMode", N_("Exposure Mode"), TagInfo(0x0001, "ExposureMode", N_("Exposure Mode"),
N_("Exposure mode"), N_("Exposure mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaExposureModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaExposureModeStd)),
TagInfo(0x0002, "FlashMode", N_("Flash Mode"), TagInfo(0x0002, "FlashMode", N_("Flash Mode"),
N_("Flash mode"), N_("Flash mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashModeStd)),
TagInfo(0x0003, "WhiteBalance", N_("White Balance"), TagInfo(0x0003, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaWhiteBalanceStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaWhiteBalanceStd)),
TagInfo(0x0004, "ImageSize", N_("Image Size"), TagInfo(0x0004, "ImageSize", N_("Image Size"),
N_("Image size"), N_("Image size"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaImageSizeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaImageSizeStd)),
TagInfo(0x0005, "Quality", N_("Image Quality"), TagInfo(0x0005, "Quality", N_("Image Quality"),
N_("Image quality"), N_("Image quality"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaImageQualityStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaImageQualityStd)),
TagInfo(0x0006, "DriveMode", N_("Drive Mode"), TagInfo(0x0006, "DriveMode", N_("Drive Mode"),
N_("Drive mode"), N_("Drive mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDriveModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDriveModeStd)),
TagInfo(0x0007, "MeteringMode", N_("Metering Mode"), TagInfo(0x0007, "MeteringMode", N_("Metering Mode"),
N_("Metering mode"), N_("Metering mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaMeteringModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaMeteringModeStd)),
TagInfo(0x0008, "ISO", N_("ISO"), TagInfo(0x0008, "ISO", N_("ISO"),
N_("ISO Value"), N_("ISO Value"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaExposureSpeedStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaExposureSpeedStd),
TagInfo(0x0009, "ExposureTime", N_("Exposure Time"), TagInfo(0x0009, "ExposureTime", N_("Exposure Time"),
N_("Exposure time"), N_("Exposure time"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaExposureTimeStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaExposureTimeStd),
TagInfo(0x000A, "FNumber", N_("FNumber"), TagInfo(0x000A, "FNumber", N_("FNumber"),
N_("The F-Number"), N_("The F-Number"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaFNumberStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaFNumberStd),
TagInfo(0x000B, "MacroMode", N_("Macro Mode"), TagInfo(0x000B, "MacroMode", N_("Macro Mode"),
N_("Macro mode"), N_("Macro mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaSonyBoolValue), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaSonyBoolValue),
TagInfo(0x000C, "DigitalZoom", N_("Digital Zoom"), TagInfo(0x000C, "DigitalZoom", N_("Digital Zoom"),
N_("Digital zoom"), N_("Digital zoom"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDigitalZoomStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDigitalZoomStd)),
TagInfo(0x000D, "ExposureCompensation", N_("Exposure Compensation"), TagInfo(0x000D, "ExposureCompensation", N_("Exposure Compensation"),
N_("Exposure compensation"), N_("Exposure compensation"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaExposureCompensationStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaExposureCompensationStd),
TagInfo(0x000E, "BracketStep", N_("Bracket Step"), TagInfo(0x000E, "BracketStep", N_("Bracket Step"),
N_("Bracket step"), N_("Bracket step"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaBracketStepStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaBracketStepStd)),
TagInfo(0x0010, "IntervalLength", N_("Interval Length"), TagInfo(0x0010, "IntervalLength", N_("Interval Length"),
N_("Interval length"), N_("Interval length"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0011, "IntervalNumber", N_("Interval Number"), TagInfo(0x0011, "IntervalNumber", N_("Interval Number"),
N_("Interval number"), N_("Interval number"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0012, "FocalLength", N_("Focal Length"), TagInfo(0x0012, "FocalLength", N_("Focal Length"),
N_("Focal length"), N_("Focal length"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaFocalLengthStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaFocalLengthStd),
TagInfo(0x0013, "FocusDistance", N_("Focus Distance"), TagInfo(0x0013, "FocusDistance", N_("Focus Distance"),
N_("Focus distance"), N_("Focus distance"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0014, "FlashFired", N_("Flash Fired"), TagInfo(0x0014, "FlashFired", N_("Flash Fired"),
N_("Flash fired"), N_("Flash fired"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)),
TagInfo(0x0015, "MinoltaDate", N_("Minolta Date"), TagInfo(0x0015, "MinoltaDate", N_("Minolta Date"),
N_("Minolta date"), N_("Minolta date"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaDateStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaDateStd),
TagInfo(0x0016, "MinoltaTime", N_("Minolta Time"), TagInfo(0x0016, "MinoltaTime", N_("Minolta Time"),
N_("Minolta time"), N_("Minolta time"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaTimeStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaTimeStd),
TagInfo(0x0017, "MaxAperture", N_("Max Aperture"), TagInfo(0x0017, "MaxAperture", N_("Max Aperture"),
N_("Max aperture"), N_("Max aperture"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x001A, "FileNumberMemory", N_("File Number Memory"), TagInfo(0x001A, "FileNumberMemory", N_("File Number Memory"),
N_("File number memory"), N_("File number memory"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaSonyBoolValue), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaSonyBoolValue),
TagInfo(0x001B, "LastFileNumber", N_("Last Image Number"), TagInfo(0x001B, "LastFileNumber", N_("Last Image Number"),
N_("Last image number"), N_("Last image number"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x001C, "ColorBalanceRed", N_("Color Balance Red"), TagInfo(0x001C, "ColorBalanceRed", N_("Color Balance Red"),
N_("Color balance red"), N_("Color balance red"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd),
TagInfo(0x001D, "ColorBalanceGreen", N_("Color Balance Green"), TagInfo(0x001D, "ColorBalanceGreen", N_("Color Balance Green"),
N_("Color balance green"), N_("Color balance green"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd),
TagInfo(0x001E, "ColorBalanceBlue", N_("Color Balance Blue"), TagInfo(0x001E, "ColorBalanceBlue", N_("Color Balance Blue"),
N_("Color balance blue"), N_("Color balance blue"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaWhiteBalanceStd),
TagInfo(0x001F, "Saturation", N_("Saturation"), TagInfo(0x001F, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0020, "Contrast", N_("Contrast"), TagInfo(0x0020, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0021, "Sharpness", N_("Sharpness"), TagInfo(0x0021, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaSharpnessStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaSharpnessStd)),
TagInfo(0x0022, "SubjectProgram", N_("Subject Program"), TagInfo(0x0022, "SubjectProgram", N_("Subject Program"),
N_("Subject program"), N_("Subject program"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaSubjectProgramStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaSubjectProgramStd)),
TagInfo(0x0023, "FlashExposureComp", N_("Flash Exposure Compensation"), TagInfo(0x0023, "FlashExposureComp", N_("Flash Exposure Compensation"),
N_("Flash exposure compensation in EV"), N_("Flash exposure compensation in EV"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaFlashExposureCompStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaFlashExposureCompStd),
TagInfo(0x0024, "ISOSetting", N_("ISO Settings"), TagInfo(0x0024, "ISOSetting", N_("ISO Settings"),
N_("ISO setting"), N_("ISO setting"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaISOSettingStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaISOSettingStd)),
TagInfo(0x0025, "MinoltaModel", N_("Minolta Model"), TagInfo(0x0025, "MinoltaModel", N_("Minolta Model"),
N_("Minolta model"), N_("Minolta model"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaModelStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaModelStd)),
TagInfo(0x0026, "IntervalMode", N_("Interval Mode"), TagInfo(0x0026, "IntervalMode", N_("Interval Mode"),
N_("Interval mode"), N_("Interval mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaIntervalModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaIntervalModeStd)),
TagInfo(0x0027, "FolderName", N_("Folder Name"), TagInfo(0x0027, "FolderName", N_("Folder Name"),
N_("Folder name"), N_("Folder name"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFolderNameStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFolderNameStd)),
TagInfo(0x0028, "ColorMode", N_("ColorMode"), TagInfo(0x0028, "ColorMode", N_("ColorMode"),
N_("ColorMode"), N_("ColorMode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaColorModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaColorModeStd)),
TagInfo(0x0029, "ColorFilter", N_("Color Filter"), TagInfo(0x0029, "ColorFilter", N_("Color Filter"),
N_("Color filter"), N_("Color filter"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x002A, "BWFilter", N_("Black and White Filter"), TagInfo(0x002A, "BWFilter", N_("Black and White Filter"),
N_("Black and white filter"), N_("Black and white filter"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x002B, "Internal Flash", N_("Internal Flash"), TagInfo(0x002B, "Internal Flash", N_("Internal Flash"),
N_("Internal Flash"), N_("Internal Flash"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)),
TagInfo(0x002C, "Brightness", N_("Brightness"), TagInfo(0x002C, "Brightness", N_("Brightness"),
N_("Brightness"), N_("Brightness"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printMinoltaBrightnessStd), minoltaCsNewId, makerTags, unsignedLong, 1, printMinoltaBrightnessStd),
TagInfo(0x002D, "SpotFocusPointX", N_("Spot Focus Point X"), TagInfo(0x002D, "SpotFocusPointX", N_("Spot Focus Point X"),
N_("Spot focus point X"), N_("Spot focus point X"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x002E, "SpotFocusPointY", N_("Spot Focus Point Y"), TagInfo(0x002E, "SpotFocusPointY", N_("Spot Focus Point Y"),
N_("Spot focus point Y"), N_("Spot focus point Y"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue), minoltaCsNewId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x002F, "WideFocusZone", N_("Wide Focus Zone"), TagInfo(0x002F, "WideFocusZone", N_("Wide Focus Zone"),
N_("Wide focus zone"), N_("Wide focus zone"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaWideFocusZoneStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaWideFocusZoneStd)),
TagInfo(0x0030, "FocusMode", N_("Focus Mode"), TagInfo(0x0030, "FocusMode", N_("Focus Mode"),
N_("Focus mode"), N_("Focus mode"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFocusModeStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFocusModeStd)),
TagInfo(0x0031, "FocusArea", N_("Focus area"), TagInfo(0x0031, "FocusArea", N_("Focus area"),
N_("Focus area"), N_("Focus area"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFocusAreaStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFocusAreaStd)),
TagInfo(0x0032, "DECPosition", N_("DEC Switch Position"), TagInfo(0x0032, "DECPosition", N_("DEC Switch Position"),
N_("DEC switch position"), N_("DEC switch position"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDECPositionStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDECPositionStd)),
TagInfo(0x0033, "ColorProfile", N_("Color Profile"), TagInfo(0x0033, "ColorProfile", N_("Color Profile"),
N_("Color profile"), N_("Color profile"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaColorProfileStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaColorProfileStd)),
TagInfo(0x0034, "DataImprint", N_("Data Imprint"), TagInfo(0x0034, "DataImprint", N_("Data Imprint"),
N_("Data Imprint"), N_("Data Imprint"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDataImprintStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaDataImprintStd)),
TagInfo(0x003F, "FlashMetering", N_("Flash Metering"), TagInfo(0x003F, "FlashMetering", N_("Flash Metering"),
N_("Flash metering"), N_("Flash metering"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashMeteringStd)), minoltaCsNewId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashMeteringStd)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownMinoltaCsStdTag)", "(UnknownMinoltaCsStdTag)", TagInfo(0xffff, "(UnknownMinoltaCsStdTag)", "(UnknownMinoltaCsStdTag)",
N_("Unknown Minolta Camera Settings tag"), N_("Unknown Minolta Camera Settings tag"),
minoltaCsNewIfdId, makerTags, unsignedLong, 1, printValue) minoltaCsNewId, makerTags, unsignedLong, 1, printValue)
}; };
const TagInfo* MinoltaMakerNote::tagListCsStd() const TagInfo* MinoltaMakerNote::tagListCsStd()
@ -738,87 +738,87 @@ namespace Exiv2 {
const TagInfo MinoltaMakerNote::tagInfoCs7D_[] = { const TagInfo MinoltaMakerNote::tagInfoCs7D_[] = {
TagInfo(0x0000, "ExposureMode", N_("Exposure Mode"), TagInfo(0x0000, "ExposureMode", N_("Exposure Mode"),
N_("Exposure mode"), N_("Exposure mode"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaExposureMode7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaExposureMode7D)),
TagInfo(0x0002, "ImageSize", N_("Image Size"), TagInfo(0x0002, "ImageSize", N_("Image Size"),
N_("Image size"), N_("Image size"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaImageSize7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaImageSize7D)),
TagInfo(0x0003, "Quality", N_("Image Quality"), TagInfo(0x0003, "Quality", N_("Image Quality"),
N_("Image quality"), N_("Image quality"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaImageQuality7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaImageQuality7D)),
TagInfo(0x0004, "WhiteBalance", N_("White Balance"), TagInfo(0x0004, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaWhiteBalance7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaWhiteBalance7D)),
TagInfo(0x000E, "FocusMode", N_("Focus Mode"), TagInfo(0x000E, "FocusMode", N_("Focus Mode"),
N_("Focus mode"), N_("Focus mode"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaFocusMode7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaFocusMode7D)),
TagInfo(0x0010, "AFPoints", N_("AF Points"), TagInfo(0x0010, "AFPoints", N_("AF Points"),
N_("AF points"), N_("AF points"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaAFPoints7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaAFPoints7D)),
TagInfo(0x0015, "FlashFired", N_("Flash Fired"), TagInfo(0x0015, "FlashFired", N_("Flash Fired"),
N_("Flash fired"), N_("Flash fired"),
minoltaCs7DIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)), minoltaCs7DId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(minoltaFlashFired)),
TagInfo(0x0016, "FlashMode", N_("Flash Mode"), TagInfo(0x0016, "FlashMode", N_("Flash Mode"),
N_("Flash mode"), N_("Flash mode"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001C, "ISOSpeed", N_("ISO Speed Mode"), TagInfo(0x001C, "ISOSpeed", N_("ISO Speed Mode"),
N_("ISO speed setting"), N_("ISO speed setting"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaISOSetting7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaISOSetting7D)),
TagInfo(0x001E, "ExposureCompensation", N_("Exposure Compensation"), TagInfo(0x001E, "ExposureCompensation", N_("Exposure Compensation"),
N_("Exposure compensation"), N_("Exposure compensation"),
minoltaCs7DIfdId, makerTags, signedShort, 1, printValue), minoltaCs7DId, makerTags, signedShort, 1, printValue),
TagInfo(0x0025, "ColorSpace", N_("Color Space"), TagInfo(0x0025, "ColorSpace", N_("Color Space"),
N_("Color space"), N_("Color space"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaColorSpace7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaColorSpace7D)),
TagInfo(0x0026, "Sharpness", N_("Sharpness"), TagInfo(0x0026, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0027, "Contrast", N_("Contrast"), TagInfo(0x0027, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0028, "Saturation", N_("Saturation"), TagInfo(0x0028, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x002D, "FreeMemoryCardImages", N_("Free Memory Card Images"), TagInfo(0x002D, "FreeMemoryCardImages", N_("Free Memory Card Images"),
N_("Free memory card images"), N_("Free memory card images"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x003F, "ColorTemperature", N_("Color Temperature"), TagInfo(0x003F, "ColorTemperature", N_("Color Temperature"),
N_("Color temperature"), N_("Color temperature"),
minoltaCs7DIfdId, makerTags, signedShort, 1, printValue), minoltaCs7DId, makerTags, signedShort, 1, printValue),
TagInfo(0x0040, "Hue", N_("Hue"), N_("Hue"), TagInfo(0x0040, "Hue", N_("Hue"), N_("Hue"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0046, "Rotation", N_("Rotation"), TagInfo(0x0046, "Rotation", N_("Rotation"),
N_("Rotation"), N_("Rotation"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaRotation7D)), minoltaCs7DId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaRotation7D)),
TagInfo(0x0047, "FNumber", N_("FNumber"), TagInfo(0x0047, "FNumber", N_("FNumber"),
N_("The F-Number"), N_("The F-Number"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0048, "ExposureTime", N_("Exposure Time"), TagInfo(0x0048, "ExposureTime", N_("Exposure Time"),
N_("Exposure time"), N_("Exposure time"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
// 0x004A is a dupplicate than 0x002D. // 0x004A is a dupplicate than 0x002D.
TagInfo(0x004A, "FreeMemoryCardImages", N_("Free Memory Card Images"), TagInfo(0x004A, "FreeMemoryCardImages", N_("Free Memory Card Images"),
N_("Free memory card images"), N_("Free memory card images"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x005E, "ImageNumber", N_("Image Number"), TagInfo(0x005E, "ImageNumber", N_("Image Number"),
N_("Image number"), N_("Image number"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0060, "NoiseReduction", N_("Noise Reduction"), TagInfo(0x0060, "NoiseReduction", N_("Noise Reduction"),
N_("Noise reduction"), N_("Noise reduction"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), minoltaCs7DId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
// 0x0062 is a dupplicate than 0x005E. // 0x0062 is a dupplicate than 0x005E.
TagInfo(0x0062, "ImageNumber", N_("Image Number"), TagInfo(0x0062, "ImageNumber", N_("Image Number"),
N_("Image number"), N_("Image number"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue), minoltaCs7DId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0071, "ImageStabilization", N_("Image Stabilization"), TagInfo(0x0071, "ImageStabilization", N_("Image Stabilization"),
N_("Image stabilization"), N_("Image stabilization"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), minoltaCs7DId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x0075, "ZoneMatchingOn", N_("Zone Matching On"), TagInfo(0x0075, "ZoneMatchingOn", N_("Zone Matching On"),
N_("Zone matching on"), N_("Zone matching on"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), minoltaCs7DId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownMinoltaCs7DTag)", "(UnknownMinoltaCs7DTag)", TagInfo(0xffff, "(UnknownMinoltaCs7DTag)", "(UnknownMinoltaCs7DTag)",
N_("Unknown Minolta Camera Settings 7D tag"), N_("Unknown Minolta Camera Settings 7D tag"),
minoltaCs7DIfdId, makerTags, unsignedShort, 1, printValue) minoltaCs7DId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* MinoltaMakerNote::tagListCs7D() const TagInfo* MinoltaMakerNote::tagListCs7D()
@ -981,94 +981,94 @@ namespace Exiv2 {
const TagInfo MinoltaMakerNote::tagInfoCs5D_[] = { const TagInfo MinoltaMakerNote::tagInfoCs5D_[] = {
TagInfo(0x000A, "ExposureMode", N_("Exposure Mode"), TagInfo(0x000A, "ExposureMode", N_("Exposure Mode"),
N_("Exposure mode"), N_("Exposure mode"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaExposureMode5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaExposureMode5D)),
TagInfo(0x000C, "ImageSize", N_("Image Size"), TagInfo(0x000C, "ImageSize", N_("Image Size"),
N_("Image size"), N_("Image size"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaImageSize5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaImageSize5D)),
TagInfo(0x000D, "Quality", N_("Image Quality"), TagInfo(0x000D, "Quality", N_("Image Quality"),
N_("Image quality"), N_("Image quality"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaImageQuality5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaImageQuality5D)),
TagInfo(0x000E, "WhiteBalance", N_("White Balance"), TagInfo(0x000E, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaWhiteBalance5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaWhiteBalance5D)),
TagInfo(0x001A, "FocusPosition", N_("Focus Position"), TagInfo(0x001A, "FocusPosition", N_("Focus Position"),
N_("Focus position"), N_("Focus position"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusPosition5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusPosition5D)),
TagInfo(0x001B, "FocusArea", N_("Focus Area"), TagInfo(0x001B, "FocusArea", N_("Focus Area"),
N_("Focus area"), N_("Focus area"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusArea5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusArea5D)),
TagInfo(0x001F, "FlashFired", N_("Flash Fired"), TagInfo(0x001F, "FlashFired", N_("Flash Fired"),
N_("Flash fired"), N_("Flash fired"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFlashFired)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFlashFired)),
TagInfo(0x0025, "MeteringMode", N_("Metering Mode"), TagInfo(0x0025, "MeteringMode", N_("Metering Mode"),
N_("Metering mode"), N_("Metering mode"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaMeteringMode5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaMeteringMode5D)),
TagInfo(0x0026, "ISOSpeed", N_("ISO Speed Mode"), TagInfo(0x0026, "ISOSpeed", N_("ISO Speed Mode"),
N_("ISO speed setting"), N_("ISO speed setting"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaISOSetting5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaISOSetting5D)),
TagInfo(0x002F, "ColorSpace", N_("Color Space"), TagInfo(0x002F, "ColorSpace", N_("Color Space"),
N_("Color space"), N_("Color space"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaColorSpace5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaColorSpace5D)),
TagInfo(0x0030, "Sharpness", N_("Sharpness"), TagInfo(0x0030, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0031, "Contrast", N_("Contrast"), TagInfo(0x0031, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0032, "Saturation", N_("Saturation"), TagInfo(0x0032, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0035, "ExposureTime", N_("Exposure Time"), TagInfo(0x0035, "ExposureTime", N_("Exposure Time"),
N_("Exposure time"), N_("Exposure time"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0036, "FNumber", N_("FNumber"), TagInfo(0x0036, "FNumber", N_("FNumber"),
N_("The F-Number"), N_("The F-Number"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0037, "FreeMemoryCardImages", N_("Free Memory Card Images"), TagInfo(0x0037, "FreeMemoryCardImages", N_("Free Memory Card Images"),
N_("Free memory card images"), N_("Free memory card images"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0038, "ExposureRevision", N_("Exposure Revision"), TagInfo(0x0038, "ExposureRevision", N_("Exposure Revision"),
N_("Exposure revision"), N_("Exposure revision"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0048, "FocusMode", N_("Focus Mode"), TagInfo(0x0048, "FocusMode", N_("Focus Mode"),
N_("Focus mode"), N_("Focus mode"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusModeStd)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaFocusModeStd)),
TagInfo(0x0049, "ColorTemperature", N_("Color Temperature"), TagInfo(0x0049, "ColorTemperature", N_("Color Temperature"),
N_("Color temperature"), N_("Color temperature"),
minoltaCs5DIfdId, makerTags, signedShort, -1, printValue), minoltaCs5DId, makerTags, signedShort, -1, printValue),
TagInfo(0x0050, "Rotation", N_("Rotation"), TagInfo(0x0050, "Rotation", N_("Rotation"),
N_("Rotation"), N_("Rotation"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaRotation5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaRotation5D)),
TagInfo(0x0053, "ExposureCompensation", N_("Exposure Compensation"), TagInfo(0x0053, "ExposureCompensation", N_("Exposure Compensation"),
N_("Exposure compensation"), N_("Exposure compensation"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printMinoltaExposureCompensation5D), minoltaCs5DId, makerTags, unsignedShort, -1, printMinoltaExposureCompensation5D),
TagInfo(0x0054, "FreeMemoryCardImages", N_("Free Memory Card Images"), TagInfo(0x0054, "FreeMemoryCardImages", N_("Free Memory Card Images"),
N_("Free memory card images"), N_("Free memory card images"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0065, "Rotation2", N_("Rotation2"), TagInfo(0x0065, "Rotation2", N_("Rotation2"),
N_("Rotation2"), N_("Rotation2"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printMinoltaSonyRotation), minoltaCs5DId, makerTags, unsignedShort, -1, printMinoltaSonyRotation),
TagInfo(0x006E, "Color Temperature", N_("Color Temperature"), TagInfo(0x006E, "Color Temperature", N_("Color Temperature"),
N_("Color Temperature"), N_("Color Temperature"),
minoltaCs5DIfdId, makerTags, signedShort, -1, printValue), minoltaCs5DId, makerTags, signedShort, -1, printValue),
TagInfo(0x0071, "PictureFinish", N_("Picture Finish"), TagInfo(0x0071, "PictureFinish", N_("Picture Finish"),
N_("Picture Finish"), N_("Picture Finish"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaPictureFinish5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaPictureFinish5D)),
TagInfo(0x0091, "ExposureManualBias", N_("Exposure Manual Bias"), TagInfo(0x0091, "ExposureManualBias", N_("Exposure Manual Bias"),
N_("Exposure manual bias"), N_("Exposure manual bias"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printMinoltaExposureManualBias5D), minoltaCs5DId, makerTags, unsignedShort, -1, printMinoltaExposureManualBias5D),
TagInfo(0x009E, "AFMode", N_("AF Mode"), TagInfo(0x009E, "AFMode", N_("AF Mode"),
N_("AF mode"), N_("AF mode"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaAFMode5D)), minoltaCs5DId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(minoltaAFMode5D)),
TagInfo(0x00AE, "ImageNumber", N_("Image Number"), TagInfo(0x00AE, "ImageNumber", N_("Image Number"),
N_("Image number"), N_("Image number"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printValue), minoltaCs5DId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00B0, "NoiseReduction", N_("Noise Reduction"), TagInfo(0x00B0, "NoiseReduction", N_("Noise Reduction"),
N_("Noise reduction"), N_("Noise reduction"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printMinoltaSonyBoolValue), minoltaCs5DId, makerTags, unsignedShort, -1, printMinoltaSonyBoolValue),
TagInfo(0x00BD, "ImageStabilization", N_("Image Stabilization"), TagInfo(0x00BD, "ImageStabilization", N_("Image Stabilization"),
N_("Image stabilization"), N_("Image stabilization"),
minoltaCs5DIfdId, makerTags, unsignedShort, -1, printMinoltaSonyBoolValue), minoltaCs5DId, makerTags, unsignedShort, -1, printMinoltaSonyBoolValue),
// From Xavier Raynaud: some notes on missing tags. // From Xavier Raynaud: some notes on missing tags.
// 0x0051 seems to be identical to FNumber (0x0036). An approx. relation between Tag value // 0x0051 seems to be identical to FNumber (0x0036). An approx. relation between Tag value
@ -1079,7 +1079,7 @@ namespace Exiv2 {
// End of list marker // End of list marker
TagInfo(0xFFFF, "(UnknownMinoltaCs5DTag)", "(UnknownMinoltaCs5DTag)", TagInfo(0xFFFF, "(UnknownMinoltaCs5DTag)", "(UnknownMinoltaCs5DTag)",
N_("Unknown Minolta Camera Settings 5D tag"), N_("Unknown Minolta Camera Settings 5D tag"),
minoltaCs5DIfdId, makerTags, invalidTypeId, -1, printValue) minoltaCs5DId, makerTags, invalidTypeId, -1, printValue)
}; };
const TagInfo* MinoltaMakerNote::tagListCs5D() const TagInfo* MinoltaMakerNote::tagListCs5D()
@ -1349,242 +1349,242 @@ namespace Exiv2 {
const TagInfo MinoltaMakerNote::tagInfoCsA100_[] = { const TagInfo MinoltaMakerNote::tagInfoCsA100_[] = {
TagInfo(0x0000, "ExposureMode", N_("Exposure Mode"), TagInfo(0x0000, "ExposureMode", N_("Exposure Mode"),
N_("Exposure mode"), N_("Exposure mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaExposureMode5D)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaExposureMode5D)),
TagInfo(0x0001, "ExposureCompensationSetting", N_("Exposure Compensation Setting"), TagInfo(0x0001, "ExposureCompensationSetting", N_("Exposure Compensation Setting"),
N_("Exposure compensation setting"), N_("Exposure compensation setting"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0005, "HighSpeedSync", N_("High Speed Sync"), TagInfo(0x0005, "HighSpeedSync", N_("High Speed Sync"),
N_("High speed sync"), N_("High speed sync"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x0006, "ManualExposureTime", N_("Manual Exposure Time"), TagInfo(0x0006, "ManualExposureTime", N_("Manual Exposure Time"),
N_("Manual exposure time"), N_("Manual exposure time"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0007, "ManualFNumber", N_("Manual FNumber"), TagInfo(0x0007, "ManualFNumber", N_("Manual FNumber"),
N_("Manual FNumber"), N_("Manual FNumber"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0008, "ExposureTime", N_("Exposure Time"), TagInfo(0x0008, "ExposureTime", N_("Exposure Time"),
N_("Exposure time"), N_("Exposure time"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0009, "FNumber", N_("FNumber"), TagInfo(0x0009, "FNumber", N_("FNumber"),
N_("FNumber"), N_("FNumber"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x000A, "DriveMode2", N_("Drive Mode 2"), TagInfo(0x000A, "DriveMode2", N_("Drive Mode 2"),
N_("Drive mode 2"), N_("Drive mode 2"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyDriveMode2A100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyDriveMode2A100)),
TagInfo(0x000B, "WhiteBalance", N_("White Balance"), TagInfo(0x000B, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaWhiteBalance5D)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaWhiteBalance5D)),
TagInfo(0x000C, "FocusMode", N_("Focus Mode"), TagInfo(0x000C, "FocusMode", N_("Focus Mode"),
N_("Focus mode"), N_("Focus mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusModeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusModeA100)),
TagInfo(0x000D, "LocalAFAreaPoint", N_("Local AF Area Point"), TagInfo(0x000D, "LocalAFAreaPoint", N_("Local AF Area Point"),
N_("Local AF Area Point"), N_("Local AF Area Point"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint),
TagInfo(0x000E, "AFAreaMode", N_("AF Area Mode"), TagInfo(0x000E, "AFAreaMode", N_("AF Area Mode"),
N_("AF Area Mode"), N_("AF Area Mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyAFAreaMode), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyAFAreaMode),
TagInfo(0x000F, "FlashMode", N_("FlashMode"), TagInfo(0x000F, "FlashMode", N_("FlashMode"),
N_("FlashMode"), N_("FlashMode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashModeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashModeA100)),
TagInfo(0x0010, "FlashExposureCompSetting", N_("Flash Exposure Comp Setting"), TagInfo(0x0010, "FlashExposureCompSetting", N_("Flash Exposure Comp Setting"),
N_("Flash exposure compensation setting"), N_("Flash exposure compensation setting"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0012, "MeteringMode", N_("Metering Mode"), TagInfo(0x0012, "MeteringMode", N_("Metering Mode"),
N_("Metering mode"), N_("Metering mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringModeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringModeA100)),
TagInfo(0x0013, "ISOSetting", N_("ISO Setting"), TagInfo(0x0013, "ISOSetting", N_("ISO Setting"),
N_("ISO setting"), N_("ISO setting"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0014, "ZoneMatchingMode", N_("Zone Matching Mode"), TagInfo(0x0014, "ZoneMatchingMode", N_("Zone Matching Mode"),
N_("Zone Matching Mode"), N_("Zone Matching Mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyZoneMatchingModeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyZoneMatchingModeA100)),
TagInfo(0x0015, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"), TagInfo(0x0015, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"),
N_("Dynamic range optimizer mode"), N_("Dynamic range optimizer mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode),
TagInfo(0x0016, "ColorMode", N_("Color Mode"), TagInfo(0x0016, "ColorMode", N_("Color Mode"),
N_("Color mode"), N_("Color mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyColorMode), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyColorMode),
TagInfo(0x0017, "ColorSpace", N_("Color Space"), TagInfo(0x0017, "ColorSpace", N_("Color Space"),
N_("Color space"), N_("Color space"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyColorSpaceA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyColorSpaceA100)),
TagInfo(0x0018, "Sharpness", N_("Sharpness"), TagInfo(0x0018, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0019, "Contrast", N_("Contrast"), TagInfo(0x0019, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001A, "Saturation", N_("Saturation"), TagInfo(0x001A, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001C, "FlashMetering", N_("Flash Metering"), TagInfo(0x001C, "FlashMetering", N_("Flash Metering"),
N_("Flash metering"), N_("Flash metering"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaFlashMeteringStd)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(minoltaFlashMeteringStd)),
TagInfo(0x001D, "PrioritySetupShutterRelease", N_("Priority Setup Shutter Release"), TagInfo(0x001D, "PrioritySetupShutterRelease", N_("Priority Setup Shutter Release"),
N_("Priority Setup Shutter Release"), N_("Priority Setup Shutter Release"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyPrioritySetupShutterRelease), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyPrioritySetupShutterRelease),
TagInfo(0x001E, "DriveMode", N_("Drive Mode"), TagInfo(0x001E, "DriveMode", N_("Drive Mode"),
N_("Drive mode"), N_("Drive mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyDriveModeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyDriveModeA100)),
TagInfo(0x001F, "SelfTimerTime", N_("Self Timer Time"), TagInfo(0x001F, "SelfTimerTime", N_("Self Timer Time"),
N_("Self timer time"), N_("Self timer time"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonySelfTimerTimeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonySelfTimerTimeA100)),
TagInfo(0x0020, "ContinuousBracketing", N_("Continuous Bracketing"), TagInfo(0x0020, "ContinuousBracketing", N_("Continuous Bracketing"),
N_("Continuous bracketing"), N_("Continuous bracketing"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyContinuousBracketingA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyContinuousBracketingA100)),
TagInfo(0x0021, "SingleFrameBracketing", N_("Single Frame Bracketing"), TagInfo(0x0021, "SingleFrameBracketing", N_("Single Frame Bracketing"),
N_("Single frame bracketing"), N_("Single frame bracketing"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonySingleFrameBracketingA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonySingleFrameBracketingA100)),
TagInfo(0x0022, "WhiteBalanceBracketing", N_("White Balance Bracketing"), TagInfo(0x0022, "WhiteBalanceBracketing", N_("White Balance Bracketing"),
N_("White balance bracketing"), N_("White balance bracketing"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyWhiteBalanceBracketingA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyWhiteBalanceBracketingA100)),
TagInfo(0x0023, "WhiteBalanceSetting", N_("White Balance Setting"), TagInfo(0x0023, "WhiteBalanceSetting", N_("White Balance Setting"),
N_("White balance setting"), N_("White balance setting"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyWhiteBalanceSettingA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyWhiteBalanceSettingA100)),
TagInfo(0x0024, "PresetWhiteBalance", N_("Preset White Balance"), TagInfo(0x0024, "PresetWhiteBalance", N_("Preset White Balance"),
N_("Preset white balance"), N_("Preset white balance"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyPresetWhiteBalanceA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyPresetWhiteBalanceA100)),
TagInfo(0x0025, "ColorTemperatureSetting", N_("Color Temperature Setting"), TagInfo(0x0025, "ColorTemperatureSetting", N_("Color Temperature Setting"),
N_("Color temperature setting"), N_("Color temperature setting"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyColorTemperatureSettingA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyColorTemperatureSettingA100)),
TagInfo(0x0026, "CustomWBSetting", N_("Custom WB Setting"), TagInfo(0x0026, "CustomWBSetting", N_("Custom WB Setting"),
N_("Custom WB setting"), N_("Custom WB setting"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCustomWBSettingA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCustomWBSettingA100)),
TagInfo(0x0027, "DynamicRangeOptimizerSettings", N_("Dynamic Range Optimizer Settings"), TagInfo(0x0027, "DynamicRangeOptimizerSettings", N_("Dynamic Range Optimizer Settings"),
N_("Dynamic Range Optimizer Settings"), N_("Dynamic Range Optimizer Settings"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode),
TagInfo(0x0032, "FreeMemoryCardImages", N_("Free Memory Card Images"), TagInfo(0x0032, "FreeMemoryCardImages", N_("Free Memory Card Images"),
N_("Free memory card images"), N_("Free memory card images"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0034, "CustomWBRedLevel", N_("Custom WB Red Level"), TagInfo(0x0034, "CustomWBRedLevel", N_("Custom WB Red Level"),
N_("Custom WB red level"), N_("Custom WB red level"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0035, "CustomWBGreenLevel", N_("Custom WB Green Level"), TagInfo(0x0035, "CustomWBGreenLevel", N_("Custom WB Green Level"),
N_("Custom WB green level"), N_("Custom WB green level"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0036, "CustomWBBlueLevel", N_("Custom WB Blue Level"), TagInfo(0x0036, "CustomWBBlueLevel", N_("Custom WB Blue Level"),
N_("CustomWB blue level"), N_("CustomWB blue level"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0037, "CustomWBError", N_("Custom WB Error"), TagInfo(0x0037, "CustomWBError", N_("Custom WB Error"),
N_("Custom WB Error"), N_("Custom WB Error"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCustomWBErrorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCustomWBErrorA100)),
TagInfo(0x0038, "WhiteBalanceFineTune", N_("White Balance Fine Tune"), TagInfo(0x0038, "WhiteBalanceFineTune", N_("White Balance Fine Tune"),
N_("White balance fine tune"), N_("White balance fine tune"),
sony1MltCsA100IfdId, makerTags, signedShort, 1, printValue), sony1MltCsA100Id, makerTags, signedShort, 1, printValue),
TagInfo(0x0039, "ColorTemperature", N_("Color Temperature"), TagInfo(0x0039, "ColorTemperature", N_("Color Temperature"),
N_("Color temperature"), N_("Color temperature"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x003A, "ColorCompensationFilter", N_("Color Compensation Filter"), TagInfo(0x003A, "ColorCompensationFilter", N_("Color Compensation Filter"),
N_("Color compensation filter"), N_("Color compensation filter"),
sony1MltCsA100IfdId, makerTags, signedShort, 1, printValue), sony1MltCsA100Id, makerTags, signedShort, 1, printValue),
TagInfo(0x003B, "SonyImageSize", N_("Sony Image Size"), TagInfo(0x003B, "SonyImageSize", N_("Sony Image Size"),
N_("Sony Image Size"), N_("Sony Image Size"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSizeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSizeA100)),
TagInfo(0x003C, "Quality", N_("Quality"), TagInfo(0x003C, "Quality", N_("Quality"),
N_("Quality"), N_("Quality"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyQualityCs), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyQualityCs),
TagInfo(0x003D, "InstantPlaybackTime", N_("Instant Playback Time"), TagInfo(0x003D, "InstantPlaybackTime", N_("Instant Playback Time"),
N_("Instant playback time"), N_("Instant playback time"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x003E, "InstantPlaybackSetup", N_("Instant Playback Setup"), TagInfo(0x003E, "InstantPlaybackSetup", N_("Instant Playback Setup"),
N_("Instant playback setup"), N_("Instant playback setup"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyInstantPlaybackSetupA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyInstantPlaybackSetupA100)),
TagInfo(0x003F, "NoiseReduction", N_("Noise Reduction"), TagInfo(0x003F, "NoiseReduction", N_("Noise Reduction"),
N_("Noise reduction"), N_("Noise reduction"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x0040, "EyeStartAF", N_("Eye Start AF"), TagInfo(0x0040, "EyeStartAF", N_("Eye Start AF"),
N_("Eye start AF"), N_("Eye start AF"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue),
TagInfo(0x0041, "RedEyeReduction", N_("Red Eye Reduction"), TagInfo(0x0041, "RedEyeReduction", N_("Red Eye Reduction"),
N_("Red eye reduction"), N_("Red eye reduction"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x0042, "FlashDefault", N_("Flash Default"), TagInfo(0x0042, "FlashDefault", N_("Flash Default"),
N_("Flash default"), N_("Flash default"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashDefaultA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashDefaultA100)),
TagInfo(0x0043, "AutoBracketOrder", N_("Auto Bracket Order"), TagInfo(0x0043, "AutoBracketOrder", N_("Auto Bracket Order"),
N_("Auto bracket order"), N_("Auto bracket order"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAutoBracketOrderA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAutoBracketOrderA100)),
TagInfo(0x0044, "FocusHoldButton", N_("Focus Hold Button"), TagInfo(0x0044, "FocusHoldButton", N_("Focus Hold Button"),
N_("Focus hold button"), N_("Focus hold button"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusHoldButtonA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusHoldButtonA100)),
TagInfo(0x0045, "AELButton", N_("AEL Button"), TagInfo(0x0045, "AELButton", N_("AEL Button"),
N_("AEL button"), N_("AEL button"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAELButtonA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAELButtonA100)),
TagInfo(0x0046, "ControlDialSet", N_("Control Dial Set"), TagInfo(0x0046, "ControlDialSet", N_("Control Dial Set"),
N_("Control dial set"), N_("Control dial set"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyControlDialSetA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyControlDialSetA100)),
TagInfo(0x0047, "ExposureCompensationMode", N_("Exposure Compensation Mode"), TagInfo(0x0047, "ExposureCompensationMode", N_("Exposure Compensation Mode"),
N_("Exposure compensation mode"), N_("Exposure compensation mode"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureCompensationModeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureCompensationModeA100)),
TagInfo(0x0048, "AFAssist", N_("AF Assist"), TagInfo(0x0048, "AFAssist", N_("AF Assist"),
N_("AF assist"), N_("AF assist"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue),
TagInfo(0x0049, "CardShutterLock", N_("Card Shutter Lock"), TagInfo(0x0049, "CardShutterLock", N_("Card Shutter Lock"),
N_("Card shutter lock"), N_("Card shutter lock"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue),
TagInfo(0x004A, "LensShutterLock", N_("Lens Shutter Lock"), TagInfo(0x004A, "LensShutterLock", N_("Lens Shutter Lock"),
N_("Lens shutter lock"), N_("Lens shutter lock"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue),
TagInfo(0x004B, "AFAreaIllumination", N_("AF Area Illumination"), TagInfo(0x004B, "AFAreaIllumination", N_("AF Area Illumination"),
N_("AF area illumination"), N_("AF area illumination"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAFAreaIlluminationA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAFAreaIlluminationA100)),
TagInfo(0x004C, "MonitorDisplayOff", N_("Monitor Display Off"), TagInfo(0x004C, "MonitorDisplayOff", N_("Monitor Display Off"),
N_("Monitor display off"), N_("Monitor display off"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMonitorDisplayOffA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMonitorDisplayOffA100)),
TagInfo(0x004D, "RecordDisplay", N_("Record Display"), TagInfo(0x004D, "RecordDisplay", N_("Record Display"),
N_("Record display"), N_("Record display"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyRecordDisplayA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyRecordDisplayA100)),
TagInfo(0x004E, "PlayDisplay", N_("Play Display"), TagInfo(0x004E, "PlayDisplay", N_("Play Display"),
N_("Play display"), N_("Play display"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyPlayDisplayA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyPlayDisplayA100)),
TagInfo(0x0050, "ExposureIndicator", N_("Exposure Indicator"), TagInfo(0x0050, "ExposureIndicator", N_("Exposure Indicator"),
N_("Exposure indicator"), N_("Exposure indicator"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)),
TagInfo(0x0051, "AELExposureIndicator", N_("AEL Exposure Indicator"), TagInfo(0x0051, "AELExposureIndicator", N_("AEL Exposure Indicator"),
N_("AEL exposure indicator (also indicates exposure for next shot when bracketing)"), N_("AEL exposure indicator (also indicates exposure for next shot when bracketing)"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)),
TagInfo(0x0052, "ExposureBracketingIndicatorLast", N_("Exposure Bracketing Indicator Last"), TagInfo(0x0052, "ExposureBracketingIndicatorLast", N_("Exposure Bracketing Indicator Last"),
N_("Exposure bracketing indicator last (indicator for last shot when bracketing)"), N_("Exposure bracketing indicator last (indicator for last shot when bracketing)"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)),
TagInfo(0x0053, "MeteringOffScaleIndicator", N_("Metering Off Scale Indicator"), TagInfo(0x0053, "MeteringOffScaleIndicator", N_("Metering Off Scale Indicator"),
N_("Metering off scale indicator (two flashing triangles when under or over metering scale)"), N_("Metering off scale indicator (two flashing triangles when under or over metering scale)"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringOffScaleIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringOffScaleIndicatorA100)),
TagInfo(0x0054, "FlashExposureIndicator", N_("Flash Exposure Indicator"), TagInfo(0x0054, "FlashExposureIndicator", N_("Flash Exposure Indicator"),
N_("Flash exposure indicator"), N_("Flash exposure indicator"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)),
TagInfo(0x0055, "FlashExposureIndicatorNext", N_("Flash Exposure Indicator Next"), TagInfo(0x0055, "FlashExposureIndicatorNext", N_("Flash Exposure Indicator Next"),
N_("Flash exposure indicator next (indicator for next shot when bracketing)"), N_("Flash exposure indicator next (indicator for next shot when bracketing)"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)),
TagInfo(0x0056, "FlashExposureIndicatorLast", N_("Flash Exposure Indicator Last"), TagInfo(0x0056, "FlashExposureIndicatorLast", N_("Flash Exposure Indicator Last"),
N_("Flash exposure indicator last (indicator for last shot when bracketing)"), N_("Flash exposure indicator last (indicator for last shot when bracketing)"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureIndicatorA100)),
TagInfo(0x0057, "ImageStabilization", N_("Image Stabilization"), TagInfo(0x0057, "ImageStabilization", N_("Image Stabilization"),
N_("Image stabilization"), N_("Image stabilization"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x0058, "FocusModeSwitch", N_("Focus Mode Switch"), TagInfo(0x0058, "FocusModeSwitch", N_("Focus Mode Switch"),
N_("Focus mode switch"), N_("Focus mode switch"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusModeSwitchA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFocusModeSwitchA100)),
TagInfo(0x0059, "FlashType", N_("Flash Type"), TagInfo(0x0059, "FlashType", N_("Flash Type"),
N_("Flash type"), N_("Flash type"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashTypeA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashTypeA100)),
TagInfo(0x005A, "Rotation", N_("Rotation"), TagInfo(0x005A, "Rotation", N_("Rotation"),
N_("Rotation"), N_("Rotation"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyRotation), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyRotation),
TagInfo(0x004B, "AELock", N_("AE Lock"), TagInfo(0x004B, "AELock", N_("AE Lock"),
N_("AE lock"), N_("AE lock"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1MltCsA100Id, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x005E, "ColorTemperature", N_("Color Temperature"), TagInfo(0x005E, "ColorTemperature", N_("Color Temperature"),
N_("Color temperature"), N_("Color temperature"),
sony1MltCsA100IfdId, makerTags, unsignedLong, 1, printValue), sony1MltCsA100Id, makerTags, unsignedLong, 1, printValue),
TagInfo(0x005F, "ColorCompensationFilter", N_("Color Compensation Filter"), TagInfo(0x005F, "ColorCompensationFilter", N_("Color Compensation Filter"),
N_("Color compensation filter: negative is green, positive is magenta"), N_("Color compensation filter: negative is green, positive is magenta"),
sony1MltCsA100IfdId, makerTags, unsignedLong, 1, printValue), sony1MltCsA100Id, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0060, "BatteryLevel", N_("Battery Level"), TagInfo(0x0060, "BatteryLevel", N_("Battery Level"),
N_("Battery level"), N_("Battery level"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyBatteryLevelA100)), sony1MltCsA100Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyBatteryLevelA100)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownSonyCsA100Tag)", "(UnknownSonyCsA100Tag)", TagInfo(0xffff, "(UnknownSonyCsA100Tag)", "(UnknownSonyCsA100Tag)",
N_("Unknown Sony Camera Settings A100 tag"), N_("Unknown Sony Camera Settings A100 tag"),
sony1MltCsA100IfdId, makerTags, unsignedShort, 1, printValue) sony1MltCsA100Id, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* MinoltaMakerNote::tagListCsA100() const TagInfo* MinoltaMakerNote::tagListCsA100()

@ -212,56 +212,56 @@ namespace Exiv2 {
const TagInfo Nikon1MakerNote::tagInfo_[] = { const TagInfo Nikon1MakerNote::tagInfo_[] = {
TagInfo(0x0001, "Version", N_("Version"), TagInfo(0x0001, "Version", N_("Version"),
N_("Nikon Makernote version"), N_("Nikon Makernote version"),
nikon1IfdId, makerTags, undefined, -1, printValue), nikon1Id, makerTags, undefined, -1, printValue),
TagInfo(0x0002, "ISOSpeed", N_("ISO Speed"), TagInfo(0x0002, "ISOSpeed", N_("ISO Speed"),
N_("ISO speed setting"), N_("ISO speed setting"),
nikon1IfdId, makerTags, unsignedShort, -1, print0x0002), nikon1Id, makerTags, unsignedShort, -1, print0x0002),
TagInfo(0x0003, "ColorMode", N_("Color Mode"), TagInfo(0x0003, "ColorMode", N_("Color Mode"),
N_("Color mode"), N_("Color mode"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0004, "Quality", N_("Quality"), TagInfo(0x0004, "Quality", N_("Quality"),
N_("Image quality setting"), N_("Image quality setting"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0005, "WhiteBalance", N_("White Balance"), TagInfo(0x0005, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0006, "Sharpening", N_("Sharpening"), TagInfo(0x0006, "Sharpening", N_("Sharpening"),
N_("Image sharpening setting"), N_("Image sharpening setting"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0007, "Focus", N_("Focus"), TagInfo(0x0007, "Focus", N_("Focus"),
N_("Focus mode"), N_("Focus mode"),
nikon1IfdId, makerTags, asciiString, -1, print0x0007), nikon1Id, makerTags, asciiString, -1, print0x0007),
TagInfo(0x0008, "FlashSetting", N_("Flash Setting"), TagInfo(0x0008, "FlashSetting", N_("Flash Setting"),
N_("Flash setting"), N_("Flash setting"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x000a, "0x000a", "0x000a", TagInfo(0x000a, "0x000a", "0x000a",
N_("Unknown"), N_("Unknown"),
nikon1IfdId, makerTags, unsignedRational, -1, printValue), nikon1Id, makerTags, unsignedRational, -1, printValue),
TagInfo(0x000f, "ISOSelection", N_("ISO Selection"), TagInfo(0x000f, "ISOSelection", N_("ISO Selection"),
N_("ISO selection"), N_("ISO selection"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0010, "DataDump", N_("Data Dump"), TagInfo(0x0010, "DataDump", N_("Data Dump"),
N_("Data dump"), N_("Data dump"),
nikon1IfdId, makerTags, undefined, -1, printValue), nikon1Id, makerTags, undefined, -1, printValue),
TagInfo(0x0080, "ImageAdjustment", N_("Image Adjustment"), TagInfo(0x0080, "ImageAdjustment", N_("Image Adjustment"),
N_("Image adjustment setting"), N_("Image adjustment setting"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0082, "AuxiliaryLens", N_("Auxiliary Lens"), TagInfo(0x0082, "AuxiliaryLens", N_("Auxiliary Lens"),
N_("Auxiliary lens (adapter)"), N_("Auxiliary lens (adapter)"),
nikon1IfdId, makerTags, asciiString, -1, printValue), nikon1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0085, "FocusDistance", N_("Focus Distance"), TagInfo(0x0085, "FocusDistance", N_("Focus Distance"),
N_("Manual focus distance"), N_("Manual focus distance"),
nikon1IfdId, makerTags, unsignedRational, -1, print0x0085), nikon1Id, makerTags, unsignedRational, -1, print0x0085),
TagInfo(0x0086, "DigitalZoom", N_("Digital Zoom"), TagInfo(0x0086, "DigitalZoom", N_("Digital Zoom"),
N_("Digital zoom setting"), N_("Digital zoom setting"),
nikon1IfdId, makerTags, unsignedRational, -1, print0x0086), nikon1Id, makerTags, unsignedRational, -1, print0x0086),
TagInfo(0x0088, "AFFocusPos", N_("AF Focus Position"), TagInfo(0x0088, "AFFocusPos", N_("AF Focus Position"),
N_("AF focus position information"), N_("AF focus position information"),
nikon1IfdId, makerTags, undefined, -1, print0x0088), nikon1Id, makerTags, undefined, -1, print0x0088),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikon1MnTag)", "(UnknownNikon1MnTag)", TagInfo(0xffff, "(UnknownNikon1MnTag)", "(UnknownNikon1MnTag)",
N_("Unknown Nikon1MakerNote tag"), N_("Unknown Nikon1MakerNote tag"),
nikon1IfdId, makerTags, asciiString, -1, printValue) nikon1Id, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* Nikon1MakerNote::tagList() const TagInfo* Nikon1MakerNote::tagList()
@ -455,41 +455,41 @@ namespace Exiv2 {
const TagInfo Nikon2MakerNote::tagInfo_[] = { const TagInfo Nikon2MakerNote::tagInfo_[] = {
TagInfo(0x0002, "0x0002", "0x0002", TagInfo(0x0002, "0x0002", "0x0002",
N_("Unknown"), N_("Unknown"),
nikon2IfdId, makerTags, asciiString, -1, printValue), nikon2Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0003, "Quality", N_("Quality"), TagInfo(0x0003, "Quality", N_("Quality"),
N_("Image quality setting"), N_("Image quality setting"),
nikon2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2Quality)), nikon2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2Quality)),
TagInfo(0x0004, "ColorMode", N_("Color Mode"), TagInfo(0x0004, "ColorMode", N_("Color Mode"),
N_("Color mode"), N_("Color mode"),
nikon2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2ColorMode)), nikon2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2ColorMode)),
TagInfo(0x0005, "ImageAdjustment", N_("Image Adjustment"), TagInfo(0x0005, "ImageAdjustment", N_("Image Adjustment"),
N_("Image adjustment setting"), N_("Image adjustment setting"),
nikon2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2ImageAdjustment)), nikon2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2ImageAdjustment)),
TagInfo(0x0006, "ISOSpeed", N_("ISO Speed"), TagInfo(0x0006, "ISOSpeed", N_("ISO Speed"),
N_("ISO speed setting"), N_("ISO speed setting"),
nikon2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2IsoSpeed)), nikon2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2IsoSpeed)),
TagInfo(0x0007, "WhiteBalance", N_("White Balance"), TagInfo(0x0007, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
nikon2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2WhiteBalance)), nikon2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikon2WhiteBalance)),
TagInfo(0x0008, "Focus", N_("Focus Mode"), TagInfo(0x0008, "Focus", N_("Focus Mode"),
N_("Focus mode"), N_("Focus mode"),
nikon2IfdId, makerTags, unsignedRational, -1, printValue), nikon2Id, makerTags, unsignedRational, -1, printValue),
TagInfo(0x0009, "0x0009", "0x0009", TagInfo(0x0009, "0x0009", "0x0009",
N_("Unknown"), N_("Unknown"),
nikon2IfdId, makerTags, asciiString, -1, printValue), nikon2Id, makerTags, asciiString, -1, printValue),
TagInfo(0x000a, "DigitalZoom", N_("Digital Zoom"), TagInfo(0x000a, "DigitalZoom", N_("Digital Zoom"),
N_("Digital zoom setting"), N_("Digital zoom setting"),
nikon2IfdId, makerTags, unsignedRational, -1, print0x000a), nikon2Id, makerTags, unsignedRational, -1, print0x000a),
TagInfo(0x000b, "AuxiliaryLens", N_("Auxiliary Lens"), TagInfo(0x000b, "AuxiliaryLens", N_("Auxiliary Lens"),
N_("Auxiliary lens (adapter)"), N_("Auxiliary lens (adapter)"),
nikon2IfdId, makerTags, unsignedShort, -1, printValue), nikon2Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0f00, "0x0f00", "0x0f00", TagInfo(0x0f00, "0x0f00", "0x0f00",
N_("Unknown"), N_("Unknown"),
nikon2IfdId, makerTags, unsignedLong, -1, printValue), nikon2Id, makerTags, unsignedLong, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikon2MnTag)", "(UnknownNikon2MnTag)", TagInfo(0xffff, "(UnknownNikon2MnTag)", "(UnknownNikon2MnTag)",
N_("Unknown Nikon2MakerNote tag"), N_("Unknown Nikon2MakerNote tag"),
nikon2IfdId, makerTags, asciiString, -1, printValue) nikon2Id, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* Nikon2MakerNote::tagList() const TagInfo* Nikon2MakerNote::tagList()
@ -521,99 +521,99 @@ namespace Exiv2 {
// Nikon3 MakerNote Tag Info // Nikon3 MakerNote Tag Info
const TagInfo Nikon3MakerNote::tagInfo_[] = { const TagInfo Nikon3MakerNote::tagInfo_[] = {
TagInfo(0x0001, "Version", N_("Version"), N_("Nikon Makernote version"), nikon3IfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0001, "Version", N_("Version"), N_("Nikon Makernote version"), nikon3Id, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0002, "ISOSpeed", N_("ISO Speed"), N_("ISO speed setting"), nikon3IfdId, makerTags, unsignedShort, -1, print0x0002), TagInfo(0x0002, "ISOSpeed", N_("ISO Speed"), N_("ISO speed setting"), nikon3Id, makerTags, unsignedShort, -1, print0x0002),
TagInfo(0x0003, "ColorMode", N_("Color Mode"), N_("Color mode"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0003, "ColorMode", N_("Color Mode"), N_("Color mode"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0004, "Quality", N_("Quality"), N_("Image quality setting"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0004, "Quality", N_("Quality"), N_("Image quality setting"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0005, "WhiteBalance", N_("White Balance"), N_("White balance"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0005, "WhiteBalance", N_("White Balance"), N_("White balance"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0006, "Sharpening", N_("Sharpening"), N_("Image sharpening setting"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0006, "Sharpening", N_("Sharpening"), N_("Image sharpening setting"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0007, "Focus", N_("Focus"), N_("Focus mode"), nikon3IfdId, makerTags, asciiString, -1, print0x0007), TagInfo(0x0007, "Focus", N_("Focus"), N_("Focus mode"), nikon3Id, makerTags, asciiString, -1, print0x0007),
TagInfo(0x0008, "FlashSetting", N_("Flash Setting"), N_("Flash setting"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0008, "FlashSetting", N_("Flash Setting"), N_("Flash setting"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0009, "FlashDevice", N_("Flash Device"), N_("Flash device"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0009, "FlashDevice", N_("Flash Device"), N_("Flash device"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x000a, "0x000a", "0x000a", N_("Unknown"), nikon3IfdId, makerTags, unsignedRational, -1, printValue), TagInfo(0x000a, "0x000a", "0x000a", N_("Unknown"), nikon3Id, makerTags, unsignedRational, -1, printValue),
TagInfo(0x000b, "WhiteBalanceBias", N_("White Balance Bias"), N_("White balance bias"), nikon3IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x000b, "WhiteBalanceBias", N_("White Balance Bias"), N_("White balance bias"), nikon3Id, makerTags, signedShort, -1, printValue),
TagInfo(0x000c, "WB_RBLevels", N_("WB RB Levels"), N_("WB RB levels"), nikon3IfdId, makerTags, unsignedRational, -1, printValue), TagInfo(0x000c, "WB_RBLevels", N_("WB RB Levels"), N_("WB RB levels"), nikon3Id, makerTags, unsignedRational, -1, printValue),
TagInfo(0x000d, "ProgramShift", N_("Program Shift"), N_("Program shift"), nikon3IfdId, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)), TagInfo(0x000d, "ProgramShift", N_("Program Shift"), N_("Program shift"), nikon3Id, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)),
TagInfo(0x000e, "ExposureDiff", N_("Exposure Difference"), N_("Exposure difference"), nikon3IfdId, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)), TagInfo(0x000e, "ExposureDiff", N_("Exposure Difference"), N_("Exposure difference"), nikon3Id, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)),
TagInfo(0x000f, "ISOSelection", N_("ISO Selection"), N_("ISO selection"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x000f, "ISOSelection", N_("ISO Selection"), N_("ISO selection"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0010, "DataDump", N_("Data Dump"), N_("Data dump"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0010, "DataDump", N_("Data Dump"), N_("Data dump"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0011, "Preview", N_("Pointer to a preview image"), N_("Offset to an IFD containing a preview image"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0011, "Preview", N_("Pointer to a preview image"), N_("Offset to an IFD containing a preview image"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0012, "FlashComp", N_("Flash Comp"), N_("Flash compensation setting"), nikon3IfdId, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)), TagInfo(0x0012, "FlashComp", N_("Flash Comp"), N_("Flash compensation setting"), nikon3Id, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)),
TagInfo(0x0013, "ISOSettings", N_("ISO Settings"), N_("ISO setting"), nikon3IfdId, makerTags, unsignedShort, -1, print0x0002), // use 0x0002 print fct TagInfo(0x0013, "ISOSettings", N_("ISO Settings"), N_("ISO setting"), nikon3Id, makerTags, unsignedShort, -1, print0x0002), // use 0x0002 print fct
TagInfo(0x0016, "ImageBoundary", N_("Image Boundary"), N_("Image boundary"), nikon3IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0016, "ImageBoundary", N_("Image Boundary"), N_("Image boundary"), nikon3Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0017, "FlashExposureComp", "Flash Exposure Comp", N_("Flash exposure comp"), nikon3IfdId, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)), TagInfo(0x0017, "FlashExposureComp", "Flash Exposure Comp", N_("Flash exposure comp"), nikon3Id, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)),
TagInfo(0x0018, "FlashBracketComp", N_("Flash Bracket Comp"), N_("Flash bracket compensation applied"), nikon3IfdId, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)), // use 0x0012 print fct TagInfo(0x0018, "FlashBracketComp", N_("Flash Bracket Comp"), N_("Flash bracket compensation applied"), nikon3Id, makerTags, undefined, -1, EXV_PRINT_TAG(nikonFlashComp)), // use 0x0012 print fct
TagInfo(0x0019, "ExposureBracketComp", N_("Exposure Bracket Comp"), N_("AE bracket compensation applied"), nikon3IfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0019, "ExposureBracketComp", N_("Exposure Bracket Comp"), N_("AE bracket compensation applied"), nikon3Id, makerTags, signedRational, -1, printValue),
TagInfo(0x001a, "ImageProcessing", N_("Image Processing"), N_("Image processing"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x001a, "ImageProcessing", N_("Image Processing"), N_("Image processing"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x001b, "CropHiSpeed", N_("Crop High Speed"), N_("Crop high speed"), nikon3IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x001b, "CropHiSpeed", N_("Crop High Speed"), N_("Crop high speed"), nikon3Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x001c, "ExposureTuning", N_("Exposure Tuning"), N_("Exposure tuning"), nikon3IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x001c, "ExposureTuning", N_("Exposure Tuning"), N_("Exposure tuning"), nikon3Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x001d, "SerialNumber", N_("Serial Number"), N_("Serial Number"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x001d, "SerialNumber", N_("Serial Number"), N_("Serial Number"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x001e, "ColorSpace", N_("Color Space"), N_("Color space"), nikon3IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonColorSpace)), TagInfo(0x001e, "ColorSpace", N_("Color Space"), N_("Color space"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonColorSpace)),
TagInfo(0x001f, "VRInfo", N_("VR Info"), N_("VR info"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x001f, "VRInfo", N_("VR Info"), N_("VR info"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0020, "ImageAuthentication", N_("Image Authentication"), N_("Image authentication"), nikon3IfdId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(nikonOffOn)), TagInfo(0x0020, "ImageAuthentication", N_("Image Authentication"), N_("Image authentication"), nikon3Id, makerTags, unsignedByte, -1, EXV_PRINT_TAG(nikonOffOn)),
TagInfo(0x0022, "ActiveDLighting", N_("ActiveD-Lighting"), N_("ActiveD-lighting"), nikon3IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonActiveDLighning)), TagInfo(0x0022, "ActiveDLighting", N_("ActiveD-Lighting"), N_("ActiveD-lighting"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonActiveDLighning)),
TagInfo(0x0023, "PictureControl", N_("Picture Control"), N_(" Picture control"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0023, "PictureControl", N_("Picture Control"), N_(" Picture control"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0024, "WorldTime", N_("World Time"), N_("World time"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0024, "WorldTime", N_("World Time"), N_("World time"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0025, "ISOInfo", N_("ISO Info"), N_("ISO info"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0025, "ISOInfo", N_("ISO Info"), N_("ISO info"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x002a, "VignetteControl", N_("Vignette Control"), N_("Vignette control"), nikon3IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonOlnh)), TagInfo(0x002a, "VignetteControl", N_("Vignette Control"), N_("Vignette control"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonOlnh)),
TagInfo(0x0080, "ImageAdjustment", N_("Image Adjustment"), N_("Image adjustment setting"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0080, "ImageAdjustment", N_("Image Adjustment"), N_("Image adjustment setting"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0081, "ToneComp", N_("Tone Compensation"), N_("Tone compensation"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0081, "ToneComp", N_("Tone Compensation"), N_("Tone compensation"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0082, "AuxiliaryLens", N_("Auxiliary Lens"), N_("Auxiliary lens (adapter)"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0082, "AuxiliaryLens", N_("Auxiliary Lens"), N_("Auxiliary lens (adapter)"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0083, "LensType", N_("Lens Type"), N_("Lens type"), nikon3IfdId, makerTags, unsignedByte, -1, print0x0083), TagInfo(0x0083, "LensType", N_("Lens Type"), N_("Lens type"), nikon3Id, makerTags, unsignedByte, -1, print0x0083),
TagInfo(0x0084, "Lens", N_("Lens"), N_("Lens"), nikon3IfdId, makerTags, unsignedRational, -1, print0x0084), TagInfo(0x0084, "Lens", N_("Lens"), N_("Lens"), nikon3Id, makerTags, unsignedRational, -1, print0x0084),
TagInfo(0x0085, "FocusDistance", N_("Focus Distance"), N_("Manual focus distance"), nikon3IfdId, makerTags, unsignedRational, -1, print0x0085), TagInfo(0x0085, "FocusDistance", N_("Focus Distance"), N_("Manual focus distance"), nikon3Id, makerTags, unsignedRational, -1, print0x0085),
TagInfo(0x0086, "DigitalZoom", N_("Digital Zoom"), N_("Digital zoom setting"), nikon3IfdId, makerTags, unsignedRational, -1, print0x0086), TagInfo(0x0086, "DigitalZoom", N_("Digital Zoom"), N_("Digital zoom setting"), nikon3Id, makerTags, unsignedRational, -1, print0x0086),
TagInfo(0x0087, "FlashMode", N_("Flash Mode"), N_("Mode of flash used"), nikon3IfdId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(nikonFlashMode)), TagInfo(0x0087, "FlashMode", N_("Flash Mode"), N_("Mode of flash used"), nikon3Id, makerTags, unsignedByte, -1, EXV_PRINT_TAG(nikonFlashMode)),
TagInfo(0x0088, "AFInfo", N_("AF Info"), N_("AF info"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0088, "AFInfo", N_("AF Info"), N_("AF info"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0089, "ShootingMode", N_("Shooting Mode"), N_("Shooting mode"), nikon3IfdId, makerTags, unsignedShort, -1, print0x0089), TagInfo(0x0089, "ShootingMode", N_("Shooting Mode"), N_("Shooting mode"), nikon3Id, makerTags, unsignedShort, -1, print0x0089),
TagInfo(0x008a, "AutoBracketRelease", N_("Auto Bracket Release"), N_("Auto bracket release"), nikon3IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonAutoBracketRelease)), TagInfo(0x008a, "AutoBracketRelease", N_("Auto Bracket Release"), N_("Auto bracket release"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonAutoBracketRelease)),
TagInfo(0x008b, "LensFStops", N_("Lens FStops"), N_("Lens FStops"), nikon3IfdId, makerTags, undefined, -1, print0x008b), TagInfo(0x008b, "LensFStops", N_("Lens FStops"), N_("Lens FStops"), nikon3Id, makerTags, undefined, -1, print0x008b),
TagInfo(0x008c, "ContrastCurve", N_("Contrast Curve"), N_("Contrast curve"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x008c, "ContrastCurve", N_("Contrast Curve"), N_("Contrast curve"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x008d, "ColorHue", N_("Color Hue"), N_("Color hue"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x008d, "ColorHue", N_("Color Hue"), N_("Color hue"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x008f, "SceneMode", N_("Scene Mode"), N_("Scene mode"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x008f, "SceneMode", N_("Scene Mode"), N_("Scene mode"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0090, "LightSource", N_("Light Source"), N_("Light source"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0090, "LightSource", N_("Light Source"), N_("Light source"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0091, "ShotInfo", "Shot Info", N_("Shot info"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0091, "ShotInfo", "Shot Info", N_("Shot info"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0092, "HueAdjustment", N_("Hue Adjustment"), N_("Hue adjustment"), nikon3IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0092, "HueAdjustment", N_("Hue Adjustment"), N_("Hue adjustment"), nikon3Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0093, "NEFCompression", N_("NEF Compression"), N_("NEF compression"), nikon3IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonNefCompression)), TagInfo(0x0093, "NEFCompression", N_("NEF Compression"), N_("NEF compression"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonNefCompression)),
TagInfo(0x0094, "Saturation", N_("Saturation"), N_("Saturation"), nikon3IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0094, "Saturation", N_("Saturation"), N_("Saturation"), nikon3Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0095, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0095, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x0096, "LinearizationTable", N_("Linearization Table"), N_("Linearization table"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0096, "LinearizationTable", N_("Linearization Table"), N_("Linearization table"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0097, "ColorBalance", N_("Color Balance"), N_("Color balance"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0097, "ColorBalance", N_("Color Balance"), N_("Color balance"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0098, "LensData", N_("Lens Data"), N_("Lens data settings"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0098, "LensData", N_("Lens Data"), N_("Lens data settings"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0099, "RawImageCenter", N_("Raw Image Center"), N_("Raw image center"), nikon3IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0099, "RawImageCenter", N_("Raw Image Center"), N_("Raw image center"), nikon3Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x009a, "SensorPixelSize", N_("Sensor Pixel Size"), N_("Sensor pixel size"), nikon3IfdId, makerTags, unsignedRational, -1, print0x009a), TagInfo(0x009a, "SensorPixelSize", N_("Sensor Pixel Size"), N_("Sensor pixel size"), nikon3Id, makerTags, unsignedRational, -1, print0x009a),
TagInfo(0x009b, "0x009b", "0x009b", N_("Unknown"), nikon3IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x009b, "0x009b", "0x009b", N_("Unknown"), nikon3Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x009c, "SceneAssist", N_("Scene Assist"), N_("Scene assist"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x009c, "SceneAssist", N_("Scene Assist"), N_("Scene assist"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x009e, "RetouchHistory", N_("Retouch History"), N_("Retouch history"), nikon3IfdId, makerTags, unsignedShort, -1, print0x009e), TagInfo(0x009e, "RetouchHistory", N_("Retouch History"), N_("Retouch history"), nikon3Id, makerTags, unsignedShort, -1, print0x009e),
TagInfo(0x009f, "0x009f", "0x009f", N_("Unknown"), nikon3IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x009f, "0x009f", "0x009f", N_("Unknown"), nikon3Id, makerTags, signedShort, -1, printValue),
TagInfo(0x00a0, "SerialNO", N_("Serial NO"), N_("Camera serial number, usually starts with \"NO= \""), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00a0, "SerialNO", N_("Serial NO"), N_("Camera serial number, usually starts with \"NO= \""), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00a2, "ImageDataSize", N_("Image Data Size"), N_("Image data size"), nikon3IfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x00a2, "ImageDataSize", N_("Image Data Size"), N_("Image data size"), nikon3Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x00a3, "0x00a3", "0x00a3", N_("Unknown"), nikon3IfdId, makerTags, unsignedByte, -1, printValue), TagInfo(0x00a3, "0x00a3", "0x00a3", N_("Unknown"), nikon3Id, makerTags, unsignedByte, -1, printValue),
TagInfo(0x00a5, "ImageCount", N_("Image Count"), N_("Image count"), nikon3IfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x00a5, "ImageCount", N_("Image Count"), N_("Image count"), nikon3Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x00a6, "DeletedImageCount", N_("Deleted Image Count"), N_("Deleted image count"), nikon3IfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x00a6, "DeletedImageCount", N_("Deleted Image Count"), N_("Deleted image count"), nikon3Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x00a7, "ShutterCount", N_("Shutter Count"), N_("Number of shots taken by camera"), nikon3IfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x00a7, "ShutterCount", N_("Shutter Count"), N_("Number of shots taken by camera"), nikon3Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x00a8, "FlashInfo", "Flash Info", N_("Flash info"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x00a8, "FlashInfo", "Flash Info", N_("Flash info"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x00a9, "ImageOptimization", N_("Image Optimization"), N_("Image optimization"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00a9, "ImageOptimization", N_("Image Optimization"), N_("Image optimization"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00aa, "Saturation", N_("Saturation"), N_("Saturation"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00aa, "Saturation", N_("Saturation"), N_("Saturation"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00ab, "VariProgram", N_("Program Variation"), N_("Program variation"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00ab, "VariProgram", N_("Program Variation"), N_("Program variation"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00ac, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00ac, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00ad, "AFResponse", N_("AF Response"), N_("AF response"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00ad, "AFResponse", N_("AF Response"), N_("AF response"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00b0, "MultiExposure", "Multi Exposure", N_("Multi exposure"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x00b0, "MultiExposure", "Multi Exposure", N_("Multi exposure"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x00b1, "HighISONoiseReduction", N_("High ISO Noise Reduction"), N_("High ISO Noise Reduction"), nikon3IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonHighISONoiseReduction)), TagInfo(0x00b1, "HighISONoiseReduction", N_("High ISO Noise Reduction"), N_("High ISO Noise Reduction"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonHighISONoiseReduction)),
TagInfo(0x00b3, "ToningEffect", "Toning Effect", N_("Toning effect"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x00b3, "ToningEffect", "Toning Effect", N_("Toning effect"), nikon3Id, makerTags, asciiString, -1, printValue),
TagInfo(0x00b7, "AFInfo2", "AF Info 2", N_("AF info 2"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x00b7, "AFInfo2", "AF Info 2", N_("AF info 2"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x00b8, "FileInfo", "File Info", N_("File info"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x00b8, "FileInfo", "File Info", N_("File info"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0e00, "PrintIM", N_("Print IM"), N_("PrintIM information"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e00, "PrintIM", N_("Print IM"), N_("PrintIM information"), nikon3Id, makerTags, undefined, -1, printValue),
// TODO: Add Capture Data decoding implementation. // TODO: Add Capture Data decoding implementation.
TagInfo(0x0e01, "CaptureData", N_("Capture Data"), N_("Capture data"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e01, "CaptureData", N_("Capture Data"), N_("Capture data"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0e09, "CaptureVersion", N_("Capture Version"), N_("Capture version"), nikon3IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0e09, "CaptureVersion", N_("Capture Version"), N_("Capture version"), nikon3Id, makerTags, asciiString, -1, printValue),
// TODO: Add Capture Offsets decoding implementation. // TODO: Add Capture Offsets decoding implementation.
TagInfo(0x0e0e, "CaptureOffsets", N_("Capture Offsets"), N_("Capture offsets"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e0e, "CaptureOffsets", N_("Capture Offsets"), N_("Capture offsets"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0e10, "ScanIFD", "Scan IFD", N_("Scan IFD"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e10, "ScanIFD", "Scan IFD", N_("Scan IFD"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0e1d, "ICCProfile", "ICC Profile", N_("ICC profile"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e1d, "ICCProfile", "ICC Profile", N_("ICC profile"), nikon3Id, makerTags, undefined, -1, printValue),
TagInfo(0x0e1e, "CaptureOutput", "Capture Output", N_("Capture output"), nikon3IfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e1e, "CaptureOutput", "Capture Output", N_("Capture output"), nikon3Id, makerTags, undefined, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikon3MnTag)", "(UnknownNikon3MnTag)", N_("Unknown Nikon3MakerNote tag"), nikon3IfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownNikon3MnTag)", "(UnknownNikon3MnTag)", N_("Unknown Nikon3MakerNote tag"), nikon3Id, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagList() const TagInfo* Nikon3MakerNote::tagList()
@ -642,10 +642,10 @@ namespace Exiv2 {
// Nikon3 Vibration Reduction Tag Info // Nikon3 Vibration Reduction Tag Info
const TagInfo Nikon3MakerNote::tagInfoVr_[] = { const TagInfo Nikon3MakerNote::tagInfoVr_[] = {
TagInfo(0, "Version", N_("Version"), N_("Version"), nikonVrIfdId, makerTags, undefined, 4, printExifVersion), TagInfo(0, "Version", N_("Version"), N_("Version"), nikonVrId, makerTags, undefined, 4, printExifVersion),
TagInfo(4, "VibrationReduction", N_("Vibration Reduction"), N_("Vibration reduction"), nikonVrIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOnOff)), TagInfo(4, "VibrationReduction", N_("Vibration Reduction"), N_("Vibration reduction"), nikonVrId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOnOff)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonVrTag)", "(UnknownNikonVrTag)", N_("Unknown Nikon Vibration Reduction Tag"), nikonVrIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonVrTag)", "(UnknownNikonVrTag)", N_("Unknown Nikon Vibration Reduction Tag"), nikonVrId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListVr() const TagInfo* Nikon3MakerNote::tagListVr()
@ -687,21 +687,21 @@ namespace Exiv2 {
// Nikon3 Picture Control Tag Info // Nikon3 Picture Control Tag Info
const TagInfo Nikon3MakerNote::tagInfoPc_[] = { const TagInfo Nikon3MakerNote::tagInfoPc_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonPcIfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonPcId, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "Name", N_("Name"), N_("Name"), nikonPcIfdId, makerTags, asciiString, 20, printValue), TagInfo( 4, "Name", N_("Name"), N_("Name"), nikonPcId, makerTags, asciiString, 20, printValue),
TagInfo(24, "Base", N_("Base"), N_("Base"), nikonPcIfdId, makerTags, asciiString, 20, printValue), TagInfo(24, "Base", N_("Base"), N_("Base"), nikonPcId, makerTags, asciiString, 20, printValue),
TagInfo(48, "Adjust", N_("Adjust"), N_("Adjust"), nikonPcIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonAdjust)), TagInfo(48, "Adjust", N_("Adjust"), N_("Adjust"), nikonPcId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonAdjust)),
TagInfo(49, "QuickAdjust", N_("Quick Adjust"), N_("Quick adjust"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(49, "QuickAdjust", N_("Quick Adjust"), N_("Quick adjust"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
TagInfo(50, "Sharpness", N_("Sharpness"), N_("Sharpness"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(50, "Sharpness", N_("Sharpness"), N_("Sharpness"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
TagInfo(51, "Contrast", N_("Contrast"), N_("Contrast"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(51, "Contrast", N_("Contrast"), N_("Contrast"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
TagInfo(52, "Brightness", N_("Brightness"), N_("Brightness"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(52, "Brightness", N_("Brightness"), N_("Brightness"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
TagInfo(53, "Saturation", N_("Saturation"), N_("Saturation"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(53, "Saturation", N_("Saturation"), N_("Saturation"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
TagInfo(54, "HueAdjustment", N_("Hue Adjustment"), N_("Hue adjustment"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(54, "HueAdjustment", N_("Hue Adjustment"), N_("Hue adjustment"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
TagInfo(55, "FilterEffect", N_("Filter Effect"), N_("Filter effect"), nikonPcIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFilterEffect)), TagInfo(55, "FilterEffect", N_("Filter Effect"), N_("Filter effect"), nikonPcId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFilterEffect)),
TagInfo(56, "ToningEffect", N_("Toning Effect"), N_("Toning effect"), nikonPcIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonToningEffect)), TagInfo(56, "ToningEffect", N_("Toning Effect"), N_("Toning effect"), nikonPcId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonToningEffect)),
TagInfo(57, "ToningSaturation", N_("Toning Saturation"), N_("Toning saturation"), nikonPcIfdId, makerTags, unsignedByte, 1, printPictureControl), TagInfo(57, "ToningSaturation", N_("Toning Saturation"), N_("Toning saturation"), nikonPcId, makerTags, unsignedByte, 1, printPictureControl),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonPcTag)", "(UnknownNikonPcTag)", N_("Unknown Nikon Picture Control Tag"), nikonPcIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonPcTag)", "(UnknownNikonPcTag)", N_("Unknown Nikon Picture Control Tag"), nikonPcId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListPc() const TagInfo* Nikon3MakerNote::tagListPc()
@ -711,11 +711,11 @@ namespace Exiv2 {
// Nikon3 World Time Tag Info // Nikon3 World Time Tag Info
const TagInfo Nikon3MakerNote::tagInfoWt_[] = { const TagInfo Nikon3MakerNote::tagInfoWt_[] = {
TagInfo(0, "Timezone", N_("Timezone"), N_("Timezone"), nikonWtIfdId, makerTags, signedShort, 1, printTimeZone), TagInfo(0, "Timezone", N_("Timezone"), N_("Timezone"), nikonWtId, makerTags, signedShort, 1, printTimeZone),
TagInfo(2, "DaylightSavings", N_("Daylight Savings"), N_("Daylight savings"), nikonWtIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonYesNo)), TagInfo(2, "DaylightSavings", N_("Daylight Savings"), N_("Daylight savings"), nikonWtId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonYesNo)),
TagInfo(3, "DateDisplayFormat", N_("Date Display Format"), N_("Date display format"), nikonWtIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonDateDisplayFormat)), TagInfo(3, "DateDisplayFormat", N_("Date Display Format"), N_("Date display format"), nikonWtId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonDateDisplayFormat)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonWtTag)", "(UnknownNikonWtTag)", N_("Unknown Nikon World Time Tag"), nikonWtIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonWtTag)", "(UnknownNikonWtTag)", N_("Unknown Nikon World Time Tag"), nikonWtId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListWt() const TagInfo* Nikon3MakerNote::tagListWt()
@ -742,12 +742,12 @@ namespace Exiv2 {
// Nikon3 ISO Info Tag Info // Nikon3 ISO Info Tag Info
const TagInfo Nikon3MakerNote::tagInfoIi_[] = { const TagInfo Nikon3MakerNote::tagInfoIi_[] = {
TagInfo( 0, "ISO", N_("ISO"), N_("ISO"), nikonIiIfdId, makerTags, unsignedByte, 1, printIiIso), TagInfo( 0, "ISO", N_("ISO"), N_("ISO"), nikonIiId, makerTags, unsignedByte, 1, printIiIso),
TagInfo( 4, "ISOExpansion", N_("ISO Expansion"), N_("ISO expansion"), nikonIiIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonIsoExpansion)), TagInfo( 4, "ISOExpansion", N_("ISO Expansion"), N_("ISO expansion"), nikonIiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonIsoExpansion)),
TagInfo( 6, "ISO2", N_("ISO 2"), N_("ISO 2"), nikonIiIfdId, makerTags, unsignedByte, 1, printIiIso), TagInfo( 6, "ISO2", N_("ISO 2"), N_("ISO 2"), nikonIiId, makerTags, unsignedByte, 1, printIiIso),
TagInfo(10, "ISOExpansion2", N_("ISO Expansion 2"), N_("ISO expansion 2"), nikonIiIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonIsoExpansion)), TagInfo(10, "ISOExpansion2", N_("ISO Expansion 2"), N_("ISO expansion 2"), nikonIiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonIsoExpansion)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonIiTag)", "(UnknownNikonIiTag)", N_("Unknown Nikon Iso Info Tag"), nikonIiIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonIiTag)", "(UnknownNikonIiTag)", N_("Unknown Nikon Iso Info Tag"), nikonIiId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListIi() const TagInfo* Nikon3MakerNote::tagListIi()
@ -797,11 +797,11 @@ namespace Exiv2 {
// Nikon3 Auto Focus Tag Info // Nikon3 Auto Focus Tag Info
const TagInfo Nikon3MakerNote::tagInfoAf_[] = { const TagInfo Nikon3MakerNote::tagInfoAf_[] = {
TagInfo( 0, "AFAreaMode", N_("AF Area Mode"), N_("AF area mode"), nikonAfIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonAfAreaMode)), TagInfo( 0, "AFAreaMode", N_("AF Area Mode"), N_("AF area mode"), nikonAfId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonAfAreaMode)),
TagInfo( 1, "AFPoint", N_("AF Point"), N_("AF point"), nikonAfIfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonAfPoint)), TagInfo( 1, "AFPoint", N_("AF Point"), N_("AF point"), nikonAfId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonAfPoint)),
TagInfo( 2, "AFPointsInFocus", N_("AF Points In Focus"), N_("AF points in focus"), nikonAfIfdId, makerTags, unsignedShort, 1, printAfPointsInFocus), TagInfo( 2, "AFPointsInFocus", N_("AF Points In Focus"), N_("AF points in focus"), nikonAfId, makerTags, unsignedShort, 1, printAfPointsInFocus),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonAfTag)", "(UnknownNikonAfTag)", N_("Unknown Nikon Auto Focus Tag"), nikonAfIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonAfTag)", "(UnknownNikonAfTag)", N_("Unknown Nikon Auto Focus Tag"), nikonAfId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListAf() const TagInfo* Nikon3MakerNote::tagListAf()
@ -818,21 +818,21 @@ namespace Exiv2 {
// Nikon3 Auto Focus Tag Info // Nikon3 Auto Focus Tag Info
const TagInfo Nikon3MakerNote::tagInfoAf2_[] = { const TagInfo Nikon3MakerNote::tagInfoAf2_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonAf2IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonAf2Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "ContrastDetectAF", N_("Contrast Detect AF"), N_("Contrast detect AF"), nikonAf2IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn)), TagInfo( 4, "ContrastDetectAF", N_("Contrast Detect AF"), N_("Contrast detect AF"), nikonAf2Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn)),
TagInfo( 5, "AFAreaMode", N_("AF Area Mode"), N_("AF area mode"), nikonAf2IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 5, "AFAreaMode", N_("AF Area Mode"), N_("AF area mode"), nikonAf2Id, makerTags, unsignedByte, 1, printValue),
TagInfo( 6, "PhaseDetectAF", N_("Phase Detect AF"), N_("Phase detect AF"), nikonAf2IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonPhaseDetectAF)), TagInfo( 6, "PhaseDetectAF", N_("Phase Detect AF"), N_("Phase detect AF"), nikonAf2Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonPhaseDetectAF)),
TagInfo( 7, "PrimaryAFPoint", N_("Primary AF Point"), N_("Primary AF point"), nikonAf2IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 7, "PrimaryAFPoint", N_("Primary AF Point"), N_("Primary AF point"), nikonAf2Id, makerTags, unsignedByte, 1, printValue),
TagInfo( 8, "AFPointsUsed", N_("AF Points Used"), N_("AF points used"), nikonAf2IfdId, makerTags, unsignedByte, 7, printValue), TagInfo( 8, "AFPointsUsed", N_("AF Points Used"), N_("AF points used"), nikonAf2Id, makerTags, unsignedByte, 7, printValue),
TagInfo( 16, "AFImageWidth", N_("AF Image Width"), N_("AF image width"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 16, "AFImageWidth", N_("AF Image Width"), N_("AF image width"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
TagInfo( 18, "AFImageHeight", N_("AF Image Height"), N_("AF image height"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 18, "AFImageHeight", N_("AF Image Height"), N_("AF image height"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
TagInfo( 20, "AFAreaXPosition", N_("AF Area X Position"), N_("AF area x position"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 20, "AFAreaXPosition", N_("AF Area X Position"), N_("AF area x position"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
TagInfo( 22, "AFAreaYPosition", N_("AF Area Y Position"), N_("AF area y position"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 22, "AFAreaYPosition", N_("AF Area Y Position"), N_("AF area y position"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
TagInfo( 24, "AFAreaWidth", N_("AF Area Width"), N_("AF area width"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 24, "AFAreaWidth", N_("AF Area Width"), N_("AF area width"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
TagInfo( 26, "AFAreaHeight", N_("AF Area Height"), N_("AF area height"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 26, "AFAreaHeight", N_("AF Area Height"), N_("AF area height"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
TagInfo( 28, "ContrastDetectAFInFocus", N_("Contrast Detect AF In Focus"), N_("Contrast detect AF in focus"), nikonAf2IfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 28, "ContrastDetectAFInFocus", N_("Contrast Detect AF In Focus"), N_("Contrast detect AF in focus"), nikonAf2Id, makerTags, unsignedShort, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonAf2Tag)", "(UnknownNikonAf2Tag)", N_("Unknown Nikon Auto Focus 2 Tag"), nikonAf2IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonAf2Tag)", "(UnknownNikonAf2Tag)", N_("Unknown Nikon Auto Focus 2 Tag"), nikonAf2Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListAf2() const TagInfo* Nikon3MakerNote::tagListAf2()
@ -842,11 +842,11 @@ namespace Exiv2 {
// Nikon3 File Info Tag Info // Nikon3 File Info Tag Info
const TagInfo Nikon3MakerNote::tagInfoFi_[] = { const TagInfo Nikon3MakerNote::tagInfoFi_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFiIfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFiId, makerTags, undefined, 4, printExifVersion),
TagInfo( 6, "DirectoryNumber", N_("Directory Number"), N_("Directory number"), nikonFiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 6, "DirectoryNumber", N_("Directory Number"), N_("Directory number"), nikonFiId, makerTags, unsignedShort, 1, printValue),
TagInfo( 8, "FileNumber", N_("File Number"), N_("File number"), nikonFiIfdId, makerTags, unsignedShort, 1, printValue), TagInfo( 8, "FileNumber", N_("File Number"), N_("File number"), nikonFiId, makerTags, unsignedShort, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonFiTag)", "(UnknownNikonFiTag)", N_("Unknown Nikon File Info Tag"), nikonFiIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonFiTag)", "(UnknownNikonFiTag)", N_("Unknown Nikon File Info Tag"), nikonFiId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListFi() const TagInfo* Nikon3MakerNote::tagListFi()
@ -863,12 +863,12 @@ namespace Exiv2 {
// Nikon3 Multi Exposure Tag Info // Nikon3 Multi Exposure Tag Info
const TagInfo Nikon3MakerNote::tagInfoMe_[] = { const TagInfo Nikon3MakerNote::tagInfoMe_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonMeIfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonMeId, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "MultiExposureMode", N_("Multi Exposure Mode"), N_("Multi exposure mode"), nikonMeIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(nikonMultiExposureMode)), TagInfo( 4, "MultiExposureMode", N_("Multi Exposure Mode"), N_("Multi exposure mode"), nikonMeId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(nikonMultiExposureMode)),
TagInfo( 8, "MultiExposureShots", N_("Multi Exposure Shots"), N_("Multi exposure shots"), nikonMeIfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 8, "MultiExposureShots", N_("Multi Exposure Shots"), N_("Multi exposure shots"), nikonMeId, makerTags, unsignedLong, 1, printValue),
TagInfo( 12, "MultiExposureAutoGain", N_("Multi Exposure Auto Gain"), N_("Multi exposure auto gain"), nikonMeIfdId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(nikonOffOn)), TagInfo( 12, "MultiExposureAutoGain", N_("Multi Exposure Auto Gain"), N_("Multi exposure auto gain"), nikonMeId, makerTags, unsignedLong, 1, EXV_PRINT_TAG(nikonOffOn)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonMeIfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonMeId, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListMe() const TagInfo* Nikon3MakerNote::tagListMe()
@ -975,19 +975,19 @@ namespace Exiv2 {
// Nikon3 Flash Info 1 Tag Info // Nikon3 Flash Info 1 Tag Info
const TagInfo Nikon3MakerNote::tagInfoFl1_[] = { const TagInfo Nikon3MakerNote::tagInfoFl1_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFl1IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFl1Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "FlashSource", N_("Flash Source"), N_("Flash source"), nikonFl1IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashSource)), TagInfo( 4, "FlashSource", N_("Flash Source"), N_("Flash source"), nikonFl1Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashSource)),
TagInfo( 5, "0x0005", N_("0x0005"), N_("Unknown"), nikonFl1IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 5, "0x0005", N_("0x0005"), N_("Unknown"), nikonFl1Id, makerTags, unsignedByte, 1, printValue),
TagInfo( 6, "ExternalFlashFirmware", N_("External Flash Firmware"), N_("External flash firmware"), nikonFl1IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonFlashFirmware)), TagInfo( 6, "ExternalFlashFirmware", N_("External Flash Firmware"), N_("External flash firmware"), nikonFl1Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonFlashFirmware)),
TagInfo( 8, "ExternalFlashFlags", N_("External Flash Flags"), N_("External flash flags"), nikonFl1IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonExternalFlashFlags)), TagInfo( 8, "ExternalFlashFlags", N_("External Flash Flags"), N_("External flash flags"), nikonFl1Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonExternalFlashFlags)),
TagInfo( 11, "FlashFocalLength", N_("Flash Focal Length"), N_("Flash focal length"), nikonFl1IfdId, makerTags, unsignedByte, 1, printFlashFocalLength), TagInfo( 11, "FlashFocalLength", N_("Flash Focal Length"), N_("Flash focal length"), nikonFl1Id, makerTags, unsignedByte, 1, printFlashFocalLength),
TagInfo( 12, "RepeatingFlashRate", N_("Repeating Flash Rate"), N_("Repeating flash rate"), nikonFl1IfdId, makerTags, unsignedByte, 1, printRepeatingFlashRate), TagInfo( 12, "RepeatingFlashRate", N_("Repeating Flash Rate"), N_("Repeating flash rate"), nikonFl1Id, makerTags, unsignedByte, 1, printRepeatingFlashRate),
TagInfo( 13, "RepeatingFlashCount", N_("Repeating Flash Count"), N_("Repeating flash count"), nikonFl1IfdId, makerTags, unsignedByte, 1, printRepeatingFlashCount), TagInfo( 13, "RepeatingFlashCount", N_("Repeating Flash Count"), N_("Repeating flash count"), nikonFl1Id, makerTags, unsignedByte, 1, printRepeatingFlashCount),
TagInfo( 14, "FlashGNDistance", N_("Flash GN Distance"), N_("Flash GN distance"), nikonFl1IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashGNDistance)), TagInfo( 14, "FlashGNDistance", N_("Flash GN Distance"), N_("Flash GN distance"), nikonFl1Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashGNDistance)),
TagInfo( 15, "FlashGroupAControlMode", N_("Flash Group A Control Mode"), N_("Flash group a control mode"), nikonFl1IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashControlMode)), TagInfo( 15, "FlashGroupAControlMode", N_("Flash Group A Control Mode"), N_("Flash group a control mode"), nikonFl1Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashControlMode)),
TagInfo( 16, "FlashGroupBControlMode", N_("Flash Group B Control Mode"), N_("Flash group b control mode"), nikonFl1IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashControlMode)), TagInfo( 16, "FlashGroupBControlMode", N_("Flash Group B Control Mode"), N_("Flash group b control mode"), nikonFl1Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashControlMode)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonFl1IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonFl1Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListFl1() const TagInfo* Nikon3MakerNote::tagListFl1()
@ -997,17 +997,17 @@ namespace Exiv2 {
// Nikon3 Flash Info 2 Tag Info // Nikon3 Flash Info 2 Tag Info
const TagInfo Nikon3MakerNote::tagInfoFl2_[] = { const TagInfo Nikon3MakerNote::tagInfoFl2_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFl2IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFl2Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "FlashSource", N_("Flash Source"), N_("Flash source"), nikonFl2IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashSource)), TagInfo( 4, "FlashSource", N_("Flash Source"), N_("Flash source"), nikonFl2Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashSource)),
TagInfo( 5, "0x0005", N_("0x0005"), N_("Unknown"), nikonFl2IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 5, "0x0005", N_("0x0005"), N_("Unknown"), nikonFl2Id, makerTags, unsignedByte, 1, printValue),
TagInfo( 6, "ExternalFlashFirmware", N_("External Flash Firmware"), N_("External flash firmware"), nikonFl2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonFlashFirmware)), TagInfo( 6, "ExternalFlashFirmware", N_("External Flash Firmware"), N_("External flash firmware"), nikonFl2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonFlashFirmware)),
TagInfo( 8, "ExternalFlashFlags", N_("External Flash Flags"), N_("External flash flags"), nikonFl2IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonExternalFlashFlags)), TagInfo( 8, "ExternalFlashFlags", N_("External Flash Flags"), N_("External flash flags"), nikonFl2Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonExternalFlashFlags)),
TagInfo( 12, "FlashFocalLength", N_("Flash Focal Length"), N_("Flash focal length"), nikonFl2IfdId, makerTags, unsignedByte, 1, printFlashFocalLength), TagInfo( 12, "FlashFocalLength", N_("Flash Focal Length"), N_("Flash focal length"), nikonFl2Id, makerTags, unsignedByte, 1, printFlashFocalLength),
TagInfo( 13, "RepeatingFlashRate", N_("Repeating Flash Rate"), N_("Repeating flash rate"), nikonFl2IfdId, makerTags, unsignedByte, 1, printRepeatingFlashRate), TagInfo( 13, "RepeatingFlashRate", N_("Repeating Flash Rate"), N_("Repeating flash rate"), nikonFl2Id, makerTags, unsignedByte, 1, printRepeatingFlashRate),
TagInfo( 14, "RepeatingFlashCount", N_("Repeating Flash Count"), N_("Repeating flash count"), nikonFl2IfdId, makerTags, unsignedByte, 1, printRepeatingFlashCount), TagInfo( 14, "RepeatingFlashCount", N_("Repeating Flash Count"), N_("Repeating flash count"), nikonFl2Id, makerTags, unsignedByte, 1, printRepeatingFlashCount),
TagInfo( 15, "FlashGNDistance", N_("Flash GN Distance"), N_("Flash GN distance"), nikonFl2IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashGNDistance)), TagInfo( 15, "FlashGNDistance", N_("Flash GN Distance"), N_("Flash GN distance"), nikonFl2Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashGNDistance)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonFl2IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonFl2Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListFl2() const TagInfo* Nikon3MakerNote::tagListFl2()
@ -1017,17 +1017,17 @@ namespace Exiv2 {
// Nikon3 Flash Info 3 Tag Info // Nikon3 Flash Info 3 Tag Info
const TagInfo Nikon3MakerNote::tagInfoFl3_[] = { const TagInfo Nikon3MakerNote::tagInfoFl3_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFl3IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonFl3Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "FlashSource", N_("Flash Source"), N_("Flash source"), nikonFl3IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashSource)), TagInfo( 4, "FlashSource", N_("Flash Source"), N_("Flash source"), nikonFl3Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashSource)),
TagInfo( 6, "ExternalFlashFirmware", N_("External Flash Firmware"), N_("External flash firmware"), nikonFl3IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonFlashFirmware)), TagInfo( 6, "ExternalFlashFirmware", N_("External Flash Firmware"), N_("External flash firmware"), nikonFl3Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonFlashFirmware)),
TagInfo( 8, "ExternalFlashFlags", N_("External Flash Flags"), N_("External flash flags"), nikonFl3IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonExternalFlashFlags)), TagInfo( 8, "ExternalFlashFlags", N_("External Flash Flags"), N_("External flash flags"), nikonFl3Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonExternalFlashFlags)),
TagInfo( 12, "FlashFocalLength", N_("Flash Focal Length"), N_("Flash focal length"), nikonFl3IfdId, makerTags, unsignedByte, 1, printFlashFocalLength), TagInfo( 12, "FlashFocalLength", N_("Flash Focal Length"), N_("Flash focal length"), nikonFl3Id, makerTags, unsignedByte, 1, printFlashFocalLength),
TagInfo( 13, "RepeatingFlashRate", N_("Repeating Flash Rate"), N_("Repeating flash rate"), nikonFl3IfdId, makerTags, unsignedByte, 1, printRepeatingFlashRate), TagInfo( 13, "RepeatingFlashRate", N_("Repeating Flash Rate"), N_("Repeating flash rate"), nikonFl3Id, makerTags, unsignedByte, 1, printRepeatingFlashRate),
TagInfo( 14, "RepeatingFlashCount", N_("Repeating Flash Count"), N_("Repeating flash count"), nikonFl3IfdId, makerTags, unsignedByte, 1, printRepeatingFlashCount), TagInfo( 14, "RepeatingFlashCount", N_("Repeating Flash Count"), N_("Repeating flash count"), nikonFl3Id, makerTags, unsignedByte, 1, printRepeatingFlashCount),
TagInfo( 15, "FlashGNDistance", N_("Flash GN Distance"), N_("Flash GN distance"), nikonFl3IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashGNDistance)), TagInfo( 15, "FlashGNDistance", N_("Flash GN Distance"), N_("Flash GN distance"), nikonFl3Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashGNDistance)),
TagInfo( 16, "FlashColorFilter", N_("Flash Color Filter"), N_("Flash color filter"), nikonFl3IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashColorFilter)), TagInfo( 16, "FlashColorFilter", N_("Flash Color Filter"), N_("Flash color filter"), nikonFl3Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonFlashColorFilter)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonFl3IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonMeTag)", "(UnknownNikonMeTag)", N_("Unknown Nikon Multi Exposure Tag"), nikonFl3Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListFl3() const TagInfo* Nikon3MakerNote::tagListFl3()
@ -1037,10 +1037,10 @@ namespace Exiv2 {
// Nikon3 Shot Info D80 Tag Info // Nikon3 Shot Info D80 Tag Info
const TagInfo Nikon3MakerNote::tagInfoSi1_[] = { const TagInfo Nikon3MakerNote::tagInfoSi1_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi1IfdId, makerTags, unsignedByte, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi1Id, makerTags, unsignedByte, 4, printExifVersion),
TagInfo( 586, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi1IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 586, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi1Id, makerTags, unsignedLong, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonSi1Tag)", "(UnknownNikonSi1Tag)", N_("Unknown Nikon Shot Info D80 Tag"), nikonSi1IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonSi1Tag)", "(UnknownNikonSi1Tag)", N_("Unknown Nikon Shot Info D80 Tag"), nikonSi1Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListSi1() const TagInfo* Nikon3MakerNote::tagListSi1()
@ -1050,11 +1050,11 @@ namespace Exiv2 {
// Nikon3 Shot Info D40 Tag Info // Nikon3 Shot Info D40 Tag Info
const TagInfo Nikon3MakerNote::tagInfoSi2_[] = { const TagInfo Nikon3MakerNote::tagInfoSi2_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi2IfdId, makerTags, unsignedByte, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi2Id, makerTags, unsignedByte, 4, printExifVersion),
TagInfo( 582, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi2IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 582, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi2Id, makerTags, unsignedLong, 1, printValue),
TagInfo( 738, "FlashLevel", N_("Flash Level"), N_("Flash level"), nikonSi2IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 738, "FlashLevel", N_("Flash Level"), N_("Flash level"), nikonSi2Id, makerTags, unsignedByte, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonSi2Tag)", "(UnknownNikonSi2Tag)", N_("Unknown Nikon Shot Info D40 Tag"), nikonSi2IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonSi2Tag)", "(UnknownNikonSi2Tag)", N_("Unknown Nikon Shot Info D40 Tag"), nikonSi2Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListSi2() const TagInfo* Nikon3MakerNote::tagListSi2()
@ -1109,12 +1109,12 @@ namespace Exiv2 {
// Nikon3 Shot Info D300 (a) Tag Info // Nikon3 Shot Info D300 (a) Tag Info
const TagInfo Nikon3MakerNote::tagInfoSi3_[] = { const TagInfo Nikon3MakerNote::tagInfoSi3_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi3IfdId, makerTags, unsignedByte, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi3Id, makerTags, unsignedByte, 4, printExifVersion),
TagInfo( 604, "ISO", N_("ISO"), N_("ISO"), nikonSi3IfdId, makerTags, unsignedByte, 1, printIiIso), TagInfo( 604, "ISO", N_("ISO"), N_("ISO"), nikonSi3Id, makerTags, unsignedByte, 1, printIiIso),
TagInfo( 633, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi3IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 633, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi3Id, makerTags, unsignedLong, 1, printValue),
TagInfo( 721, "AFFineTuneAdj", N_("AF Fine Tune Adj"), N_("AF fine tune adj"), nikonSi3IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonAfFineTuneAdj1)), TagInfo( 721, "AFFineTuneAdj", N_("AF Fine Tune Adj"), N_("AF fine tune adj"), nikonSi3Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonAfFineTuneAdj1)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonSi3Tag)", "(UnknownNikonSi3Tag)", N_("Unknown Nikon Shot Info D300 (a) Tag"), nikonSi3IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonSi3Tag)", "(UnknownNikonSi3Tag)", N_("Unknown Nikon Shot Info D300 (a) Tag"), nikonSi3Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListSi3() const TagInfo* Nikon3MakerNote::tagListSi3()
@ -1169,12 +1169,12 @@ namespace Exiv2 {
// Nikon3 Shot Info D300 (b) Tag Info // Nikon3 Shot Info D300 (b) Tag Info
const TagInfo Nikon3MakerNote::tagInfoSi4_[] = { const TagInfo Nikon3MakerNote::tagInfoSi4_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi4IfdId, makerTags, unsignedByte, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi4Id, makerTags, unsignedByte, 4, printExifVersion),
TagInfo( 613, "ISO", N_("ISO"), N_("ISO"), nikonSi4IfdId, makerTags, unsignedByte, 1, printIiIso), TagInfo( 613, "ISO", N_("ISO"), N_("ISO"), nikonSi4Id, makerTags, unsignedByte, 1, printIiIso),
TagInfo( 644, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi4IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 644, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi4Id, makerTags, unsignedLong, 1, printValue),
TagInfo( 732, "AFFineTuneAdj", N_("AF Fine Tune Adj"), N_("AF fine tune adj"), nikonSi4IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonAfFineTuneAdj2)), TagInfo( 732, "AFFineTuneAdj", N_("AF Fine Tune Adj"), N_("AF fine tune adj"), nikonSi4Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(nikonAfFineTuneAdj2)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonSi4Tag)", "(UnknownNikonSi4Tag)", N_("Unknown Nikon Shot Info D300 (b) Tag"), nikonSi4IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonSi4Tag)", "(UnknownNikonSi4Tag)", N_("Unknown Nikon Shot Info D300 (b) Tag"), nikonSi4Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListSi4() const TagInfo* Nikon3MakerNote::tagListSi4()
@ -1199,17 +1199,17 @@ namespace Exiv2 {
// Nikon3 Shot Info Tag Info // Nikon3 Shot Info Tag Info
const TagInfo Nikon3MakerNote::tagInfoSi5_[] = { const TagInfo Nikon3MakerNote::tagInfoSi5_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi5IfdId, makerTags, unsignedByte, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonSi5Id, makerTags, unsignedByte, 4, printExifVersion),
TagInfo( 106, "ShutterCount1", N_("Shutter Count 1"), N_("Shutter count 1"), nikonSi5IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 106, "ShutterCount1", N_("Shutter Count 1"), N_("Shutter count 1"), nikonSi5Id, makerTags, unsignedLong, 1, printValue),
TagInfo( 110, "DeletedImageCount", N_("Deleted Image Count"), N_("Deleted image count"), nikonSi5IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 110, "DeletedImageCount", N_("Deleted Image Count"), N_("Deleted image count"), nikonSi5Id, makerTags, unsignedLong, 1, printValue),
TagInfo( 117, "VibrationReduction", N_("Vibration Reduction"), N_("Vibration reduction"), nikonSi5IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn2)), TagInfo( 117, "VibrationReduction", N_("Vibration Reduction"), N_("Vibration reduction"), nikonSi5Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn2)),
TagInfo( 130, "VibrationReduction1", N_(""), N_(""), nikonSi5IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn)), TagInfo( 130, "VibrationReduction1", N_(""), N_(""), nikonSi5Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn)),
TagInfo( 343, "ShutterCount2", N_("Shutter Count 2"), N_("Shutter count 2"), nikonSi5IfdId, makerTags, undefined, 2, printValue), TagInfo( 343, "ShutterCount2", N_("Shutter Count 2"), N_("Shutter count 2"), nikonSi5Id, makerTags, undefined, 2, printValue),
TagInfo( 430, "VibrationReduction2", N_("Vibration Reduction 2"), N_("Vibration reduction 2"), nikonSi5IfdId, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn3)), TagInfo( 430, "VibrationReduction2", N_("Vibration Reduction 2"), N_("Vibration reduction 2"), nikonSi5Id, makerTags, unsignedByte, 1, EXV_PRINT_TAG(nikonOffOn3)),
TagInfo( 598, "ISO", N_("ISO"), N_("ISO"), nikonSi5IfdId, makerTags, unsignedByte, 1, printIiIso), TagInfo( 598, "ISO", N_("ISO"), N_("ISO"), nikonSi5Id, makerTags, unsignedByte, 1, printIiIso),
TagInfo( 630, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi5IfdId, makerTags, unsignedLong, 1, printValue), TagInfo( 630, "ShutterCount", N_("Shutter Count"), N_("Shutter count"), nikonSi5Id, makerTags, unsignedLong, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonSi5Tag)", "(UnknownNikonSi5Tag)", N_("Unknown Nikon Shot Info Tag"), nikonSi5IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonSi5Tag)", "(UnknownNikonSi5Tag)", N_("Unknown Nikon Shot Info Tag"), nikonSi5Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListSi5() const TagInfo* Nikon3MakerNote::tagListSi5()
@ -1219,10 +1219,10 @@ namespace Exiv2 {
// Nikon3 Color Balance 1 Tag Info // Nikon3 Color Balance 1 Tag Info
const TagInfo Nikon3MakerNote::tagInfoCb1_[] = { const TagInfo Nikon3MakerNote::tagInfoCb1_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb1IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb1Id, makerTags, undefined, 4, printExifVersion),
TagInfo(36, "WB_RBGGLevels", N_("WB RBGG Levels"), N_("WB RBGG levels"), nikonCb1IfdId, makerTags, unsignedShort, 4, printValue), TagInfo(36, "WB_RBGGLevels", N_("WB RBGG Levels"), N_("WB RBGG levels"), nikonCb1Id, makerTags, unsignedShort, 4, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonCb1Tag)", "(UnknownNikonCb1Tag)", N_("Unknown Nikon Color Balance 1 Tag"), nikonCb1IfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownNikonCb1Tag)", "(UnknownNikonCb1Tag)", N_("Unknown Nikon Color Balance 1 Tag"), nikonCb1Id, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListCb1() const TagInfo* Nikon3MakerNote::tagListCb1()
@ -1232,10 +1232,10 @@ namespace Exiv2 {
// Nikon3 Color Balance 2 Tag Info // Nikon3 Color Balance 2 Tag Info
const TagInfo Nikon3MakerNote::tagInfoCb2_[] = { const TagInfo Nikon3MakerNote::tagInfoCb2_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb2IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb2Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 5, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), nikonCb2IfdId, makerTags, unsignedShort, 4, printValue), TagInfo( 5, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), nikonCb2Id, makerTags, unsignedShort, 4, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonCb2Tag)", "(UnknownNikonCb2Tag)", N_("Unknown Nikon Color Balance 2 Tag"), nikonCb2IfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownNikonCb2Tag)", "(UnknownNikonCb2Tag)", N_("Unknown Nikon Color Balance 2 Tag"), nikonCb2Id, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListCb2() const TagInfo* Nikon3MakerNote::tagListCb2()
@ -1245,10 +1245,10 @@ namespace Exiv2 {
// Nikon3 Color Balance 2a Tag Info // Nikon3 Color Balance 2a Tag Info
const TagInfo Nikon3MakerNote::tagInfoCb2a_[] = { const TagInfo Nikon3MakerNote::tagInfoCb2a_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb2aIfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb2aId, makerTags, undefined, 4, printExifVersion),
TagInfo( 9, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), nikonCb2aIfdId, makerTags, unsignedShort, 4, printValue), TagInfo( 9, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), nikonCb2aId, makerTags, unsignedShort, 4, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonCb2aTag)", "(UnknownNikonCb2aTag)", N_("Unknown Nikon Color Balance 2a Tag"), nikonCb2aIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownNikonCb2aTag)", "(UnknownNikonCb2aTag)", N_("Unknown Nikon Color Balance 2a Tag"), nikonCb2aId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListCb2a() const TagInfo* Nikon3MakerNote::tagListCb2a()
@ -1258,10 +1258,10 @@ namespace Exiv2 {
// Nikon3 Color Balance 2b Tag Info // Nikon3 Color Balance 2b Tag Info
const TagInfo Nikon3MakerNote::tagInfoCb2b_[] = { const TagInfo Nikon3MakerNote::tagInfoCb2b_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb2bIfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb2bId, makerTags, undefined, 4, printExifVersion),
TagInfo(145, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), nikonCb2bIfdId, makerTags, unsignedShort, 4, printValue), TagInfo(145, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), nikonCb2bId, makerTags, unsignedShort, 4, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonCb2bTag)", "(UnknownNikonCb2bTag)", N_("Unknown Nikon Color Balance 2b Tag"), nikonCb2bIfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownNikonCb2bTag)", "(UnknownNikonCb2bTag)", N_("Unknown Nikon Color Balance 2b Tag"), nikonCb2bId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListCb2b() const TagInfo* Nikon3MakerNote::tagListCb2b()
@ -1271,10 +1271,10 @@ namespace Exiv2 {
// Nikon3 Color Balance 3 Tag Info // Nikon3 Color Balance 3 Tag Info
const TagInfo Nikon3MakerNote::tagInfoCb3_[] = { const TagInfo Nikon3MakerNote::tagInfoCb3_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb3IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb3Id, makerTags, undefined, 4, printExifVersion),
TagInfo(10, "WB_RGBGLevels", N_("WB RGBG Levels"), N_("WB RGBG levels"), nikonCb3IfdId, makerTags, unsignedShort, 4, printValue), TagInfo(10, "WB_RGBGLevels", N_("WB RGBG Levels"), N_("WB RGBG levels"), nikonCb3Id, makerTags, unsignedShort, 4, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonCb3Tag)", "(UnknownNikonCb3Tag)", N_("Unknown Nikon Color Balance 3 Tag"), nikonCb3IfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownNikonCb3Tag)", "(UnknownNikonCb3Tag)", N_("Unknown Nikon Color Balance 3 Tag"), nikonCb3Id, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListCb3() const TagInfo* Nikon3MakerNote::tagListCb3()
@ -1284,10 +1284,10 @@ namespace Exiv2 {
// Nikon3 Color Balance 4 Tag Info // Nikon3 Color Balance 4 Tag Info
const TagInfo Nikon3MakerNote::tagInfoCb4_[] = { const TagInfo Nikon3MakerNote::tagInfoCb4_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb4IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonCb4Id, makerTags, undefined, 4, printExifVersion),
TagInfo(147, "WB_GRBGLevels", N_("WB GRBG Levels"), N_("WB GRBG levels"), nikonCb4IfdId, makerTags, unsignedShort, 4, printValue), TagInfo(147, "WB_GRBGLevels", N_("WB GRBG Levels"), N_("WB GRBG levels"), nikonCb4Id, makerTags, unsignedShort, 4, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonCb4Tag)", "(UnknownNikonCb4Tag)", N_("Unknown Nikon Color Balance 4 Tag"), nikonCb4IfdId, makerTags, unsignedShort, 1, printValue) TagInfo(0xffff, "(UnknownNikonCb4Tag)", "(UnknownNikonCb4Tag)", N_("Unknown Nikon Color Balance 4 Tag"), nikonCb4Id, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListCb4() const TagInfo* Nikon3MakerNote::tagListCb4()
@ -1297,16 +1297,16 @@ namespace Exiv2 {
// Nikon3 Lens Data 1 Tag Info // Nikon3 Lens Data 1 Tag Info
const TagInfo Nikon3MakerNote::tagInfoLd1_[] = { const TagInfo Nikon3MakerNote::tagInfoLd1_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonLd1IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonLd1Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 6, "LensIDNumber", N_("Lens ID Number"), N_("Lens ID number"), nikonLd1IfdId, makerTags, unsignedByte, 1, printLensId1), TagInfo( 6, "LensIDNumber", N_("Lens ID Number"), N_("Lens ID number"), nikonLd1Id, makerTags, unsignedByte, 1, printLensId1),
TagInfo( 7, "LensFStops", N_("Lens F-Stops"), N_("Lens F-stops"), nikonLd1IfdId, makerTags, unsignedByte, 1, printFStops), TagInfo( 7, "LensFStops", N_("Lens F-Stops"), N_("Lens F-stops"), nikonLd1Id, makerTags, unsignedByte, 1, printFStops),
TagInfo( 8, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), nikonLd1IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo( 8, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), nikonLd1Id, makerTags, unsignedByte, 1, printFocal),
TagInfo( 9, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), nikonLd1IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo( 9, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), nikonLd1Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(10, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), nikonLd1IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(10, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), nikonLd1Id, makerTags, unsignedByte, 1, printAperture),
TagInfo(11, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), nikonLd1IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(11, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), nikonLd1Id, makerTags, unsignedByte, 1, printAperture),
TagInfo(12, "MCUVersion", N_("MCU Version"), N_("MCU version"), nikonLd1IfdId, makerTags, unsignedByte, 1, printValue), TagInfo(12, "MCUVersion", N_("MCU Version"), N_("MCU version"), nikonLd1Id, makerTags, unsignedByte, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonLd1Tag)", "(UnknownNikonLd1Tag)", N_("Unknown Nikon Lens Data 1 Tag"), nikonLd1IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonLd1Tag)", "(UnknownNikonLd1Tag)", N_("Unknown Nikon Lens Data 1 Tag"), nikonLd1Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListLd1() const TagInfo* Nikon3MakerNote::tagListLd1()
@ -1316,22 +1316,22 @@ namespace Exiv2 {
// Nikon3 Lens Data 2 Tag Info // Nikon3 Lens Data 2 Tag Info
const TagInfo Nikon3MakerNote::tagInfoLd2_[] = { const TagInfo Nikon3MakerNote::tagInfoLd2_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonLd2IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonLd2Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "ExitPupilPosition", N_("Exit Pupil Position"), N_("Exit pupil position"), nikonLd2IfdId, makerTags, unsignedByte, 1, printExitPupilPosition), TagInfo( 4, "ExitPupilPosition", N_("Exit Pupil Position"), N_("Exit pupil position"), nikonLd2Id, makerTags, unsignedByte, 1, printExitPupilPosition),
TagInfo( 5, "AFAperture", N_("AF Aperture"), N_("AF aperture"), nikonLd2IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo( 5, "AFAperture", N_("AF Aperture"), N_("AF aperture"), nikonLd2Id, makerTags, unsignedByte, 1, printAperture),
TagInfo( 8, "FocusPosition", N_("Focus Position"), N_("Focus position"), nikonLd2IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 8, "FocusPosition", N_("Focus Position"), N_("Focus position"), nikonLd2Id, makerTags, unsignedByte, 1, printValue),
TagInfo( 9, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), nikonLd2IfdId, makerTags, unsignedByte, 1, printFocusDistance), TagInfo( 9, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), nikonLd2Id, makerTags, unsignedByte, 1, printFocusDistance),
TagInfo(10, "FocalLength", N_("Focal Length"), N_("Focal length"), nikonLd2IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo(10, "FocalLength", N_("Focal Length"), N_("Focal length"), nikonLd2Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(11, "LensIDNumber", N_("Lens ID Number"), N_("Lens ID number"), nikonLd2IfdId, makerTags, unsignedByte, 1, printLensId2), TagInfo(11, "LensIDNumber", N_("Lens ID Number"), N_("Lens ID number"), nikonLd2Id, makerTags, unsignedByte, 1, printLensId2),
TagInfo(12, "LensFStops", N_("Lens F-Stops"), N_("Lens F-stops"), nikonLd2IfdId, makerTags, unsignedByte, 1, printFStops), TagInfo(12, "LensFStops", N_("Lens F-Stops"), N_("Lens F-stops"), nikonLd2Id, makerTags, unsignedByte, 1, printFStops),
TagInfo(13, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), nikonLd2IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo(13, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), nikonLd2Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(14, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), nikonLd2IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo(14, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), nikonLd2Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(15, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), nikonLd2IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(15, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), nikonLd2Id, makerTags, unsignedByte, 1, printAperture),
TagInfo(16, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), nikonLd2IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(16, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), nikonLd2Id, makerTags, unsignedByte, 1, printAperture),
TagInfo(17, "MCUVersion", N_("MCU Version"), N_("MCU version"), nikonLd2IfdId, makerTags, unsignedByte, 1, printValue), TagInfo(17, "MCUVersion", N_("MCU Version"), N_("MCU version"), nikonLd2Id, makerTags, unsignedByte, 1, printValue),
TagInfo(18, "EffectiveMaxAperture", N_("Effective Max Aperture"), N_("Effective max aperture"), nikonLd2IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(18, "EffectiveMaxAperture", N_("Effective Max Aperture"), N_("Effective max aperture"), nikonLd2Id, makerTags, unsignedByte, 1, printAperture),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonLd2Tag)", "(UnknownNikonLd2Tag)", N_("Unknown Nikon Lens Data 2 Tag"), nikonLd2IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonLd2Tag)", "(UnknownNikonLd2Tag)", N_("Unknown Nikon Lens Data 2 Tag"), nikonLd2Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListLd2() const TagInfo* Nikon3MakerNote::tagListLd2()
@ -1341,22 +1341,22 @@ namespace Exiv2 {
// Nikon3 Lens Data 3 Tag Info // Nikon3 Lens Data 3 Tag Info
const TagInfo Nikon3MakerNote::tagInfoLd3_[] = { const TagInfo Nikon3MakerNote::tagInfoLd3_[] = {
TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonLd3IfdId, makerTags, undefined, 4, printExifVersion), TagInfo( 0, "Version", N_("Version"), N_("Version"), nikonLd3Id, makerTags, undefined, 4, printExifVersion),
TagInfo( 4, "ExitPupilPosition", N_("Exit Pupil Position"), N_("Exit pupil position"), nikonLd3IfdId, makerTags, unsignedByte, 1, printExitPupilPosition), TagInfo( 4, "ExitPupilPosition", N_("Exit Pupil Position"), N_("Exit pupil position"), nikonLd3Id, makerTags, unsignedByte, 1, printExitPupilPosition),
TagInfo( 5, "AFAperture", N_("AF Aperture"), N_("AF aperture"), nikonLd3IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo( 5, "AFAperture", N_("AF Aperture"), N_("AF aperture"), nikonLd3Id, makerTags, unsignedByte, 1, printAperture),
TagInfo( 8, "FocusPosition", N_("Focus Position"), N_("Focus position"), nikonLd3IfdId, makerTags, unsignedByte, 1, printValue), TagInfo( 8, "FocusPosition", N_("Focus Position"), N_("Focus position"), nikonLd3Id, makerTags, unsignedByte, 1, printValue),
TagInfo(10, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), nikonLd3IfdId, makerTags, unsignedByte, 1, printFocusDistance), TagInfo(10, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), nikonLd3Id, makerTags, unsignedByte, 1, printFocusDistance),
TagInfo(11, "FocalLength", N_("Focal Length"), N_("Focal length"), nikonLd3IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo(11, "FocalLength", N_("Focal Length"), N_("Focal length"), nikonLd3Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(12, "LensIDNumber", N_("Lens ID Number"), N_("Lens ID number"), nikonLd3IfdId, makerTags, unsignedByte, 1, printLensId3), TagInfo(12, "LensIDNumber", N_("Lens ID Number"), N_("Lens ID number"), nikonLd3Id, makerTags, unsignedByte, 1, printLensId3),
TagInfo(13, "LensFStops", N_("Lens F-Stops"), N_("Lens F-stops"), nikonLd3IfdId, makerTags, unsignedByte, 1, printFStops), TagInfo(13, "LensFStops", N_("Lens F-Stops"), N_("Lens F-stops"), nikonLd3Id, makerTags, unsignedByte, 1, printFStops),
TagInfo(14, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), nikonLd3IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo(14, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), nikonLd3Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(15, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), nikonLd3IfdId, makerTags, unsignedByte, 1, printFocal), TagInfo(15, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), nikonLd3Id, makerTags, unsignedByte, 1, printFocal),
TagInfo(16, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal length"), nikonLd3IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(16, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal length"), nikonLd3Id, makerTags, unsignedByte, 1, printAperture),
TagInfo(17, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal length"), nikonLd3IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(17, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal length"), nikonLd3Id, makerTags, unsignedByte, 1, printAperture),
TagInfo(18, "MCUVersion", N_("MCU Version"), N_("MCU version"), nikonLd3IfdId, makerTags, unsignedByte, 1, printValue), TagInfo(18, "MCUVersion", N_("MCU Version"), N_("MCU version"), nikonLd3Id, makerTags, unsignedByte, 1, printValue),
TagInfo(19, "EffectiveMaxAperture", N_("Effective Max Aperture"), N_("Effective max aperture"), nikonLd3IfdId, makerTags, unsignedByte, 1, printAperture), TagInfo(19, "EffectiveMaxAperture", N_("Effective Max Aperture"), N_("Effective max aperture"), nikonLd3Id, makerTags, unsignedByte, 1, printAperture),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikonLd3Tag)", "(UnknownNikonLd3Tag)", N_("Unknown Nikon Lens Data 3 Tag"), nikonLd3IfdId, makerTags, unsignedByte, 1, printValue) TagInfo(0xffff, "(UnknownNikonLd3Tag)", "(UnknownNikonLd3Tag)", N_("Unknown Nikon Lens Data 3 Tag"), nikonLd3Id, makerTags, unsignedByte, 1, printValue)
}; };
const TagInfo* Nikon3MakerNote::tagListLd3() const TagInfo* Nikon3MakerNote::tagListLd3()

@ -184,291 +184,291 @@ namespace Exiv2 {
add Minolta makenotes tags here (0x0000-0x0103). See Exiftool database.*/ add Minolta makenotes tags here (0x0000-0x0103). See Exiftool database.*/
TagInfo(0x0000, "0x0000", "0x0000", TagInfo(0x0000, "0x0000", "0x0000",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0100, "ThumbnailImage", N_("Thumbnail Image"), TagInfo(0x0100, "ThumbnailImage", N_("Thumbnail Image"),
N_("Thumbnail image"), N_("Thumbnail image"),
olympusIfdId, makerTags, undefined, -1, printValue), olympusId, makerTags, undefined, -1, printValue),
TagInfo(0x0104, "BodyFirmwareVersion", N_("Body Firmware Version"), TagInfo(0x0104, "BodyFirmwareVersion", N_("Body Firmware Version"),
N_("Body firmware version"), N_("Body firmware version"),
olympusIfdId, makerTags, asciiString, -1, printValue), olympusId, makerTags, asciiString, -1, printValue),
TagInfo(0x0200, "SpecialMode", N_("Special Mode"), TagInfo(0x0200, "SpecialMode", N_("Special Mode"),
N_("Picture taking mode"), N_("Picture taking mode"),
olympusIfdId, makerTags, unsignedLong, -1, print0x0200), olympusId, makerTags, unsignedLong, -1, print0x0200),
TagInfo(0x0201, "Quality", N_("Quality"), TagInfo(0x0201, "Quality", N_("Quality"),
N_("Image quality setting"), N_("Image quality setting"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusQuality)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusQuality)),
TagInfo(0x0202, "Macro", N_("Macro"), TagInfo(0x0202, "Macro", N_("Macro"),
N_("Macro mode"), N_("Macro mode"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusMacro)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusMacro)),
TagInfo(0x0203, "BWMode", N_("Black & White Mode"), TagInfo(0x0203, "BWMode", N_("Black & White Mode"),
N_("Black and white mode"), N_("Black and white mode"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x0204, "DigitalZoom", N_("Digital Zoom"), TagInfo(0x0204, "DigitalZoom", N_("Digital Zoom"),
N_("Digital zoom ratio"), N_("Digital zoom ratio"),
olympusIfdId, makerTags, unsignedRational, -1, print0x0204), olympusId, makerTags, unsignedRational, -1, print0x0204),
TagInfo(0x0205, "FocalPlaneDiagonal", N_("Focal Plane Diagonal"), TagInfo(0x0205, "FocalPlaneDiagonal", N_("Focal Plane Diagonal"),
N_("Focal plane diagonal"), N_("Focal plane diagonal"),
olympusIfdId, makerTags, unsignedRational, -1, printValue), olympusId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x0206, "LensDistortionParams", N_("Lens Distortion Parameters"), TagInfo(0x0206, "LensDistortionParams", N_("Lens Distortion Parameters"),
N_("Lens distortion parameters"), N_("Lens distortion parameters"),
olympusIfdId, makerTags, signedShort, -1, printValue), olympusId, makerTags, signedShort, -1, printValue),
TagInfo(0x0207, "CameraType", N_("Camera Type"), TagInfo(0x0207, "CameraType", N_("Camera Type"),
N_("Camera type"), N_("Camera type"),
olympusIfdId, makerTags, asciiString, -1, printValue), olympusId, makerTags, asciiString, -1, printValue),
TagInfo(0x0208, "PictureInfo", N_("Picture Info"), TagInfo(0x0208, "PictureInfo", N_("Picture Info"),
N_("ASCII format data such as [PictureInfo]"), N_("ASCII format data such as [PictureInfo]"),
olympusIfdId, makerTags, asciiString, -1, printValue), olympusId, makerTags, asciiString, -1, printValue),
TagInfo(0x0209, "CameraID", N_("Camera ID"), TagInfo(0x0209, "CameraID", N_("Camera ID"),
N_("Camera ID data"), N_("Camera ID data"),
olympusIfdId, makerTags, asciiString, -1, print0x0209), olympusId, makerTags, asciiString, -1, print0x0209),
TagInfo(0x020b, "ImageWidth", N_("Image Width"), TagInfo(0x020b, "ImageWidth", N_("Image Width"),
N_("Image width"), N_("Image width"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x020c, "ImageHeight", N_("Image Height"), TagInfo(0x020c, "ImageHeight", N_("Image Height"),
N_("Image height"), N_("Image height"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x020d, "Software", N_("Software"), TagInfo(0x020d, "Software", N_("Software"),
N_("Software"), N_("Software"),
olympusIfdId, makerTags, asciiString, -1, printValue), olympusId, makerTags, asciiString, -1, printValue),
TagInfo(0x0280, "PreviewImage", N_("Preview Image"), TagInfo(0x0280, "PreviewImage", N_("Preview Image"),
N_("Preview image"), N_("Preview image"),
olympusIfdId, makerTags, unsignedByte, -1, printValue), olympusId, makerTags, unsignedByte, -1, printValue),
TagInfo(0x0300, "PreCaptureFrames", N_("Pre Capture Frames"), TagInfo(0x0300, "PreCaptureFrames", N_("Pre Capture Frames"),
N_("Pre-capture frames"), N_("Pre-capture frames"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0301, "WhiteBoard", N_("White Board"), TagInfo(0x0301, "WhiteBoard", N_("White Board"),
N_("White board"), N_("White board"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0302, "OneTouchWB", N_("One Touch WB"), TagInfo(0x0302, "OneTouchWB", N_("One Touch WB"),
N_("One touch white balance"), N_("One touch white balance"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOneTouchWb)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOneTouchWb)),
TagInfo(0x0303, "WhiteBalanceBracket", N_("White Balance Bracket"), TagInfo(0x0303, "WhiteBalanceBracket", N_("White Balance Bracket"),
N_("White balance bracket"), N_("White balance bracket"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0304, "WhiteBalanceBias", N_("White Balance Bias"), TagInfo(0x0304, "WhiteBalanceBias", N_("White Balance Bias"),
N_("White balance bias"), N_("White balance bias"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0403, "SceneMode", N_("Scene Mode"), TagInfo(0x0403, "SceneMode", N_("Scene Mode"),
N_("Scene mode"), N_("Scene mode"),
olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusSceneMode)), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusSceneMode)),
TagInfo(0x0404, "Firmware", N_("Firmware"), TagInfo(0x0404, "Firmware", N_("Firmware"),
N_("Firmwarer"), N_("Firmwarer"),
olympusIfdId, makerTags, asciiString, -1, printValue), olympusId, makerTags, asciiString, -1, printValue),
TagInfo(0x0e00, "PrintIM", N_("Print IM"), TagInfo(0x0e00, "PrintIM", N_("Print IM"),
N_("PrintIM information"), N_("PrintIM information"),
olympusIfdId, makerTags, undefined, -1, printValue), olympusId, makerTags, undefined, -1, printValue),
TagInfo(0x0f00, "DataDump1", N_("Data Dump 1"), TagInfo(0x0f00, "DataDump1", N_("Data Dump 1"),
N_("Various camera settings 1"), N_("Various camera settings 1"),
olympusIfdId, makerTags, undefined, -1, printValue), olympusId, makerTags, undefined, -1, printValue),
TagInfo(0x0f01, "DataDump2", N_("Data Dump 2"), TagInfo(0x0f01, "DataDump2", N_("Data Dump 2"),
N_("Various camera settings 2"), N_("Various camera settings 2"),
olympusIfdId, makerTags, undefined, -1, printValue), olympusId, makerTags, undefined, -1, printValue),
TagInfo(0x1000, "ShutterSpeed", N_("Shutter Speed"), TagInfo(0x1000, "ShutterSpeed", N_("Shutter Speed"),
N_("Shutter speed value"), N_("Shutter speed value"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1001, "ISOSpeed", N_("ISO Speed"), TagInfo(0x1001, "ISOSpeed", N_("ISO Speed"),
N_("ISO speed value"), N_("ISO speed value"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1002, "ApertureValue", N_("Aperture Value"), TagInfo(0x1002, "ApertureValue", N_("Aperture Value"),
N_("Aperture value"), N_("Aperture value"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1003, "Brightness", N_("Brightness"), TagInfo(0x1003, "Brightness", N_("Brightness"),
N_("Brightness value"), N_("Brightness value"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1004, "FlashMode", N_("Flash Mode"), TagInfo(0x1004, "FlashMode", N_("Flash Mode"),
N_("Flash mode"), N_("Flash mode"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1005, "FlashDevice", N_("Flash Device"), TagInfo(0x1005, "FlashDevice", N_("Flash Device"),
N_("Flash device"), N_("Flash device"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFlashDevice)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFlashDevice)),
TagInfo(0x1006, "Bracket", N_("Bracket"), TagInfo(0x1006, "Bracket", N_("Bracket"),
N_("Exposure compensation value"), N_("Exposure compensation value"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1007, "SensorTemperature", N_("Sensor Temperature"), TagInfo(0x1007, "SensorTemperature", N_("Sensor Temperature"),
N_("Sensor temperature"), N_("Sensor temperature"),
olympusIfdId, makerTags, signedShort, -1, printValue), olympusId, makerTags, signedShort, -1, printValue),
TagInfo(0x1008, "LensTemperature", N_("Lens Temperature"), TagInfo(0x1008, "LensTemperature", N_("Lens Temperature"),
N_("Lens temperature"), N_("Lens temperature"),
olympusIfdId, makerTags, signedShort, -1, printValue), olympusId, makerTags, signedShort, -1, printValue),
TagInfo(0x1009, "LightCondition", N_("Light Condition"), TagInfo(0x1009, "LightCondition", N_("Light Condition"),
N_("Light condition"), N_("Light condition"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x100a, "FocusRange", N_("Focus Range"), TagInfo(0x100a, "FocusRange", N_("Focus Range"),
N_("Focus range"), N_("Focus range"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFocusRange)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFocusRange)),
TagInfo(0x100b, "FocusMode", N_("Focus Mode"), TagInfo(0x100b, "FocusMode", N_("Focus Mode"),
N_("Focus mode"), N_("Focus mode"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFocusMode)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFocusMode)),
TagInfo(0x100c, "FocusDistance", N_("Focus Distance"), TagInfo(0x100c, "FocusDistance", N_("Focus Distance"),
N_("Manual focus distance"), N_("Manual focus distance"),
olympusIfdId, makerTags, unsignedRational, -1, printValue), olympusId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x100d, "Zoom", N_("Zoom"), TagInfo(0x100d, "Zoom", N_("Zoom"),
N_("Zoom step count"), N_("Zoom step count"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x100e, "MacroFocus", N_("Macro Focus"), TagInfo(0x100e, "MacroFocus", N_("Macro Focus"),
N_("Macro focus step count"), N_("Macro focus step count"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x100f, "SharpnessFactor", N_("Sharpness Factor"), TagInfo(0x100f, "SharpnessFactor", N_("Sharpness Factor"),
N_("Sharpness factor"), N_("Sharpness factor"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusSharpness)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusSharpness)),
TagInfo(0x1010, "FlashChargeLevel", N_("Flash Charge Level"), TagInfo(0x1010, "FlashChargeLevel", N_("Flash Charge Level"),
N_("Flash charge level"), N_("Flash charge level"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1011, "ColorMatrix", N_("Color Matrix"), TagInfo(0x1011, "ColorMatrix", N_("Color Matrix"),
N_("Color matrix"), N_("Color matrix"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1012, "BlackLevel", N_("BlackLevel"), TagInfo(0x1012, "BlackLevel", N_("BlackLevel"),
N_("Black level"), N_("Black level"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1013, "0x1013", "0x1013", TagInfo(0x1013, "0x1013", "0x1013",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1014, "0x1014", "0x1014", TagInfo(0x1014, "0x1014", "0x1014",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1015, "WhiteBalance", N_("White Balance"), TagInfo(0x1015, "WhiteBalance", N_("White Balance"),
N_("White balance mode"), N_("White balance mode"),
olympusIfdId, makerTags, unsignedShort, -1, print0x1015), olympusId, makerTags, unsignedShort, -1, print0x1015),
TagInfo(0x1016, "0x1016", "0x1016", TagInfo(0x1016, "0x1016", "0x1016",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1017, "RedBalance", N_("Red Balance"), TagInfo(0x1017, "RedBalance", N_("Red Balance"),
N_("Red balance"), N_("Red balance"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1018, "BlueBalance", N_("Blue Balance"), TagInfo(0x1018, "BlueBalance", N_("Blue Balance"),
N_("Blue balance"), N_("Blue balance"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1019, "ColorMatrixNumber", N_("Color Matrix Number"), TagInfo(0x1019, "ColorMatrixNumber", N_("Color Matrix Number"),
N_("Color matrix mumber"), N_("Color matrix mumber"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x101a, "SerialNumber2", N_("Serial Number 2"), TagInfo(0x101a, "SerialNumber2", N_("Serial Number 2"),
N_("Serial number 2"), N_("Serial number 2"),
olympusIfdId, makerTags, asciiString, -1, printValue), olympusId, makerTags, asciiString, -1, printValue),
TagInfo(0x101b, "0x101b", "0x101b", TagInfo(0x101b, "0x101b", "0x101b",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x101c, "0x101c", "0x101c", TagInfo(0x101c, "0x101c", "0x101c",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x101d, "0x101d", "0x101d", TagInfo(0x101d, "0x101d", "0x101d",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x101e, "0x101e", "0x101e", TagInfo(0x101e, "0x101e", "0x101e",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x101f, "0x101f", "0x101f", TagInfo(0x101f, "0x101f", "0x101f",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1020, "0x1020", "0x1020", TagInfo(0x1020, "0x1020", "0x1020",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1021, "0x1021", "0x1021", TagInfo(0x1021, "0x1021", "0x1021",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1022, "0x1022", "0x1022", TagInfo(0x1022, "0x1022", "0x1022",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1023, "FlashBias", N_("Flash Bias"), TagInfo(0x1023, "FlashBias", N_("Flash Bias"),
N_("Flash exposure compensation"), N_("Flash exposure compensation"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1024, "0x1024", "0x1024", TagInfo(0x1024, "0x1024", "0x1024",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1025, "0x1025", "0x1025", TagInfo(0x1025, "0x1025", "0x1025",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, signedRational, -1, printValue), olympusId, makerTags, signedRational, -1, printValue),
TagInfo(0x1026, "ExternalFlashBounce", N_("External Flash Bounce"), TagInfo(0x1026, "ExternalFlashBounce", N_("External Flash Bounce"),
N_("External flash bounce"), N_("External flash bounce"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1027, "ExternalFlashZoom", N_("External Flash Zoom"), TagInfo(0x1027, "ExternalFlashZoom", N_("External Flash Zoom"),
N_("External flash zoom"), N_("External flash zoom"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1028, "ExternalFlashMode", N_("External Flash Mode"), TagInfo(0x1028, "ExternalFlashMode", N_("External Flash Mode"),
N_("External flash mode"), N_("External flash mode"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1029, "Contrast", N_("Contrast"), TagInfo(0x1029, "Contrast", N_("Contrast"),
N_("Contrast setting"), N_("Contrast setting"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusContrast)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusContrast)),
TagInfo(0x102a, "SharpnessFactor", N_("Sharpness Factor"), TagInfo(0x102a, "SharpnessFactor", N_("Sharpness Factor"),
N_("Sharpness factor"), N_("Sharpness factor"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x102b, "ColorControl", N_("Color Control"), TagInfo(0x102b, "ColorControl", N_("Color Control"),
N_("Color control"), N_("Color control"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x102c, "ValidBits", N_("ValidBits"), TagInfo(0x102c, "ValidBits", N_("ValidBits"),
N_("Valid bits"), N_("Valid bits"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x102d, "CoringFilter", N_("CoringFilter"), TagInfo(0x102d, "CoringFilter", N_("CoringFilter"),
N_("Coring filter"), N_("Coring filter"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x102e, "ImageWidth", N_("Image Width"), TagInfo(0x102e, "ImageWidth", N_("Image Width"),
N_("Image width"), N_("Image width"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x102f, "ImageHeight", N_("Image Height"), TagInfo(0x102f, "ImageHeight", N_("Image Height"),
N_("Image height"), N_("Image height"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1030, "0x1030", "0x1030", TagInfo(0x1030, "0x1030", "0x1030",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1031, "0x1031", "0x1031", TagInfo(0x1031, "0x1031", "0x1031",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1032, "0x1032", "0x1032", TagInfo(0x1032, "0x1032", "0x1032",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1033, "0x1033", "0x1033", TagInfo(0x1033, "0x1033", "0x1033",
N_("Unknown"), N_("Unknown"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1034, "CompressionRatio", N_("Compression Ratio"), TagInfo(0x1034, "CompressionRatio", N_("Compression Ratio"),
N_("Compression ratio"), N_("Compression ratio"),
olympusIfdId, makerTags, unsignedRational, -1, printValue), olympusId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x1035, "Thumbnail", N_("Thumbnail"), TagInfo(0x1035, "Thumbnail", N_("Thumbnail"),
N_("Preview image embedded"), N_("Preview image embedded"),
olympusIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(olympusOffOn)), olympusId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1036, "ThumbnailOffset", N_("Thumbnail Offset"), TagInfo(0x1036, "ThumbnailOffset", N_("Thumbnail Offset"),
N_("Offset of the preview image"), N_("Offset of the preview image"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1037, "ThumbnailLength", N_("Thumbnail Length"), TagInfo(0x1037, "ThumbnailLength", N_("Thumbnail Length"),
N_("Size of the preview image"), N_("Size of the preview image"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1039, "CCDScanMode", N_("CCD Scan Mode"), TagInfo(0x1039, "CCDScanMode", N_("CCD Scan Mode"),
N_("CCD scan mode"), N_("CCD scan mode"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusCCDScanMode)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusCCDScanMode)),
TagInfo(0x103a, "NoiseReduction", N_("Noise Reduction"), TagInfo(0x103a, "NoiseReduction", N_("Noise Reduction"),
N_("Noise reduction"), N_("Noise reduction"),
olympusIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), olympusId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x103b, "InfinityLensStep", N_("Infinity Lens Step"), TagInfo(0x103b, "InfinityLensStep", N_("Infinity Lens Step"),
N_("Infinity lens step"), N_("Infinity lens step"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x103c, "NearLensStep", N_("Near Lens Step"), TagInfo(0x103c, "NearLensStep", N_("Near Lens Step"),
N_("Near lens step"), N_("Near lens step"),
olympusIfdId, makerTags, unsignedShort, -1, printValue), olympusId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x2010, "Equipment", N_("Equipment Info"), TagInfo(0x2010, "Equipment", N_("Equipment Info"),
N_("Camera equipment sub-IFD"), N_("Camera equipment sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x2020, "CameraSettings", N_("Camera Settings"), TagInfo(0x2020, "CameraSettings", N_("Camera Settings"),
N_("Camera Settings sub-IFD"), N_("Camera Settings sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x2030, "RawDevelopment", N_("Raw Development"), TagInfo(0x2030, "RawDevelopment", N_("Raw Development"),
N_("Raw development sub-IFD"), N_("Raw development sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x2031, "RawDevelopment2", N_("Raw Development 2"), TagInfo(0x2031, "RawDevelopment2", N_("Raw Development 2"),
N_("Raw development 2 sub-IFD"), N_("Raw development 2 sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x2040, "ImageProcessing", N_("Image Processing"), TagInfo(0x2040, "ImageProcessing", N_("Image Processing"),
N_("Image processing sub-IFD"), N_("Image processing sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x2050, "FocusInfo", N_("Focus Info"), TagInfo(0x2050, "FocusInfo", N_("Focus Info"),
N_("Focus sub-IFD"), N_("Focus sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x3000, "RawInfo", N_("Raw Info"), TagInfo(0x3000, "RawInfo", N_("Raw Info"),
N_("Raw sub-IFD"), N_("Raw sub-IFD"),
olympusIfdId, makerTags, unsignedLong, -1, printValue), olympusId, makerTags, unsignedLong, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusMakerNoteTag)", "(UnknownOlympusMakerNoteTag)", TagInfo(0xffff, "(UnknownOlympusMakerNoteTag)", "(UnknownOlympusMakerNoteTag)",
N_("Unknown OlympusMakerNote tag"), N_("Unknown OlympusMakerNote tag"),
olympusIfdId, makerTags, asciiString, -1, printValue) olympusId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagList() const TagInfo* OlympusMakerNote::tagList()
@ -652,62 +652,62 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoCs_[] = { const TagInfo OlympusMakerNote::tagInfoCs_[] = {
TagInfo(0x0000, "CameraSettingsVersion", N_("Camera Settings Version"), N_("Camera settings version"), olympusCsIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0000, "CameraSettingsVersion", N_("Camera Settings Version"), N_("Camera settings version"), olympusCsId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0100, "PreviewImageValid", N_("PreviewImage Valid"), N_("Preview image valid"), olympusCsIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(olympusNoYes)), TagInfo(0x0100, "PreviewImageValid", N_("PreviewImage Valid"), N_("Preview image valid"), olympusCsId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(olympusNoYes)),
TagInfo(0x0101, "PreviewImageStart", N_("PreviewImage Start"), N_("Preview image start"), olympusCsIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0101, "PreviewImageStart", N_("PreviewImage Start"), N_("Preview image start"), olympusCsId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0102, "PreviewImageLength", N_("PreviewImage Length"), N_("Preview image length"), olympusCsIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0102, "PreviewImageLength", N_("PreviewImage Length"), N_("Preview image length"), olympusCsId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0200, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusExposureMode)), TagInfo(0x0200, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusExposureMode)),
TagInfo(0x0201, "AELock", N_("AE Lock"), N_("Auto exposure lock"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x0201, "AELock", N_("AE Lock"), N_("Auto exposure lock"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x0202, "MeteringMode", N_("Metering Mode"), N_("Metering mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusMeteringMode)), TagInfo(0x0202, "MeteringMode", N_("Metering Mode"), N_("Metering mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusMeteringMode)),
TagInfo(0x0203, "ExposureShift", N_("Exposure Shift"), N_("Exposure shift"), olympusCsIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0203, "ExposureShift", N_("Exposure Shift"), N_("Exposure shift"), olympusCsId, makerTags, signedRational, -1, printValue),
TagInfo(0x0300, "MacroMode", N_("Macro Mode"), N_("Macro mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusMacroMode)), TagInfo(0x0300, "MacroMode", N_("Macro Mode"), N_("Macro mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusMacroMode)),
TagInfo(0x0301, "FocusMode", N_("Focus Mode"), N_("Focus mode"), olympusCsIfdId, makerTags, unsignedShort, -1, printCs0x0301), TagInfo(0x0301, "FocusMode", N_("Focus Mode"), N_("Focus mode"), olympusCsId, makerTags, unsignedShort, -1, printCs0x0301),
TagInfo(0x0302, "FocusProcess", N_("Focus Process"), N_("Focus process"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFocusProcess)), TagInfo(0x0302, "FocusProcess", N_("Focus Process"), N_("Focus process"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFocusProcess)),
TagInfo(0x0303, "AFSearch", N_("AF Search"), N_("AF search"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusAFSearch)), TagInfo(0x0303, "AFSearch", N_("AF Search"), N_("AF search"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusAFSearch)),
TagInfo(0x0304, "AFAreas", N_("AF Areas"), N_("AF areas"), olympusCsIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0304, "AFAreas", N_("AF Areas"), N_("AF areas"), olympusCsId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0305, "AFPointSelected", N_("AFPointSelected"), N_("AFPointSelected"), olympusCsIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0305, "AFPointSelected", N_("AFPointSelected"), N_("AFPointSelected"), olympusCsId, makerTags, signedRational, -1, printValue),
TagInfo(0x0307, "AFFineTuneAdj", N_("AF Fine Tune Adjust"), N_("AF fine tune adjust"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0307, "AFFineTuneAdj", N_("AF Fine Tune Adjust"), N_("AF fine tune adjust"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0400, "FlashMode", N_("Flash Mode"), N_("Flash mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusFlashMode)), TagInfo(0x0400, "FlashMode", N_("Flash Mode"), N_("Flash mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusFlashMode)),
TagInfo(0x0401, "FlashExposureComp", N_("Flash Exposure Compensation"), N_("Flash exposure compensation"), olympusCsIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0401, "FlashExposureComp", N_("Flash Exposure Compensation"), N_("Flash exposure compensation"), olympusCsId, makerTags, signedRational, -1, printValue),
TagInfo(0x0403, "FlashRemoteControl", N_("Flash Remote Control"), N_("Flash remote control"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFlashRemoteControl)), TagInfo(0x0403, "FlashRemoteControl", N_("Flash Remote Control"), N_("Flash remote control"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFlashRemoteControl)),
TagInfo(0x0404, "FlashControlMode", N_("Flash Control Mode"), N_("Flash control mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFlashControlMode)), TagInfo(0x0404, "FlashControlMode", N_("Flash Control Mode"), N_("Flash control mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFlashControlMode)),
TagInfo(0x0405, "FlashIntensity", N_("Flash Intensity"), N_("Flash intensity"), olympusCsIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0405, "FlashIntensity", N_("Flash Intensity"), N_("Flash intensity"), olympusCsId, makerTags, signedRational, -1, printValue),
TagInfo(0x0406, "ManualFlashStrength", N_("Manual Flash Strength"), N_("Manual flash strength"), olympusCsIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0406, "ManualFlashStrength", N_("Manual Flash Strength"), N_("Manual flash strength"), olympusCsId, makerTags, signedRational, -1, printValue),
TagInfo(0x0500, "WhiteBalance", N_("White Balance 2"), N_("White balance 2"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusWhiteBalance)), TagInfo(0x0500, "WhiteBalance", N_("White Balance 2"), N_("White balance 2"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusWhiteBalance)),
TagInfo(0x0501, "WhiteBalanceTemperature", N_("White Balance Temperature"), N_("White balance temperature"), olympusCsIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0501, "WhiteBalanceTemperature", N_("White Balance Temperature"), N_("White balance temperature"), olympusCsId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0502, "WhiteBalanceBracket", N_("White Balance Bracket"), N_("White balance bracket"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0502, "WhiteBalanceBracket", N_("White Balance Bracket"), N_("White balance bracket"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0503, "CustomSaturation", N_("Custom Saturation"), N_("Custom saturation"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0503, "CustomSaturation", N_("Custom Saturation"), N_("Custom saturation"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0504, "ModifiedSaturation", N_("Modified Saturation"), N_("Modified saturation"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusModifiedSaturation)), TagInfo(0x0504, "ModifiedSaturation", N_("Modified Saturation"), N_("Modified saturation"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusModifiedSaturation)),
TagInfo(0x0505, "ContrastSetting", N_("Contrast Setting"), N_("Contrast setting"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0505, "ContrastSetting", N_("Contrast Setting"), N_("Contrast setting"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0506, "SharpnessSetting", N_("Sharpness Setting"), N_("Sharpness setting"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0506, "SharpnessSetting", N_("Sharpness Setting"), N_("Sharpness setting"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0507, "ColorSpace", N_("Color Space"), N_("Color space"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusColorSpace)), TagInfo(0x0507, "ColorSpace", N_("Color Space"), N_("Color space"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusColorSpace)),
TagInfo(0x0509, "SceneMode", N_("Scene Mode"), N_("Scene mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusSceneMode)), TagInfo(0x0509, "SceneMode", N_("Scene Mode"), N_("Scene mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusSceneMode)),
TagInfo(0x050a, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)), TagInfo(0x050a, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)),
TagInfo(0x050b, "DistortionCorrection", N_("Distortion Correction"), N_("Distortion correction"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x050b, "DistortionCorrection", N_("Distortion Correction"), N_("Distortion correction"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x050c, "ShadingCompensation", N_("Shading Compensation"), N_("Shading compensation"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x050c, "ShadingCompensation", N_("Shading Compensation"), N_("Shading compensation"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x050d, "CompressionFactor", N_("Compression Factor"), N_("Compression factor"), olympusCsIfdId, makerTags, unsignedRational, -1, printValue), TagInfo(0x050d, "CompressionFactor", N_("Compression Factor"), N_("Compression factor"), olympusCsId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x050f, "Gradation", N_("Gradation"), N_("Gradation"), olympusCsIfdId, makerTags, signedShort, -1, print0x050f), TagInfo(0x050f, "Gradation", N_("Gradation"), N_("Gradation"), olympusCsId, makerTags, signedShort, -1, print0x050f),
TagInfo(0x0520, "PictureMode", N_("Picture Mode"), N_("Picture mode"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusPictureMode)), TagInfo(0x0520, "PictureMode", N_("Picture Mode"), N_("Picture mode"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusPictureMode)),
TagInfo(0x0521, "PictureModeSaturation", N_("Picture Mode Saturation"), N_("Picture mode saturation"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0521, "PictureModeSaturation", N_("Picture Mode Saturation"), N_("Picture mode saturation"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0522, "PictureModeHue", N_("Picture Mode Hue"), N_("Picture mode hue"), olympusCsIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0522, "PictureModeHue", N_("Picture Mode Hue"), N_("Picture mode hue"), olympusCsId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0523, "PictureModeContrast", N_("Picture Mode Contrast"), N_("Picture mode contrast"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0523, "PictureModeContrast", N_("Picture Mode Contrast"), N_("Picture mode contrast"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0524, "PictureModeSharpness", N_("Picture Mode Sharpness"), N_("Picture mode sharpness"), olympusCsIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0524, "PictureModeSharpness", N_("Picture Mode Sharpness"), N_("Picture mode sharpness"), olympusCsId, makerTags, signedShort, -1, printValue),
TagInfo(0x0525, "PictureModeBWFilter", N_("Picture Mode BW Filter"), N_("Picture mode BW filter"), olympusCsIfdId, makerTags, signedShort, -1, EXV_PRINT_TAG(olympusPictureModeBWFilter)), TagInfo(0x0525, "PictureModeBWFilter", N_("Picture Mode BW Filter"), N_("Picture mode BW filter"), olympusCsId, makerTags, signedShort, -1, EXV_PRINT_TAG(olympusPictureModeBWFilter)),
TagInfo(0x0526, "PictureModeTone", N_("Picture Mode Tone"), N_("Picture mode tone"), olympusCsIfdId, makerTags, signedShort, -1, EXV_PRINT_TAG(olympusPictureModeTone)), TagInfo(0x0526, "PictureModeTone", N_("Picture Mode Tone"), N_("Picture mode tone"), olympusCsId, makerTags, signedShort, -1, EXV_PRINT_TAG(olympusPictureModeTone)),
TagInfo(0x0527, "NoiseFilter", N_("Noise Filter"), N_("Noise filter"), olympusCsIfdId, makerTags, signedShort, -1, print0x0527), TagInfo(0x0527, "NoiseFilter", N_("Noise Filter"), N_("Noise filter"), olympusCsId, makerTags, signedShort, -1, print0x0527),
TagInfo(0x0529, "ArtFilter", N_("Art Filter"), N_("Art filter"), olympusCsIfdId, makerTags, unsignedShort, -1, print0x0529), TagInfo(0x0529, "ArtFilter", N_("Art Filter"), N_("Art filter"), olympusCsId, makerTags, unsignedShort, -1, print0x0529),
TagInfo(0x052c, "MagicFilter", N_("Magic Filter"), N_("Magic filter"), olympusCsIfdId, makerTags, unsignedShort, -1, print0x0529), TagInfo(0x052c, "MagicFilter", N_("Magic Filter"), N_("Magic filter"), olympusCsId, makerTags, unsignedShort, -1, print0x0529),
TagInfo(0x0600, "DriveMode", N_("Drive Mode"), N_("Drive mode"), olympusCsIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0600, "DriveMode", N_("Drive Mode"), N_("Drive mode"), olympusCsId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0601, "PanoramaMode", N_("Panorama Mode"), N_("Panorama mode"), olympusCsIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0601, "PanoramaMode", N_("Panorama Mode"), N_("Panorama mode"), olympusCsId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0603, "Quality", N_("Image Quality 2"), N_("Image quality 2"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusCsQuality)), TagInfo(0x0603, "Quality", N_("Image Quality 2"), N_("Image quality 2"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusCsQuality)),
TagInfo(0x0604, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusImageStabilization)), TagInfo(0x0604, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusImageStabilization)),
TagInfo(0x0900, "ManometerPressure", N_("Manometer Pressure"), N_("Manometer pressure"), olympusCsIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0900, "ManometerPressure", N_("Manometer Pressure"), N_("Manometer pressure"), olympusCsId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0901, "ManometerReading", N_("Manometer Reading"), N_("Manometer reading"), olympusCsIfdId, makerTags, signedLong, -1, printValue), TagInfo(0x0901, "ManometerReading", N_("Manometer Reading"), N_("Manometer reading"), olympusCsId, makerTags, signedLong, -1, printValue),
TagInfo(0x0902, "ExtendedWBDetect", N_("Extended WB Detect"), N_("Extended WB detect"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x0902, "ExtendedWBDetect", N_("Extended WB Detect"), N_("Extended WB detect"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x0903, "LevelGaugeRoll", N_("Level Gauge Roll"), N_("Level gauge roll"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x0903, "LevelGaugeRoll", N_("Level Gauge Roll"), N_("Level gauge roll"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x0904, "LevelGaugePitch", N_("Level Gauge Pitch"), N_("Level gauge pitch"), olympusCsIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x0904, "LevelGaugePitch", N_("Level Gauge Pitch"), N_("Level gauge pitch"), olympusCsId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusCsTag)", "(UnknownOlympusCsTag)", N_("Unknown OlympusCs tag"), olympusCsIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusCsTag)", "(UnknownOlympusCsTag)", N_("Unknown OlympusCs tag"), olympusCsId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListCs() const TagInfo* OlympusMakerNote::tagListCs()
@ -735,32 +735,32 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoEq_[] = { const TagInfo OlympusMakerNote::tagInfoEq_[] = {
TagInfo(0x0000, "EquipmentVersion", N_("Equipment Version"), N_("Equipment version"), olympusEqIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0000, "EquipmentVersion", N_("Equipment Version"), N_("Equipment version"), olympusEqId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0100, "CameraType", N_("Camera Type"), N_("Camera type"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0100, "CameraType", N_("Camera Type"), N_("Camera type"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0101, "SerialNumber", N_("Serial Number"), N_("Serial number"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0101, "SerialNumber", N_("Serial Number"), N_("Serial number"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0102, "InternalSerialNumber", N_("Internal Serial Number"), N_("Internal serial number"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0102, "InternalSerialNumber", N_("Internal Serial Number"), N_("Internal serial number"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0103, "FocalPlaneDiagonal", N_("Focal Plane Diagonal"), N_("Focal plane diagonal"), olympusEqIfdId, makerTags, unsignedRational, -1, printValue), TagInfo(0x0103, "FocalPlaneDiagonal", N_("Focal Plane Diagonal"), N_("Focal plane diagonal"), olympusEqId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x0104, "BodyFirmwareVersion", N_("Body Firmware Version"), N_("Body firmware version"), olympusEqIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0104, "BodyFirmwareVersion", N_("Body Firmware Version"), N_("Body firmware version"), olympusEqId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0201, "LensType", N_("Lens Type"), N_("Lens type"), olympusEqIfdId, makerTags, unsignedByte, -1, print0x0201), TagInfo(0x0201, "LensType", N_("Lens Type"), N_("Lens type"), olympusEqId, makerTags, unsignedByte, -1, print0x0201),
TagInfo(0x0202, "LensSerialNumber", N_("Lens Serial Number"), N_("Lens serial number"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0202, "LensSerialNumber", N_("Lens Serial Number"), N_("Lens serial number"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0203, "LensModel", N_("Lens Model"), N_("Lens model"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0203, "LensModel", N_("Lens Model"), N_("Lens model"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0204, "LensFirmwareVersion", N_("Lens Firmware Version"), N_("Lens firmware version"), olympusEqIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0204, "LensFirmwareVersion", N_("Lens Firmware Version"), N_("Lens firmware version"), olympusEqId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0205, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), olympusEqIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0205, "MaxApertureAtMinFocal", N_("Max Aperture At Min Focal"), N_("Max aperture at min focal"), olympusEqId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0206, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), olympusEqIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0206, "MaxApertureAtMaxFocal", N_("Max Aperture At Max Focal"), N_("Max aperture at max focal"), olympusEqId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0207, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), olympusEqIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0207, "MinFocalLength", N_("Min Focal Length"), N_("Min focal length"), olympusEqId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0208, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), olympusEqIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0208, "MaxFocalLength", N_("Max Focal Length"), N_("Max focal length"), olympusEqId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x020a, "MaxApertureAtCurrentFocal", N_("Max Aperture At Current Focal"), N_("Max aperture at current focal"), olympusEqIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x020a, "MaxApertureAtCurrentFocal", N_("Max Aperture At Current Focal"), N_("Max aperture at current focal"), olympusEqId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x020b, "LensProperties", N_("Lens Properties"), N_("Lens properties"), olympusEqIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x020b, "LensProperties", N_("Lens Properties"), N_("Lens properties"), olympusEqId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0301, "Extender", N_("Extender"), N_("Extender"), olympusEqIfdId, makerTags, unsignedByte, -1, printEq0x0301), TagInfo(0x0301, "Extender", N_("Extender"), N_("Extender"), olympusEqId, makerTags, unsignedByte, -1, printEq0x0301),
TagInfo(0x0302, "ExtenderSerialNumber", N_("Extender Serial Number"), N_("Extender serial number"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0302, "ExtenderSerialNumber", N_("Extender Serial Number"), N_("Extender serial number"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0303, "ExtenderModel", N_("Extender Model"), N_("Extender model"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0303, "ExtenderModel", N_("Extender Model"), N_("Extender model"), olympusEqId, makerTags, asciiString, -1, printValue),
TagInfo(0x0304, "ExtenderFirmwareVersion", N_("Extender Firmware Version"), N_("Extender firmwareversion"), olympusEqIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0304, "ExtenderFirmwareVersion", N_("Extender Firmware Version"), N_("Extender firmwareversion"), olympusEqId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1000, "FlashType", N_("Flash Type"), N_("Flash type"), olympusEqIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusEqFlashType)), TagInfo(0x1000, "FlashType", N_("Flash Type"), N_("Flash type"), olympusEqId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusEqFlashType)),
TagInfo(0x1001, "FlashModel", N_("Flash Model"), N_("Flash model"), olympusEqIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusEqFlashModel)), TagInfo(0x1001, "FlashModel", N_("Flash Model"), N_("Flash model"), olympusEqId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusEqFlashModel)),
TagInfo(0x1002, "FlashFirmwareVersion", N_("Flash Firmware Version"), N_("Flash firmware version"), olympusEqIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x1002, "FlashFirmwareVersion", N_("Flash Firmware Version"), N_("Flash firmware version"), olympusEqId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1003, "FlashSerialNumber", N_("FlashSerialNumber"), N_("FlashSerialNumber"), olympusEqIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x1003, "FlashSerialNumber", N_("FlashSerialNumber"), N_("FlashSerialNumber"), olympusEqId, makerTags, asciiString, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusEqTag)", "(UnknownOlympusEqTag)", N_("Unknown OlympusEq tag"), olympusEqIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusEqTag)", "(UnknownOlympusEqTag)", N_("Unknown OlympusEq tag"), olympusEqId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListEq() const TagInfo* OlympusMakerNote::tagListEq()
@ -804,22 +804,22 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoRd_[] = { const TagInfo OlympusMakerNote::tagInfoRd_[] = {
TagInfo(0x0000, "RawDevVersion", N_("Raw Development Version"), N_("Raw development version"), olympusRdIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0000, "RawDevVersion", N_("Raw Development Version"), N_("Raw development version"), olympusRdId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0100, "ExposureBiasValue", N_("Exposure Bias Value"), N_("Exposure bias value"), olympusRdIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0100, "ExposureBiasValue", N_("Exposure Bias Value"), N_("Exposure bias value"), olympusRdId, makerTags, signedRational, -1, printValue),
TagInfo(0x0101, "WhiteBalanceValue", N_("White Balance Value"), N_("White balance value"), olympusRdIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0101, "WhiteBalanceValue", N_("White Balance Value"), N_("White balance value"), olympusRdId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0102, "WBFineAdjustment", N_("WB Fine Adjustment"), N_("WB fine adjustment"), olympusRdIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0102, "WBFineAdjustment", N_("WB Fine Adjustment"), N_("WB fine adjustment"), olympusRdId, makerTags, signedShort, -1, printValue),
TagInfo(0x0103, "GrayPoint", N_("Gray Point"), N_("Gray point"), olympusRdIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0103, "GrayPoint", N_("Gray Point"), N_("Gray point"), olympusRdId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0104, "SaturationEmphasis", N_("Saturation Emphasis"), N_("Saturation emphasis"), olympusRdIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0104, "SaturationEmphasis", N_("Saturation Emphasis"), N_("Saturation emphasis"), olympusRdId, makerTags, signedShort, -1, printValue),
TagInfo(0x0105, "MemoryColorEmphasis", N_("Memory Color Emphasis"), N_("Memory color emphasis"), olympusRdIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0105, "MemoryColorEmphasis", N_("Memory Color Emphasis"), N_("Memory color emphasis"), olympusRdId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0106, "ContrastValue", N_("Contrast Value"), N_("Contrast value"), olympusRdIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0106, "ContrastValue", N_("Contrast Value"), N_("Contrast value"), olympusRdId, makerTags, signedShort, -1, printValue),
TagInfo(0x0107, "SharpnessValue", N_("Sharpness Value"), N_("Sharpness value"), olympusRdIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0107, "SharpnessValue", N_("Sharpness Value"), N_("Sharpness value"), olympusRdId, makerTags, signedShort, -1, printValue),
TagInfo(0x0108, "ColorSpace", N_("Color Space"), N_("Color space"), olympusRdIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRdColorSpace)), TagInfo(0x0108, "ColorSpace", N_("Color Space"), N_("Color space"), olympusRdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRdColorSpace)),
TagInfo(0x0109, "Engine", N_("Engine"), N_("Engine"), olympusRdIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRdEngine)), TagInfo(0x0109, "Engine", N_("Engine"), N_("Engine"), olympusRdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRdEngine)),
TagInfo(0x010a, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusRdIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)), TagInfo(0x010a, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusRdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)),
TagInfo(0x010b, "EditStatus", N_("Edit Status"), N_("Edit status"), olympusRdIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRdEditStatus)), TagInfo(0x010b, "EditStatus", N_("Edit Status"), N_("Edit status"), olympusRdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRdEditStatus)),
TagInfo(0x010c, "Settings", N_("Settings"), N_("Settings"), olympusRdIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusRdSettings)), TagInfo(0x010c, "Settings", N_("Settings"), N_("Settings"), olympusRdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusRdSettings)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusRdTag)", "(UnknownOlympusRdTag)", N_("Unknown OlympusRd tag"), olympusRdIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusRdTag)", "(UnknownOlympusRdTag)", N_("Unknown OlympusRd tag"), olympusRdId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListRd() const TagInfo* OlympusMakerNote::tagListRd()
@ -874,31 +874,31 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoRd2_[] = { const TagInfo OlympusMakerNote::tagInfoRd2_[] = {
TagInfo(0x0000, "RawDev2Version", N_("Raw Development 2 Version"), N_("Raw development 2 version"), olympusRd2IfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0000, "RawDev2Version", N_("Raw Development 2 Version"), N_("Raw development 2 version"), olympusRd2Id, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0100, "ExposureBiasValue", N_("Exposure Bias Value"), N_("Exposure bias value"), olympusRd2IfdId, makerTags, signedRational, -1, printValue), TagInfo(0x0100, "ExposureBiasValue", N_("Exposure Bias Value"), N_("Exposure bias value"), olympusRd2Id, makerTags, signedRational, -1, printValue),
TagInfo(0x0101, "WhiteBalance", N_("White Balance"), N_("White balance"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2WhiteBalance)), TagInfo(0x0101, "WhiteBalance", N_("White Balance"), N_("White balance"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2WhiteBalance)),
TagInfo(0x0102, "WhiteBalanceValue", N_("White Balance Value"), N_("White balance value"), olympusRd2IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0102, "WhiteBalanceValue", N_("White Balance Value"), N_("White balance value"), olympusRd2Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0103, "WBFineAdjustment", N_("WB Fine Adjustment"), N_("White balance fine adjustment"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0103, "WBFineAdjustment", N_("WB Fine Adjustment"), N_("White balance fine adjustment"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0104, "GrayPoint", N_("Gray Point"), N_("Gray point"), olympusRd2IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0104, "GrayPoint", N_("Gray Point"), N_("Gray point"), olympusRd2Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0105, "ContrastValue", N_("Contrast Value"), N_("Contrast value"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0105, "ContrastValue", N_("Contrast Value"), N_("Contrast value"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0106, "SharpnessValue", N_("Sharpness Value"), N_("Sharpness value"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0106, "SharpnessValue", N_("Sharpness Value"), N_("Sharpness value"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0107, "SaturationEmphasis", N_("Saturation Emphasis"), N_("Saturation emphasis"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0107, "SaturationEmphasis", N_("Saturation Emphasis"), N_("Saturation emphasis"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0108, "MemoryColorEmphasis", N_("Memory Color Emphasis"), N_("Memory color emphasis"), olympusRd2IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0108, "MemoryColorEmphasis", N_("Memory Color Emphasis"), N_("Memory color emphasis"), olympusRd2Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0109, "ColorSpace", N_("Color Space"), N_("Color space"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2ColorSpace)), TagInfo(0x0109, "ColorSpace", N_("Color Space"), N_("Color space"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2ColorSpace)),
TagInfo(0x010a, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)), TagInfo(0x010a, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)),
TagInfo(0x010b, "Engine", N_("Engine"), N_("Engine"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2Engine)), TagInfo(0x010b, "Engine", N_("Engine"), N_("Engine"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2Engine)),
TagInfo(0x010c, "PictureMode", N_("Picture Mode"), N_("Picture mode"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2PictureMode)), TagInfo(0x010c, "PictureMode", N_("Picture Mode"), N_("Picture mode"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2PictureMode)),
TagInfo(0x010d, "PMSaturation", N_("PM Saturation"), N_("Picture mode saturation"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x010d, "PMSaturation", N_("PM Saturation"), N_("Picture mode saturation"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x010e, "PMContrast", N_("PM Contrast"), N_("Picture mode contrast"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x010e, "PMContrast", N_("PM Contrast"), N_("Picture mode contrast"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x010f, "PMSharpness", N_("PM Sharpness"), N_("Picture mode sharpness"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x010f, "PMSharpness", N_("PM Sharpness"), N_("Picture mode sharpness"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0110, "PM_BWFilter", N_("PM BW Filter"), N_("PM BW filter"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2PM_BWFilter)), TagInfo(0x0110, "PM_BWFilter", N_("PM BW Filter"), N_("PM BW filter"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2PM_BWFilter)),
TagInfo(0x0111, "PMPictureTone", N_("PM Picture Tone"), N_("PM picture tone"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2PMPictureTone)), TagInfo(0x0111, "PMPictureTone", N_("PM Picture Tone"), N_("PM picture tone"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRd2PMPictureTone)),
TagInfo(0x0112, "Gradation", N_("Gradation"), N_("Gradation"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0112, "Gradation", N_("Gradation"), N_("Gradation"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0113, "Saturation", N_("Saturation"), N_("Saturation"), olympusRd2IfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0113, "Saturation", N_("Saturation"), N_("Saturation"), olympusRd2Id, makerTags, signedShort, -1, printValue),
TagInfo(0x0119, "AutoGradation", N_("Auto Gradation"), N_("Auto gradation"), olympusRd2IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x0119, "AutoGradation", N_("Auto Gradation"), N_("Auto gradation"), olympusRd2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x0120, "PMNoiseFilter", N_("PM Noise Filter"), N_("Picture mode noise filter"), olympusRd2IfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0120, "PMNoiseFilter", N_("PM Noise Filter"), N_("Picture mode noise filter"), olympusRd2Id, makerTags, unsignedShort, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusRd2Tag)", "(UnknownOlympusRd2Tag)", N_("Unknown OlympusRd2 tag"), olympusRd2IfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusRd2Tag)", "(UnknownOlympusRd2Tag)", N_("Unknown OlympusRd2 tag"), olympusRd2Id, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListRd2() const TagInfo* OlympusMakerNote::tagListRd2()
@ -927,59 +927,59 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoIp_[] = { const TagInfo OlympusMakerNote::tagInfoIp_[] = {
TagInfo(0x0000, "ImageProcessingVersion", N_("Image Processing Version"), N_("Image processing version"), olympusIpIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0000, "ImageProcessingVersion", N_("Image Processing Version"), N_("Image processing version"), olympusIpId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0100, "WB_RBLevels", N_("WB RB Levels"), N_("WB RB levels"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0100, "WB_RBLevels", N_("WB RB Levels"), N_("WB RB levels"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0102, "WB_RBLevels3000K", N_("WB RB Levels 3000K"), N_("WB RB levels 3000K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0102, "WB_RBLevels3000K", N_("WB RB Levels 3000K"), N_("WB RB levels 3000K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0103, "WB_RBLevels3300K", N_("WB RB Levels 3300K"), N_("WB RB levels 3300K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0103, "WB_RBLevels3300K", N_("WB RB Levels 3300K"), N_("WB RB levels 3300K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0104, "WB_RBLevels3600K", N_("WB RB Levels 3600K"), N_("WB RB levels 3600K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0104, "WB_RBLevels3600K", N_("WB RB Levels 3600K"), N_("WB RB levels 3600K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0105, "WB_RBLevels3900K", N_("WB RB Levels 3900K"), N_("WB RB levels 3900K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0105, "WB_RBLevels3900K", N_("WB RB Levels 3900K"), N_("WB RB levels 3900K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0106, "WB_RBLevels4000K", N_("WB RB Levels 4000K"), N_("WB RB levels 4000K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0106, "WB_RBLevels4000K", N_("WB RB Levels 4000K"), N_("WB RB levels 4000K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0107, "WB_RBLevels4300K", N_("WB RB Levels 4300K"), N_("WB RB levels 4300K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0107, "WB_RBLevels4300K", N_("WB RB Levels 4300K"), N_("WB RB levels 4300K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0108, "WB_RBLevels4500K", N_("WB RB Levels 4500K"), N_("WB RB levels 4500K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0108, "WB_RBLevels4500K", N_("WB RB Levels 4500K"), N_("WB RB levels 4500K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0109, "WB_RBLevels4800K", N_("WB RB Levels 4800K"), N_("WB RB levels 4800K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0109, "WB_RBLevels4800K", N_("WB RB Levels 4800K"), N_("WB RB levels 4800K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x010a, "WB_RBLevels5300K", N_("WB RB Levels 5300K"), N_("WB RB levels 5300K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x010a, "WB_RBLevels5300K", N_("WB RB Levels 5300K"), N_("WB RB levels 5300K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x010b, "WB_RBLevels6000K", N_("WB RB Levels 6000K"), N_("WB RB levels 6000K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x010b, "WB_RBLevels6000K", N_("WB RB Levels 6000K"), N_("WB RB levels 6000K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x010c, "WB_RBLevels6600K", N_("WB RB Levels 6600K"), N_("WB RB levels 6600K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x010c, "WB_RBLevels6600K", N_("WB RB Levels 6600K"), N_("WB RB levels 6600K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x010d, "WB_RBLevels7500K", N_("WB RB Levels 7500K"), N_("WB RB levels 7500K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x010d, "WB_RBLevels7500K", N_("WB RB Levels 7500K"), N_("WB RB levels 7500K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x010e, "WB_RBLevelsCWB1", N_("WB RB Levels CWB1"), N_("WB RB levels CWB1"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x010e, "WB_RBLevelsCWB1", N_("WB RB Levels CWB1"), N_("WB RB levels CWB1"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x010f, "WB_RBLevelsCWB2", N_("WB RB Levels CWB2"), N_("WB RB levels CWB2"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x010f, "WB_RBLevelsCWB2", N_("WB RB Levels CWB2"), N_("WB RB levels CWB2"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0110, "WB_RBLevelsCWB3", N_("WB RB Levels CWB3"), N_("WB RB levels CWB3"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0110, "WB_RBLevelsCWB3", N_("WB RB Levels CWB3"), N_("WB RB levels CWB3"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0111, "WB_RBLevelsCWB4", N_("WB RB Levels CWB4"), N_("WB RB levels CWB4"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0111, "WB_RBLevelsCWB4", N_("WB RB Levels CWB4"), N_("WB RB levels CWB4"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0113, "WB_GLevel3000K", N_("WB G Level 3000K"), N_("WB G level 3000K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0113, "WB_GLevel3000K", N_("WB G Level 3000K"), N_("WB G level 3000K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0114, "WB_GLevel3300K", N_("WB G Level 3300K"), N_("WB G level 3300K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0114, "WB_GLevel3300K", N_("WB G Level 3300K"), N_("WB G level 3300K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0115, "WB_GLevel3600K", N_("WB G Level 3600K"), N_("WB G level 3600K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0115, "WB_GLevel3600K", N_("WB G Level 3600K"), N_("WB G level 3600K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0116, "WB_GLevel3900K", N_("WB G Level 3900K"), N_("WB G level 3900K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0116, "WB_GLevel3900K", N_("WB G Level 3900K"), N_("WB G level 3900K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0117, "WB_GLevel4000K", N_("WB G Level 4000K"), N_("WB G level 4000K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0117, "WB_GLevel4000K", N_("WB G Level 4000K"), N_("WB G level 4000K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0118, "WB_GLevel4300K", N_("WB G Level 4300K"), N_("WB G level 4300K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0118, "WB_GLevel4300K", N_("WB G Level 4300K"), N_("WB G level 4300K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0119, "WB_GLevel4500K", N_("WB G Level 4500K"), N_("WB G level 4500K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0119, "WB_GLevel4500K", N_("WB G Level 4500K"), N_("WB G level 4500K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x011a, "WB_GLevel4800K", N_("WB G Level 4800K"), N_("WB G level 4800K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x011a, "WB_GLevel4800K", N_("WB G Level 4800K"), N_("WB G level 4800K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x011b, "WB_GLevel5300K", N_("WB G Level 5300K"), N_("WB G level 5300K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x011b, "WB_GLevel5300K", N_("WB G Level 5300K"), N_("WB G level 5300K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x011c, "WB_GLevel6000K", N_("WB G Level 6000K"), N_("WB G level 6000K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x011c, "WB_GLevel6000K", N_("WB G Level 6000K"), N_("WB G level 6000K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x011d, "WB_GLevel6600K", N_("WB G Level 6600K"), N_("WB G level 6600K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x011d, "WB_GLevel6600K", N_("WB G Level 6600K"), N_("WB G level 6600K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x011e, "WB_GLevel7500K", N_("WB G Level 7500K"), N_("WB G level 7500K"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x011e, "WB_GLevel7500K", N_("WB G Level 7500K"), N_("WB G level 7500K"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x011f, "WB_GLevel", N_("WB G Level"), N_("WB G level"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x011f, "WB_GLevel", N_("WB G Level"), N_("WB G level"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0200, "ColorMatrix", N_("Color Matrix"), N_("Color matrix"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0200, "ColorMatrix", N_("Color Matrix"), N_("Color matrix"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0300, "Enhancer", N_("Enhancer"), N_("Enhancer"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0300, "Enhancer", N_("Enhancer"), N_("Enhancer"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0301, "EnhancerValues", N_("Enhancer Values"), N_("Enhancer values"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0301, "EnhancerValues", N_("Enhancer Values"), N_("Enhancer values"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0310, "CoringFilter", N_("Coring Filter"), N_("Coring filter"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0310, "CoringFilter", N_("Coring Filter"), N_("Coring filter"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0311, "CoringValues", N_("Coring Values"), N_("Coring values"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0311, "CoringValues", N_("Coring Values"), N_("Coring values"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0600, "BlackLevel", N_("Black Level"), N_("Black level"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0600, "BlackLevel", N_("Black Level"), N_("Black level"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0610, "GainBase", N_("Gain Base"), N_("Gain base"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0610, "GainBase", N_("Gain Base"), N_("Gain base"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0611, "ValidBits", N_("Valid Bits"), N_("Valid bits"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0611, "ValidBits", N_("Valid Bits"), N_("Valid bits"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0612, "CropLeft", N_("Crop Left"), N_("Crop left"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0612, "CropLeft", N_("Crop Left"), N_("Crop left"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0613, "CropTop", N_("Crop Top"), N_("Crop top"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0613, "CropTop", N_("Crop Top"), N_("Crop top"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0614, "CropWidth", N_("Crop Width"), N_("Crop width"), olympusIpIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0614, "CropWidth", N_("Crop Width"), N_("Crop width"), olympusIpId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0615, "CropHeight", N_("Crop Height"), N_("Crop height"), olympusIpIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0615, "CropHeight", N_("Crop Height"), N_("Crop height"), olympusIpId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1010, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusIpIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)), TagInfo(0x1010, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), olympusIpId, makerTags, unsignedShort, -1, EXV_PRINT_TAG_BITMASK(olympusNoiseReduction)),
TagInfo(0x1011, "DistortionCorrection", N_("Distortion Correction"), N_("Distortion correction"), olympusIpIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x1011, "DistortionCorrection", N_("Distortion Correction"), N_("Distortion correction"), olympusIpId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1012, "ShadingCompensation", N_("Shading Compensation"), N_("Shading compensation"), olympusIpIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x1012, "ShadingCompensation", N_("Shading Compensation"), N_("Shading compensation"), olympusIpId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x101c, "MultipleExposureMode", N_("Multiple Exposure Mode"), N_("Multiple exposure mode"), olympusIpIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusIpMultipleExposureMode)), TagInfo(0x101c, "MultipleExposureMode", N_("Multiple Exposure Mode"), N_("Multiple exposure mode"), olympusIpId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusIpMultipleExposureMode)),
TagInfo(0x1112, "AspectRatio", N_("Aspect Ratio"), N_("Aspect ratio"), olympusIpIfdId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(olympusIpAspectRatio)), TagInfo(0x1112, "AspectRatio", N_("Aspect Ratio"), N_("Aspect ratio"), olympusIpId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(olympusIpAspectRatio)),
TagInfo(0x1113, "AspectFrame", N_("Aspect Frame"), N_("Aspect frame"), olympusIpIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x1113, "AspectFrame", N_("Aspect Frame"), N_("Aspect frame"), olympusIpId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1200, "FaceDetect", N_("Face Detect"), N_("Face detect"), olympusIpIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x1200, "FaceDetect", N_("Face Detect"), N_("Face detect"), olympusIpId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1201, "FaceDetectArea", N_("Face Detect Area"), N_("Face detect area"), olympusIpIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1201, "FaceDetectArea", N_("Face Detect Area"), N_("Face detect area"), olympusIpId, makerTags, signedShort, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusIpTag)", "(UnknownOlympusIpTag)", N_("Unknown OlympusIp tag"), olympusIpIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusIpTag)", "(UnknownOlympusIpTag)", N_("Unknown OlympusIp tag"), olympusIpId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListIp() const TagInfo* OlympusMakerNote::tagListIp()
@ -994,27 +994,27 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoFi_[] = { const TagInfo OlympusMakerNote::tagInfoFi_[] = {
TagInfo(0x0000, "FocusInfoVersion", N_("Focus Info Version"), N_("Focus info version"), olympusFiIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0000, "FocusInfoVersion", N_("Focus Info Version"), N_("Focus info version"), olympusFiId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0209, "AutoFocus", N_("Auto Focus"), N_("Auto focus"), olympusFiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x0209, "AutoFocus", N_("Auto Focus"), N_("Auto focus"), olympusFiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x0210, "SceneDetect", N_("Scene Detect"), N_("Scene detect"), olympusFiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0210, "SceneDetect", N_("Scene Detect"), N_("Scene detect"), olympusFiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0211, "SceneArea", N_("Scene Area"), N_("Scene area"), olympusFiIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0211, "SceneArea", N_("Scene Area"), N_("Scene area"), olympusFiId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0212, "SceneDetectData", N_("Scene Detect Data"), N_("Scene detect data"), olympusFiIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0212, "SceneDetectData", N_("Scene Detect Data"), N_("Scene detect data"), olympusFiId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0300, "ZoomStepCount", N_("Zoom Step Count"), N_("Zoom step count"), olympusFiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0300, "ZoomStepCount", N_("Zoom Step Count"), N_("Zoom step count"), olympusFiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0301, "FocusStepCount", N_("Focus Step Count"), N_("Focus step count"), olympusFiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0301, "FocusStepCount", N_("Focus Step Count"), N_("Focus step count"), olympusFiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0303, "FocusStepInfinity", N_("Focus Step Infinity"), N_("Focus step infinity"), olympusFiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0303, "FocusStepInfinity", N_("Focus Step Infinity"), N_("Focus step infinity"), olympusFiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0304, "FocusStepNear", N_("Focus Step Near"), N_("Focus step near"), olympusFiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0304, "FocusStepNear", N_("Focus Step Near"), N_("Focus step near"), olympusFiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0305, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), olympusFiIfdId, makerTags, unsignedRational, -1, printValue), TagInfo(0x0305, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), olympusFiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x0308, "AFPoint", N_("AF Point"), N_("AF point"), olympusFiIfdId, makerTags, unsignedShort, -1, print0x0308), TagInfo(0x0308, "AFPoint", N_("AF Point"), N_("AF point"), olympusFiId, makerTags, unsignedShort, -1, print0x0308),
TagInfo(0x1201, "ExternalFlash", N_("External Flash"), N_("External flash"), olympusFiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x1201, "ExternalFlash", N_("External Flash"), N_("External flash"), olympusFiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1203, "ExternalFlashGuideNumber", N_("External Flash Guide Number"), N_("External flash guide number"), olympusFiIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x1203, "ExternalFlashGuideNumber", N_("External Flash Guide Number"), N_("External flash guide number"), olympusFiId, makerTags, signedRational, -1, printValue),
TagInfo(0x1204, "ExternalFlashBounce", N_("External Flash Bounce"), N_("External flash bounce"), olympusFiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFiExternalFlashBounce)), TagInfo(0x1204, "ExternalFlashBounce", N_("External Flash Bounce"), N_("External flash bounce"), olympusFiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusFiExternalFlashBounce)),
TagInfo(0x1205, "ExternalFlashZoom", N_("External Flash Zoom"), N_("External flash zoom"), olympusFiIfdId, makerTags, unsignedRational, -1, printValue), TagInfo(0x1205, "ExternalFlashZoom", N_("External Flash Zoom"), N_("External flash zoom"), olympusFiId, makerTags, unsignedRational, -1, printValue),
TagInfo(0x1208, "InternalFlash", N_("Internal Flash"), N_("Internal flash"), olympusFiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)), TagInfo(0x1208, "InternalFlash", N_("Internal Flash"), N_("Internal flash"), olympusFiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusOffOn)),
TagInfo(0x1209, "ManualFlash", N_("Manual Flash"), N_("Manual flash"), olympusFiIfdId, makerTags, unsignedShort, -1, print0x1209), TagInfo(0x1209, "ManualFlash", N_("Manual Flash"), N_("Manual flash"), olympusFiId, makerTags, unsignedShort, -1, print0x1209),
TagInfo(0x1500, "SensorTemperature", N_("Sensor Temperature"), N_("Sensor temperature"), olympusFiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1500, "SensorTemperature", N_("Sensor Temperature"), N_("Sensor temperature"), olympusFiId, makerTags, signedShort, -1, printValue),
TagInfo(0x1600, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusFiIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x1600, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), olympusFiId, makerTags, unsignedLong, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusFiTag)", "(UnknownOlympusFiTag)", N_("Unknown OlympusFi tag"), olympusFiIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusFiTag)", "(UnknownOlympusFiTag)", N_("Unknown OlympusFi tag"), olympusFiId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListFi() const TagInfo* OlympusMakerNote::tagListFi()
@ -1023,9 +1023,9 @@ namespace Exiv2 {
} }
const TagInfo OlympusMakerNote::tagInfoFe_[] = { const TagInfo OlympusMakerNote::tagInfoFe_[] = {
TagInfo(0x0100, "BodyFirmwareVersion", N_("Body Firmware Version"), N_("Body firmware version"), olympusFe1IfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0100, "BodyFirmwareVersion", N_("Body Firmware Version"), N_("Body firmware version"), olympusFe1Id, makerTags, asciiString, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusFeTag)", "(UnknownOlympusFeTag)", N_("Unknown OlympusFe tag"), olympusFe1IfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusFeTag)", "(UnknownOlympusFeTag)", N_("Unknown OlympusFe tag"), olympusFe1Id, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListFe() const TagInfo* OlympusMakerNote::tagListFe()
@ -1050,44 +1050,44 @@ namespace Exiv2 {
}; };
const TagInfo OlympusMakerNote::tagInfoRi_[] = { const TagInfo OlympusMakerNote::tagInfoRi_[] = {
TagInfo(0x0000, "RawInfoVersion", N_("Raw Info Version"), N_("Raw info version"), olympusRiIfdId, makerTags, undefined, -1, printValue), TagInfo(0x0000, "RawInfoVersion", N_("Raw Info Version"), N_("Raw info version"), olympusRiId, makerTags, undefined, -1, printValue),
TagInfo(0x0100, "WB_RBLevelsUsed", N_("WB_RB Levels Used"), N_("WB_RB levels used"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0100, "WB_RBLevelsUsed", N_("WB_RB Levels Used"), N_("WB_RB levels used"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0110, "WB_RBLevelsAuto", N_("WB_RB Levels Auto"), N_("WB_RB levels auto"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0110, "WB_RBLevelsAuto", N_("WB_RB Levels Auto"), N_("WB_RB levels auto"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0120, "WB_RBLevelsShade", N_("WB_RB Levels Shade"), N_("WB_RB levels shade"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0120, "WB_RBLevelsShade", N_("WB_RB Levels Shade"), N_("WB_RB levels shade"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0121, "WB_RBLevelsCloudy", N_("WB_RB Levels Cloudy"), N_("WB_RB levels cloudy"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0121, "WB_RBLevelsCloudy", N_("WB_RB Levels Cloudy"), N_("WB_RB levels cloudy"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0122, "WB_RBLevelsFineWeather", N_("WB_RB Levels Fine Weather"), N_("WB_RB levels fine weather"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0122, "WB_RBLevelsFineWeather", N_("WB_RB Levels Fine Weather"), N_("WB_RB levels fine weather"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0123, "WB_RBLevelsTungsten", N_("WB_RB Levels Tungsten"), N_("WB_RB levels tungsten"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0123, "WB_RBLevelsTungsten", N_("WB_RB Levels Tungsten"), N_("WB_RB levels tungsten"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0124, "WB_RBLevelsEveningSunlight", N_("WB_RB Levels Evening Sunlight"), N_("WB_RB levels evening sunlight"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0124, "WB_RBLevelsEveningSunlight", N_("WB_RB Levels Evening Sunlight"), N_("WB_RB levels evening sunlight"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0130, "WB_RBLevelsDaylightFluor", N_("WB_RB Levels Daylight Fluor"), N_("WB_RB levels daylight fluor"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0130, "WB_RBLevelsDaylightFluor", N_("WB_RB Levels Daylight Fluor"), N_("WB_RB levels daylight fluor"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0131, "WB_RBLevelsDayWhiteFluor", N_("WB_RB Levels Day White Fluor"), N_("WB_RB levels day white fluor"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0131, "WB_RBLevelsDayWhiteFluor", N_("WB_RB Levels Day White Fluor"), N_("WB_RB levels day white fluor"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0132, "WB_RBLevelsCoolWhiteFluor", N_("WB_RB Levels Cool White Fluor"), N_("WB_RB levels cool white fluor"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0132, "WB_RBLevelsCoolWhiteFluor", N_("WB_RB Levels Cool White Fluor"), N_("WB_RB levels cool white fluor"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0133, "WB_RBLevelsWhiteFluorescent", N_("WB_RB Levels White Fluorescent"), N_("WB_RB levels white fluorescent"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0133, "WB_RBLevelsWhiteFluorescent", N_("WB_RB Levels White Fluorescent"), N_("WB_RB levels white fluorescent"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0200, "ColorMatrix2", N_("Color Matrix2"), N_("Color matrix 2"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0200, "ColorMatrix2", N_("Color Matrix2"), N_("Color matrix 2"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0310, "CoringFilter", N_("Coring Filter"), N_("Coring filter"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0310, "CoringFilter", N_("Coring Filter"), N_("Coring filter"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0311, "CoringValues", N_("Coring Values"), N_("Coring values"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0311, "CoringValues", N_("Coring Values"), N_("Coring values"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0600, "BlackLevel2", N_("Black Level 2"), N_("Black level 2"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0600, "BlackLevel2", N_("Black Level 2"), N_("Black level 2"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0601, "YCbCrCoefficients", N_("YCbCr Coefficients"), N_("YCbCr coefficients"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0601, "YCbCrCoefficients", N_("YCbCr Coefficients"), N_("YCbCr coefficients"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0611, "ValidPixelDepth", N_("Valid Pixel Depth"), N_("Valid pixel depth"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0611, "ValidPixelDepth", N_("Valid Pixel Depth"), N_("Valid pixel depth"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0612, "CropLeft", N_("Crop Left"), N_("Crop left"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0612, "CropLeft", N_("Crop Left"), N_("Crop left"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0613, "CropTop", N_("Crop Top"), N_("Crop top"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0613, "CropTop", N_("Crop Top"), N_("Crop top"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0614, "CropWidth", N_("Crop Width"), N_("Crop width"), olympusRiIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0614, "CropWidth", N_("Crop Width"), N_("Crop width"), olympusRiId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0615, "CropHeight", N_("Crop Height"), N_("Crop height"), olympusRiIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0615, "CropHeight", N_("Crop Height"), N_("Crop height"), olympusRiId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x1000, "LightSource", N_("Light Source"), N_("Light source"), olympusRiIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRiLightSource)), TagInfo(0x1000, "LightSource", N_("Light Source"), N_("Light source"), olympusRiId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusRiLightSource)),
TagInfo(0x1001, "WhiteBalanceComp", N_("White Balance Comp"), N_("White balance comp"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1001, "WhiteBalanceComp", N_("White Balance Comp"), N_("White balance comp"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x1010, "SaturationSetting", N_("Saturation Setting"), N_("Saturation setting"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1010, "SaturationSetting", N_("Saturation Setting"), N_("Saturation setting"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x1011, "HueSetting", N_("Hue Setting"), N_("Hue setting"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1011, "HueSetting", N_("Hue Setting"), N_("Hue setting"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x1012, "ContrastSetting", N_("Contrast Setting"), N_("Contrast setting"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1012, "ContrastSetting", N_("Contrast Setting"), N_("Contrast setting"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x1013, "SharpnessSetting", N_("Sharpness Setting"), N_("Sharpness setting"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x1013, "SharpnessSetting", N_("Sharpness Setting"), N_("Sharpness setting"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x2000, "CMExposureCompensation", N_("CM Exposure Compensation"), N_("CM exposure compensation"), olympusRiIfdId, makerTags, signedRational, -1, printValue), TagInfo(0x2000, "CMExposureCompensation", N_("CM Exposure Compensation"), N_("CM exposure compensation"), olympusRiId, makerTags, signedRational, -1, printValue),
TagInfo(0x2001, "CMWhiteBalance", N_("CM White Balance"), N_("CM white balance"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x2001, "CMWhiteBalance", N_("CM White Balance"), N_("CM white balance"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x2002, "CMWhiteBalanceComp", N_("CM White Balance Comp"), N_("CM white balance comp"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x2002, "CMWhiteBalanceComp", N_("CM White Balance Comp"), N_("CM white balance comp"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x2010, "CMWhiteBalanceGrayPoint", N_("CM White Balance Gray Point"), N_("CM white balance gray point"), olympusRiIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x2010, "CMWhiteBalanceGrayPoint", N_("CM White Balance Gray Point"), N_("CM white balance gray point"), olympusRiId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x2020, "CMSaturation", N_("CM Saturation"), N_("CM saturation"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x2020, "CMSaturation", N_("CM Saturation"), N_("CM saturation"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x2021, "CMHue", N_("CM Hue"), N_("CM hue"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x2021, "CMHue", N_("CM Hue"), N_("CM hue"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x2022, "CMContrast", N_("CM Contrast"), N_("CM contrast"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x2022, "CMContrast", N_("CM Contrast"), N_("CM contrast"), olympusRiId, makerTags, signedShort, -1, printValue),
TagInfo(0x2023, "CMSharpness", N_("CM Sharpness"), N_("CM sharpness"), olympusRiIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x2023, "CMSharpness", N_("CM Sharpness"), N_("CM sharpness"), olympusRiId, makerTags, signedShort, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownOlympusRiTag)", "(UnknownOlympusRiTag)", N_("Unknown OlympusRi tag"), olympusRiIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownOlympusRiTag)", "(UnknownOlympusRiTag)", N_("Unknown OlympusRi tag"), olympusRiId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* OlympusMakerNote::tagListRi() const TagInfo* OlympusMakerNote::tagListRi()

@ -176,7 +176,7 @@ namespace Exiv2 {
// Delete IFDs which do not occur in TIFF images // Delete IFDs which do not occur in TIFF images
static const IfdId filteredIfds[] = { static const IfdId filteredIfds[] = {
panaRawIfdId panaRawId
}; };
for (unsigned int i = 0; i < EXV_COUNTOF(filteredIfds); ++i) { for (unsigned int i = 0; i < EXV_COUNTOF(filteredIfds); ++i) {
#ifdef DEBUG #ifdef DEBUG

@ -229,59 +229,59 @@ namespace Exiv2 {
// Panasonic MakerNote Tag Info // Panasonic MakerNote Tag Info
const TagInfo PanasonicMakerNote::tagInfo_[] = { const TagInfo PanasonicMakerNote::tagInfo_[] = {
TagInfo(0x0001, "Quality", N_("Quality"), N_("Image Quality"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicQuality)), TagInfo(0x0001, "Quality", N_("Quality"), N_("Image Quality"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicQuality)),
TagInfo(0x0002, "FirmwareVersion", N_("Firmware Version"), N_("Firmware version"), panasonicIfdId, makerTags, undefined, -1, printValue), TagInfo(0x0002, "FirmwareVersion", N_("Firmware Version"), N_("Firmware version"), panasonicId, makerTags, undefined, -1, printValue),
TagInfo(0x0003, "WhiteBalance", N_("White Balance"), N_("White balance setting"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicWhiteBalance)), TagInfo(0x0003, "WhiteBalance", N_("White Balance"), N_("White balance setting"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicWhiteBalance)),
TagInfo(0x0004, "0x0004", "0x0004", N_("Unknown"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0004, "0x0004", "0x0004", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0007, "FocusMode", N_("Focus Mode"), N_("Focus mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFocusMode)), TagInfo(0x0007, "FocusMode", N_("Focus Mode"), N_("Focus mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFocusMode)),
TagInfo(0x000f, "AFMode", N_("AF Mode"), N_("AF mode"), panasonicIfdId, makerTags, unsignedByte, -1, print0x000f), TagInfo(0x000f, "AFMode", N_("AF Mode"), N_("AF mode"), panasonicId, makerTags, unsignedByte, -1, print0x000f),
TagInfo(0x001a, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicImageStabilizer)), TagInfo(0x001a, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicImageStabilizer)),
TagInfo(0x001c, "Macro", N_("Macro"), N_("Macro mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicMacro)), TagInfo(0x001c, "Macro", N_("Macro"), N_("Macro mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicMacro)),
TagInfo(0x001f, "ShootingMode", N_("Shooting Mode"), N_("Shooting mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicShootingMode)), TagInfo(0x001f, "ShootingMode", N_("Shooting Mode"), N_("Shooting mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicShootingMode)),
TagInfo(0x0020, "Audio", N_("Audio"), N_("Audio"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicAudio)), TagInfo(0x0020, "Audio", N_("Audio"), N_("Audio"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicAudio)),
TagInfo(0x0021, "DataDump", N_("Data Dump"), N_("Data dump"), panasonicIfdId, makerTags, undefined, -1, printValue), TagInfo(0x0021, "DataDump", N_("Data Dump"), N_("Data dump"), panasonicId, makerTags, undefined, -1, printValue),
TagInfo(0x0022, "0x0022", "0x0022", N_("Unknown"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0022, "0x0022", "0x0022", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0023, "WhiteBalanceBias", N_("White Balance Bias"), N_("White balance adjustment"), panasonicIfdId, makerTags, signedShort, -1, print0x0023), TagInfo(0x0023, "WhiteBalanceBias", N_("White Balance Bias"), N_("White balance adjustment"), panasonicId, makerTags, signedShort, -1, print0x0023),
TagInfo(0x0024, "FlashBias", N_("FlashBias"), N_("Flash bias"), panasonicIfdId, makerTags, signedShort, -1, printValue), TagInfo(0x0024, "FlashBias", N_("FlashBias"), N_("Flash bias"), panasonicId, makerTags, signedShort, -1, printValue),
TagInfo(0x0025, "InternalSerialNumber", N_("Internal Serial Number"), N_("This number is unique, and contains the date of manufacture, but is not the same as the number printed on the camera body."), panasonicIfdId, makerTags, undefined, -1, printValue), TagInfo(0x0025, "InternalSerialNumber", N_("Internal Serial Number"), N_("This number is unique, and contains the date of manufacture, but is not the same as the number printed on the camera body."), panasonicId, makerTags, undefined, -1, printValue),
TagInfo(0x0026, "ExifVersion", "Exif Version", N_("Exif version"), panasonicIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x0026, "ExifVersion", "Exif Version", N_("Exif version"), panasonicId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0027, "0x0027", "0x0027", N_("Unknown"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0027, "0x0027", "0x0027", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0028, "ColorEffect", N_("Color Effect"), N_("Color effect"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicColorEffect)), TagInfo(0x0028, "ColorEffect", N_("Color Effect"), N_("Color effect"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicColorEffect)),
TagInfo(0x0029, "TimeSincePowerOn", "Time since Power On", N_("Time in 1/100 s from when the camera was powered on to when the image is written to memory card"), panasonicIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x0029, "TimeSincePowerOn", "Time since Power On", N_("Time in 1/100 s from when the camera was powered on to when the image is written to memory card"), panasonicId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x002a, "BurstMode", N_("Burst Mode"), N_("Burst mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicBurstMode)), TagInfo(0x002a, "BurstMode", N_("Burst Mode"), N_("Burst mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicBurstMode)),
TagInfo(0x002b, "SequenceNumber", N_("Sequence Number"), N_("Sequence number"), panasonicIfdId, makerTags, unsignedLong, -1, printValue), TagInfo(0x002b, "SequenceNumber", N_("Sequence Number"), N_("Sequence number"), panasonicId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x002c, "Contrast", N_("Contrast"), N_("Contrast setting"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicContrast)), TagInfo(0x002c, "Contrast", N_("Contrast"), N_("Contrast setting"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicContrast)),
TagInfo(0x002d, "NoiseReduction", N_("NoiseReduction"), N_("Noise reduction"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicNoiseReduction)), TagInfo(0x002d, "NoiseReduction", N_("NoiseReduction"), N_("Noise reduction"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicNoiseReduction)),
TagInfo(0x002e, "SelfTimer", N_("Self Timer"), N_("Self timer"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicSelfTimer)), TagInfo(0x002e, "SelfTimer", N_("Self Timer"), N_("Self timer"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicSelfTimer)),
TagInfo(0x002f, "0x002f", "0x002f", N_("Unknown"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x002f, "0x002f", "0x002f", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0030, "Rotation", N_("Rotation"), N_("Rotation"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicRotation)), TagInfo(0x0030, "Rotation", N_("Rotation"), N_("Rotation"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicRotation)),
TagInfo(0x0031, "0x0031", "0x0031", N_("Unknown"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0031, "0x0031", "0x0031", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0032, "ColorMode", N_("Color Mode"), N_("Color mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicColorMode)), TagInfo(0x0032, "ColorMode", N_("Color Mode"), N_("Color mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicColorMode)),
TagInfo(0x0033, "BabyAge", N_("Baby Age"), N_("Baby (or pet) age"), panasonicIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0033, "BabyAge", N_("Baby Age"), N_("Baby (or pet) age"), panasonicId, makerTags, asciiString, -1, printValue),
TagInfo(0x0034, "OpticalZoomMode", N_("Optical Zoom Mode"), N_("Optical zoom mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicOpticalZoomMode)), TagInfo(0x0034, "OpticalZoomMode", N_("Optical Zoom Mode"), N_("Optical zoom mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicOpticalZoomMode)),
TagInfo(0x0035, "ConversionLens", N_("Conversion Lens"), N_("Conversion lens"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicConversionLens)), TagInfo(0x0035, "ConversionLens", N_("Conversion Lens"), N_("Conversion lens"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicConversionLens)),
TagInfo(0x0036, "TravelDay", N_("Travel Day"), N_("Travel day"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0036, "TravelDay", N_("Travel Day"), N_("Travel day"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0039, "Contrast", N_("Contrast"), N_("Contrast"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0039, "Contrast", N_("Contrast"), N_("Contrast"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x003a, "WorldTimeLocation", N_("World Time Location"), N_("World time location"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicWorldTimeLocation)), TagInfo(0x003a, "WorldTimeLocation", N_("World Time Location"), N_("World time location"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicWorldTimeLocation)),
TagInfo(0x003c, "ProgramISO", N_("Program ISO"), N_("Program ISO"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x003c, "ProgramISO", N_("Program ISO"), N_("Program ISO"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0040, "Saturation", N_("Saturation"), N_("Saturation"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0040, "Saturation", N_("Saturation"), N_("Saturation"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0041, "Sharpness", N_("Sharpness"), N_("Sharpness"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0041, "Sharpness", N_("Sharpness"), N_("Sharpness"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0042, "FilmMode", N_("Film Mode"), N_("Film mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFilmMode)), TagInfo(0x0042, "FilmMode", N_("Film Mode"), N_("Film mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFilmMode)),
TagInfo(0x0046, "WBAdjustAB", N_("WB Adjust AB"), N_("WB adjust AB. Positive is a shift toward blue."), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0046, "WBAdjustAB", N_("WB Adjust AB"), N_("WB adjust AB. Positive is a shift toward blue."), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0047, "WBAdjustGM", N_("WB Adjust GM"), N_("WBAdjustGM. Positive is a shift toward green."), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x0047, "WBAdjustGM", N_("WB Adjust GM"), N_("WBAdjustGM. Positive is a shift toward green."), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0051, "LensType", N_("Lens Type"), N_("Lens type"), panasonicIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0051, "LensType", N_("Lens Type"), N_("Lens type"), panasonicId, makerTags, asciiString, -1, printValue),
TagInfo(0x0052, "LensSerialNumber", N_("Lens Serial Number"), N_("Lens serial number"), panasonicIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0052, "LensSerialNumber", N_("Lens Serial Number"), N_("Lens serial number"), panasonicId, makerTags, asciiString, -1, printValue),
TagInfo(0x0053, "AccessoryType", N_("Accessory Type"), N_("Accessory type"), panasonicIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x0053, "AccessoryType", N_("Accessory Type"), N_("Accessory type"), panasonicId, makerTags, asciiString, -1, printValue),
TagInfo(0x0e00, "PrintIM", N_("Print IM"), N_("PrintIM information"), panasonicIfdId, makerTags, undefined, -1, printValue), TagInfo(0x0e00, "PrintIM", N_("Print IM"), N_("PrintIM information"), panasonicId, makerTags, undefined, -1, printValue),
TagInfo(0x4449, "0x4449", "0x4449", N_("Unknown"), panasonicIfdId, makerTags, undefined, -1, printValue), TagInfo(0x4449, "0x4449", "0x4449", N_("Unknown"), panasonicId, makerTags, undefined, -1, printValue),
TagInfo(0x8000, "MakerNoteVersion", N_("MakerNote Version"), N_("MakerNote version"), panasonicIfdId, makerTags, undefined, -1, printExifVersion), TagInfo(0x8000, "MakerNoteVersion", N_("MakerNote Version"), N_("MakerNote version"), panasonicId, makerTags, undefined, -1, printExifVersion),
TagInfo(0x8001, "SceneMode", N_("Scene Mode"), N_("Scene mode"), panasonicIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicShootingMode)), TagInfo(0x8001, "SceneMode", N_("Scene Mode"), N_("Scene mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicShootingMode)),
TagInfo(0x8004, "WBRedLevel", N_("WB Red Level"), N_("WB red level"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x8004, "WBRedLevel", N_("WB Red Level"), N_("WB red level"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x8005, "WBGreenLevel", N_("WB Green Level"), N_("WB green level"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x8005, "WBGreenLevel", N_("WB Green Level"), N_("WB green level"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x8006, "WBBlueLevel", N_("WB Blue Level"), N_("WB blue level"), panasonicIfdId, makerTags, unsignedShort, -1, printValue), TagInfo(0x8006, "WBBlueLevel", N_("WB Blue Level"), N_("WB blue level"), panasonicId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x8010, "BabyAge", N_("Baby Age"), N_("Baby (or pet) age"), panasonicIfdId, makerTags, asciiString, -1, printValue), TagInfo(0x8010, "BabyAge", N_("Baby Age"), N_("Baby (or pet) age"), panasonicId, makerTags, asciiString, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownPanasonicMakerNoteTag)", "(UnknownPanasonicMakerNoteTag)", N_("Unknown PanasonicMakerNote tag"), panasonicIfdId, makerTags, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownPanasonicMakerNoteTag)", "(UnknownPanasonicMakerNoteTag)", N_("Unknown PanasonicMakerNote tag"), panasonicId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* PanasonicMakerNote::tagList() const TagInfo* PanasonicMakerNote::tagList()
@ -328,31 +328,31 @@ namespace Exiv2 {
// Panasonic MakerNote Tag Info // Panasonic MakerNote Tag Info
const TagInfo PanasonicMakerNote::tagInfoRaw_[] = { const TagInfo PanasonicMakerNote::tagInfoRaw_[] = {
TagInfo(0x0001, "Version", N_("Version"), N_("Panasonic raw version"), panaRawIfdId, panaRaw, undefined, -1, printExifVersion), TagInfo(0x0001, "Version", N_("Version"), N_("Panasonic raw version"), panaRawId, panaRaw, undefined, -1, printExifVersion),
TagInfo(0x0002, "SensorWidth", N_("Sensor Width"), N_("Sensor width"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0002, "SensorWidth", N_("Sensor Width"), N_("Sensor width"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0003, "SensorHeight", N_("Sensor Height"), N_("Sensor height"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0003, "SensorHeight", N_("Sensor Height"), N_("Sensor height"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0004, "SensorTopBorder", N_("Sensor Top Border"), N_("Sensor top border"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0004, "SensorTopBorder", N_("Sensor Top Border"), N_("Sensor top border"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0005, "SensorLeftBorder", N_("Sensor Left Border"), N_("Sensor left border"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0005, "SensorLeftBorder", N_("Sensor Left Border"), N_("Sensor left border"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0006, "ImageHeight", N_("Image Height"), N_("Image height"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0006, "ImageHeight", N_("Image Height"), N_("Image height"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0007, "ImageWidth", N_("Image Width"), N_("Image width"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0007, "ImageWidth", N_("Image Width"), N_("Image width"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0011, "RedBalance", N_("Red Balance"), N_("Red balance (found in Digilux 2 RAW images)"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0011, "RedBalance", N_("Red Balance"), N_("Red balance (found in Digilux 2 RAW images)"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0012, "BlueBalance", N_("Blue Balance"), N_("Blue balance"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0012, "BlueBalance", N_("Blue Balance"), N_("Blue balance"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0017, "ISOSpeed", N_("ISO Speed"), N_("ISO speed setting"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0017, "ISOSpeed", N_("ISO Speed"), N_("ISO speed setting"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0024, "WBRedLevel", N_("WB Red Level"), N_("WB red level"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0024, "WBRedLevel", N_("WB Red Level"), N_("WB red level"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0025, "WBGreenLevel", N_("WB Green Level"), N_("WB green level"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0025, "WBGreenLevel", N_("WB Green Level"), N_("WB green level"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0026, "WBBlueLevel", N_("WB Blue Level"), N_("WB blue level"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0026, "WBBlueLevel", N_("WB Blue Level"), N_("WB blue level"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x002e, "PreviewImage", N_("Preview Image"), N_("Preview image"), panaRawIfdId, panaRaw, undefined, -1, printValue), TagInfo(0x002e, "PreviewImage", N_("Preview Image"), N_("Preview image"), panaRawId, panaRaw, undefined, -1, printValue),
TagInfo(0x010f, "Make", N_("Manufacturer"), N_("The manufacturer of the recording equipment"), panaRawIfdId, panaRaw, asciiString, -1, printValue), TagInfo(0x010f, "Make", N_("Manufacturer"), N_("The manufacturer of the recording equipment"), panaRawId, panaRaw, asciiString, -1, printValue),
TagInfo(0x0110, "Model", N_("Model"), N_("The model name or model number of the equipment"), panaRawIfdId, panaRaw, asciiString, -1, printValue), TagInfo(0x0110, "Model", N_("Model"), N_("The model name or model number of the equipment"), panaRawId, panaRaw, asciiString, -1, printValue),
TagInfo(0x0111, "StripOffsets", N_("Strip Offsets"), N_("Strip offsets"), panaRawIfdId, panaRaw, unsignedLong, -1, printValue), TagInfo(0x0111, "StripOffsets", N_("Strip Offsets"), N_("Strip offsets"), panaRawId, panaRaw, unsignedLong, -1, printValue),
TagInfo(0x0112, "Orientation", N_("Orientation"), N_("Orientation"), panaRawIfdId, panaRaw, unsignedShort, -1, print0x0112), TagInfo(0x0112, "Orientation", N_("Orientation"), N_("Orientation"), panaRawId, panaRaw, unsignedShort, -1, print0x0112),
TagInfo(0x0116, "RowsPerStrip", N_("Rows Per Strip"), N_("The number of rows per strip"), panaRawIfdId, panaRaw, unsignedShort, -1, printValue), TagInfo(0x0116, "RowsPerStrip", N_("Rows Per Strip"), N_("The number of rows per strip"), panaRawId, panaRaw, unsignedShort, -1, printValue),
TagInfo(0x0117, "StripByteCounts", N_("Strip Byte Counts"), N_("Strip byte counts"), panaRawIfdId, panaRaw, unsignedLong, -1, printValue), TagInfo(0x0117, "StripByteCounts", N_("Strip Byte Counts"), N_("Strip byte counts"), panaRawId, panaRaw, unsignedLong, -1, printValue),
TagInfo(0x0118, "RawDataOffset", N_("Raw Data Offset"), N_("Raw data offset"), panaRawIfdId, panaRaw, unsignedLong, -1, printValue), TagInfo(0x0118, "RawDataOffset", N_("Raw Data Offset"), N_("Raw data offset"), panaRawId, panaRaw, unsignedLong, -1, printValue),
TagInfo(0x8769, "ExifTag", N_("Exif IFD Pointer"), N_("A pointer to the Exif IFD"), panaRawIfdId, panaRaw, unsignedLong, -1, printValue), TagInfo(0x8769, "ExifTag", N_("Exif IFD Pointer"), N_("A pointer to the Exif IFD"), panaRawId, panaRaw, unsignedLong, -1, printValue),
TagInfo(0x8825, "GPSTag", N_("GPS Info IFD Pointer"), N_("A pointer to the GPS Info IFD"), panaRawIfdId, panaRaw, unsignedLong, -1, printValue), TagInfo(0x8825, "GPSTag", N_("GPS Info IFD Pointer"), N_("A pointer to the GPS Info IFD"), panaRawId, panaRaw, unsignedLong, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownPanasonicRawTag)", "(UnknownPanasonicRawTag)", N_("Unknown PanasonicRaw tag"), panaRawIfdId, panaRaw, asciiString, -1, printValue) TagInfo(0xffff, "(UnknownPanasonicRawTag)", "(UnknownPanasonicRawTag)", N_("Unknown PanasonicRaw tag"), panaRawId, panaRaw, asciiString, -1, printValue)
}; };
const TagInfo* PanasonicMakerNote::tagListRaw() const TagInfo* PanasonicMakerNote::tagListRaw()

@ -863,266 +863,266 @@ namespace Exiv2 {
const TagInfo PentaxMakerNote::tagInfo_[] = { const TagInfo PentaxMakerNote::tagInfo_[] = {
TagInfo(0x0000, "Version", N_("Version"), TagInfo(0x0000, "Version", N_("Version"),
N_("Pentax Makernote version"), N_("Pentax Makernote version"),
pentaxIfdId, makerTags, undefined, -1, printPentaxVersion), pentaxId, makerTags, undefined, -1, printPentaxVersion),
TagInfo(0x0001, "Mode", N_("Shooting mode"), TagInfo(0x0001, "Mode", N_("Shooting mode"),
N_("Camera shooting mode"), N_("Camera shooting mode"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxShootingMode)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxShootingMode)),
TagInfo(0x0002, "PreviewResolution", N_("Resolution of a preview image"), TagInfo(0x0002, "PreviewResolution", N_("Resolution of a preview image"),
N_("Resolution of a preview image"), N_("Resolution of a preview image"),
pentaxIfdId, makerTags, undefined, -1, printPentaxResolution), pentaxId, makerTags, undefined, -1, printPentaxResolution),
TagInfo(0x0003, "PreviewLength", N_("Length of a preview image"), TagInfo(0x0003, "PreviewLength", N_("Length of a preview image"),
N_("Size of an IFD containing a preview image"), N_("Size of an IFD containing a preview image"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
TagInfo(0x0004, "PreviewOffset", N_("Pointer to a preview image"), TagInfo(0x0004, "PreviewOffset", N_("Pointer to a preview image"),
N_("Offset to an IFD containing a preview image"), N_("Offset to an IFD containing a preview image"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
TagInfo(0x0005, "ModelID", N_("Model identification"), TagInfo(0x0005, "ModelID", N_("Model identification"),
N_("Pentax model idenfication"), N_("Pentax model idenfication"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxModel)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxModel)),
TagInfo(0x0006, "Date", N_("Date"), TagInfo(0x0006, "Date", N_("Date"),
N_("Date"), N_("Date"),
pentaxIfdId, makerTags, undefined, -1, printPentaxDate), pentaxId, makerTags, undefined, -1, printPentaxDate),
TagInfo(0x0007, "Time", N_("Time"), TagInfo(0x0007, "Time", N_("Time"),
N_("Time"), N_("Time"),
pentaxIfdId, makerTags, undefined, -1, printPentaxTime), pentaxId, makerTags, undefined, -1, printPentaxTime),
TagInfo(0x0008, "Quality", N_("Image quality"), TagInfo(0x0008, "Quality", N_("Image quality"),
N_("Image quality settings"), N_("Image quality settings"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxQuality)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxQuality)),
TagInfo(0x0009, "Size", N_("Image size"), TagInfo(0x0009, "Size", N_("Image size"),
N_("Image size settings"), N_("Image size settings"),
pentaxIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxSize)), pentaxId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxSize)),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x000c, "Flash", N_("Flash mode"), TagInfo(0x000c, "Flash", N_("Flash mode"),
N_("Flash mode settings"), N_("Flash mode settings"),
pentaxIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxFlash)), pentaxId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxFlash)),
TagInfo(0x000d, "Focus", N_("Focus mode"), TagInfo(0x000d, "Focus", N_("Focus mode"),
N_("Focus mode settings"), N_("Focus mode settings"),
pentaxIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxFocus)), pentaxId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxFocus)),
TagInfo(0x000e, "AFPoint", N_("AF point"), TagInfo(0x000e, "AFPoint", N_("AF point"),
N_("Selected AF point"), N_("Selected AF point"),
pentaxIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxAFPoint)), pentaxId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxAFPoint)),
TagInfo(0x000F, "AFPointInFocus", N_("AF point in focus"), TagInfo(0x000F, "AFPointInFocus", N_("AF point in focus"),
N_("AF point in focus"), N_("AF point in focus"),
pentaxIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxAFPointFocus)), pentaxId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxAFPointFocus)),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0012, "ExposureTime", N_("Exposure time"), TagInfo(0x0012, "ExposureTime", N_("Exposure time"),
N_("Exposure time"), N_("Exposure time"),
pentaxIfdId, makerTags, unsignedLong, -1, printPentaxExposure), pentaxId, makerTags, unsignedLong, -1, printPentaxExposure),
TagInfo(0x0013, "FNumber", N_("F-Number"), TagInfo(0x0013, "FNumber", N_("F-Number"),
N_("F-Number"), N_("F-Number"),
pentaxIfdId, makerTags, unsignedLong, -1, printPentaxFValue), pentaxId, makerTags, unsignedLong, -1, printPentaxFValue),
TagInfo(0x0014, "ISO", N_("ISO sensitivity"), TagInfo(0x0014, "ISO", N_("ISO sensitivity"),
N_("ISO sensitivity settings"), N_("ISO sensitivity settings"),
pentaxIfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxISO)), pentaxId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(pentaxISO)),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0016, "ExposureCompensation", N_("Exposure compensation"), TagInfo(0x0016, "ExposureCompensation", N_("Exposure compensation"),
N_("Exposure compensation"), N_("Exposure compensation"),
pentaxIfdId, makerTags, unsignedLong, -1, printPentaxCompensation), pentaxId, makerTags, unsignedLong, -1, printPentaxCompensation),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0017, "MeteringMode", N_("MeteringMode"), TagInfo(0x0017, "MeteringMode", N_("MeteringMode"),
N_("MeteringMode"), N_("MeteringMode"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxMeteringMode)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxMeteringMode)),
TagInfo(0x0018, "AutoBracketing", N_("AutoBracketing"), TagInfo(0x0018, "AutoBracketing", N_("AutoBracketing"),
N_("AutoBracketing"), N_("AutoBracketing"),
pentaxIfdId, makerTags, undefined, -1, printPentaxBracketing), pentaxId, makerTags, undefined, -1, printPentaxBracketing),
TagInfo(0x0019, "WhiteBallance", N_("White ballance"), TagInfo(0x0019, "WhiteBallance", N_("White ballance"),
N_("White ballance"), N_("White ballance"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxWhiteBallance)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxWhiteBallance)),
TagInfo(0x001a, "WhiteBallanceMode", N_("White ballance mode"), TagInfo(0x001a, "WhiteBallanceMode", N_("White ballance mode"),
N_("White ballance mode"), N_("White ballance mode"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxWhiteBallanceMode)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxWhiteBallanceMode)),
TagInfo(0x001b, "BlueBalance", N_("Blue balance"), TagInfo(0x001b, "BlueBalance", N_("Blue balance"),
N_("Blue color balance"), N_("Blue color balance"),
pentaxIfdId, makerTags, unsignedLong, -1, printValue), pentaxId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x001c, "RedBalance", N_("Red balance"), TagInfo(0x001c, "RedBalance", N_("Red balance"),
N_("Red color balance"), N_("Red color balance"),
pentaxIfdId, makerTags, unsignedLong, -1, printValue), pentaxId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x001d, "FocalLength", N_("FocalLength"), TagInfo(0x001d, "FocalLength", N_("FocalLength"),
N_("FocalLength"), N_("FocalLength"),
pentaxIfdId, makerTags, undefined, -1, printPentaxFocalLength), pentaxId, makerTags, undefined, -1, printPentaxFocalLength),
TagInfo(0x001e, "DigitalZoom", N_("Digital zoom"), TagInfo(0x001e, "DigitalZoom", N_("Digital zoom"),
N_("Digital zoom"), N_("Digital zoom"),
pentaxIfdId, makerTags, unsignedLong, -1, printValue), pentaxId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x001f, "Saturation", N_("Saturation"), TagInfo(0x001f, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxSaturation)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxSaturation)),
TagInfo(0x0020, "Contrast", N_("Contrast"), TagInfo(0x0020, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxContrast)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxContrast)),
TagInfo(0x0021, "Sharpness", N_("Sharpness"), TagInfo(0x0021, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxSharpness)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxSharpness)),
TagInfo(0x0022, "Location", N_("Location"), TagInfo(0x0022, "Location", N_("Location"),
N_("Location"), N_("Location"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxLocation)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxLocation)),
TagInfo(0x0023, "Hometown", N_("Hometown"), TagInfo(0x0023, "Hometown", N_("Hometown"),
N_("Home town"), N_("Home town"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxCities)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxCities)),
TagInfo(0x0024, "Destination", N_("Destination"), TagInfo(0x0024, "Destination", N_("Destination"),
N_("Destination"), N_("Destination"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxCities)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxCities)),
TagInfo(0x0025, "HometownDST", N_("Hometown DST"), TagInfo(0x0025, "HometownDST", N_("Hometown DST"),
N_("Whether day saving time is active in home town"), N_("Whether day saving time is active in home town"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxYesNo)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxYesNo)),
TagInfo(0x0026, "DestinationDST", N_("Destination DST"), TagInfo(0x0026, "DestinationDST", N_("Destination DST"),
N_("Whether day saving time is active in destination"), N_("Whether day saving time is active in destination"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxYesNo)), pentaxId, makerTags, undefined, -1, EXV_PRINT_TAG(pentaxYesNo)),
TagInfo(0x0027, "DSPFirmwareVersion", N_("DSPFirmwareVersion"), TagInfo(0x0027, "DSPFirmwareVersion", N_("DSPFirmwareVersion"),
N_("DSPFirmwareVersion"), N_("DSPFirmwareVersion"),
pentaxIfdId, makerTags, unsignedByte, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, unsignedByte, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0028, "CPUFirmwareVersion", N_("CPUFirmwareVersion"), TagInfo(0x0028, "CPUFirmwareVersion", N_("CPUFirmwareVersion"),
N_("CPUFirmwareVersion"), N_("CPUFirmwareVersion"),
pentaxIfdId, makerTags, unsignedByte, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, unsignedByte, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0029, "FrameNumber", N_("Frame number"), TagInfo(0x0029, "FrameNumber", N_("Frame number"),
N_("Frame number"), N_("Frame number"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x002d, "EffectiveLV", N_("Light value"), TagInfo(0x002d, "EffectiveLV", N_("Light value"),
N_("Camera calculated light value, includes exposure compensation"), N_("Camera calculated light value, includes exposure compensation"),
pentaxIfdId, makerTags, unsignedShort, -1, printValue), pentaxId, makerTags, unsignedShort, -1, printValue),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0032, "ImageProcessing", N_("Image processing"), TagInfo(0x0032, "ImageProcessing", N_("Image processing"),
N_("Image processing"), N_("Image processing"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxImageProcessing, 4, 0)), pentaxId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxImageProcessing, 4, 0)),
TagInfo(0x0033, "PictureMode", N_("Picture mode"), TagInfo(0x0033, "PictureMode", N_("Picture mode"),
N_("Picture mode"), N_("Picture mode"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxPictureMode, 3, 0)), pentaxId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxPictureMode, 3, 0)),
TagInfo(0x0034, "DriveMode", N_("Drive mode"), TagInfo(0x0034, "DriveMode", N_("Drive mode"),
N_("Drive mode"), N_("Drive mode"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxDriveMode, 4, 0)), pentaxId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxDriveMode, 4, 0)),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0037, "ColorSpace", N_("Color space"), TagInfo(0x0037, "ColorSpace", N_("Color space"),
N_("Color space"), N_("Color space"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxColorSpace)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxColorSpace)),
TagInfo(0x0038, "ImageAreaOffset", N_("Image area offset"), TagInfo(0x0038, "ImageAreaOffset", N_("Image area offset"),
N_("Image area offset"), N_("Image area offset"),
pentaxIfdId, makerTags, unsignedLong, -1, printValue), pentaxId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0039, "RawImageSize", N_("Raw image size"), TagInfo(0x0039, "RawImageSize", N_("Raw image size"),
N_("Raw image size"), N_("Raw image size"),
pentaxIfdId, makerTags, unsignedLong, -1, printValue), pentaxId, makerTags, unsignedLong, -1, printValue),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x003e, "PreviewImageBorders", N_("Preview image borders"), TagInfo(0x003e, "PreviewImageBorders", N_("Preview image borders"),
N_("Preview image borders"), N_("Preview image borders"),
pentaxIfdId, makerTags, unsignedByte, -1, printValue), pentaxId, makerTags, unsignedByte, -1, printValue),
TagInfo(0x003f, "LensType", N_("Lens type"), TagInfo(0x003f, "LensType", N_("Lens type"),
N_("Lens type"), N_("Lens type"),
pentaxIfdId, makerTags, unsignedByte, -1, EXV_PRINT_COMBITAG_MULTI(pentaxLensType, 2, 1, 2)), pentaxId, makerTags, unsignedByte, -1, EXV_PRINT_COMBITAG_MULTI(pentaxLensType, 2, 1, 2)),
TagInfo(0x0040, "SensitivityAdjust", N_("Sensitivity adjust"), TagInfo(0x0040, "SensitivityAdjust", N_("Sensitivity adjust"),
N_("Sensitivity adjust"), N_("Sensitivity adjust"),
pentaxIfdId, makerTags, unsignedLong, -1, printValue), pentaxId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0041, "DigitalFilter", N_("Digital filter"), TagInfo(0x0041, "DigitalFilter", N_("Digital filter"),
N_("Digital filter"), N_("Digital filter"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxOffOn)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxOffOn)),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0047, "Temperature", N_("Temperature"), TagInfo(0x0047, "Temperature", N_("Temperature"),
N_("Camera temperature"), N_("Camera temperature"),
pentaxIfdId, makerTags, signedByte, -1, printPentaxTemperature), pentaxId, makerTags, signedByte, -1, printPentaxTemperature),
TagInfo(0x0048, "AELock", N_("AE lock"), TagInfo(0x0048, "AELock", N_("AE lock"),
N_("AE lock"), N_("AE lock"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxOffOn)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxOffOn)),
TagInfo(0x0049, "NoiseReduction", N_("Noise reduction"), TagInfo(0x0049, "NoiseReduction", N_("Noise reduction"),
N_("Noise reduction"), N_("Noise reduction"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxOffOn)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxOffOn)),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x004d, "FlashExposureCompensation", N_("Flash exposure compensation"), TagInfo(0x004d, "FlashExposureCompensation", N_("Flash exposure compensation"),
N_("Flash exposure compensation"), N_("Flash exposure compensation"),
pentaxIfdId, makerTags, signedLong, -1, printPentaxFlashCompensation), pentaxId, makerTags, signedLong, -1, printPentaxFlashCompensation),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x004f, "ImageTone", N_("Image tone"), TagInfo(0x004f, "ImageTone", N_("Image tone"),
N_("Image tone"), N_("Image tone"),
pentaxIfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxImageTone)), pentaxId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(pentaxImageTone)),
TagInfo(0x0050, "ColorTemperature", N_("Colort temperature"), TagInfo(0x0050, "ColorTemperature", N_("Colort temperature"),
N_("Colort temperature"), N_("Colort temperature"),
pentaxIfdId, makerTags, unsignedShort, -1, printValue), pentaxId, makerTags, unsignedShort, -1, printValue),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x005c, "ShakeReduction", N_("Shake reduction"), TagInfo(0x005c, "ShakeReduction", N_("Shake reduction"),
N_("Shake reduction information"), N_("Shake reduction information"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
TagInfo(0x005d, "ShutterCount", N_("Shutter count"), TagInfo(0x005d, "ShutterCount", N_("Shutter count"),
N_("Shutter count"), N_("Shutter count"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: This has some encryption by date (see exiftool) */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: This has some encryption by date (see exiftool) */
TagInfo(0x0069, "DynamicRangeExpansion", N_("Dynamic range expansion"), TagInfo(0x0069, "DynamicRangeExpansion", N_("Dynamic range expansion"),
N_("Dynamic range expansion"), N_("Dynamic range expansion"),
pentaxIfdId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxDynamicRangeExpansion, 4, 0)), pentaxId, makerTags, undefined, -1, EXV_PRINT_COMBITAG(pentaxDynamicRangeExpansion, 4, 0)),
TagInfo(0x0071, "HighISONoiseReduction", N_("High ISO noise reduction"), TagInfo(0x0071, "HighISONoiseReduction", N_("High ISO noise reduction"),
N_("High ISO noise reduction"), N_("High ISO noise reduction"),
pentaxIfdId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(pentaxHighISONoiseReduction)), pentaxId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(pentaxHighISONoiseReduction)),
TagInfo(0x0072, "AFAdjustment", N_("AF Adjustment"), TagInfo(0x0072, "AFAdjustment", N_("AF Adjustment"),
N_("AF Adjustment"), N_("AF Adjustment"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
/* Many missing ! */ /* Many missing ! */
TagInfo(0x0200, "BlackPoint", N_("Black point"), TagInfo(0x0200, "BlackPoint", N_("Black point"),
N_("Black point"), N_("Black point"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
TagInfo(0x0201, "WhitePoint", N_("White point"), TagInfo(0x0201, "WhitePoint", N_("White point"),
N_("White point"), N_("White point"),
pentaxIfdId, makerTags, undefined, -1, printValue), pentaxId, makerTags, undefined, -1, printValue),
/* Some missing ! */ /* Some missing ! */
TagInfo(0x0205, "ShotInfo", N_("ShotInfo"), TagInfo(0x0205, "ShotInfo", N_("ShotInfo"),
N_("ShotInfo"), N_("ShotInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0206, "AEInfo", N_("AEInfo"), TagInfo(0x0206, "AEInfo", N_("AEInfo"),
N_("AEInfo"), N_("AEInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0207, "LensInfo", N_("LensInfo"), TagInfo(0x0207, "LensInfo", N_("LensInfo"),
N_("LensInfo"), N_("LensInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0208, "FlashInfo", N_("FlashInfo"), TagInfo(0x0208, "FlashInfo", N_("FlashInfo"),
N_("FlashInfo"), N_("FlashInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0209, "AEMeteringSegments", N_("AEMeteringSegments"), TagInfo(0x0209, "AEMeteringSegments", N_("AEMeteringSegments"),
N_("AEMeteringSegments"), N_("AEMeteringSegments"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x020a, "FlashADump", N_("FlashADump"), TagInfo(0x020a, "FlashADump", N_("FlashADump"),
N_("FlashADump"), N_("FlashADump"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x020b, "FlashBDump", N_("FlashBDump"), TagInfo(0x020b, "FlashBDump", N_("FlashBDump"),
N_("FlashBDump"), N_("FlashBDump"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
/* Some missing ! */ /* Some missing ! */
TagInfo(0x020d, "WB_RGGBLevelsDaylight", N_("WB_RGGBLevelsDaylight"), TagInfo(0x020d, "WB_RGGBLevelsDaylight", N_("WB_RGGBLevelsDaylight"),
N_("WB_RGGBLevelsDaylight"), N_("WB_RGGBLevelsDaylight"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x020e, "WB_RGGBLevelsShade", N_("WB_RGGBLevelsShade"), TagInfo(0x020e, "WB_RGGBLevelsShade", N_("WB_RGGBLevelsShade"),
N_("WB_RGGBLevelsShade"), N_("WB_RGGBLevelsShade"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x020f, "WB_RGGBLevelsCloudy", N_("WB_RGGBLevelsCloudy"), TagInfo(0x020f, "WB_RGGBLevelsCloudy", N_("WB_RGGBLevelsCloudy"),
N_("WB_RGGBLevelsCloudy"), N_("WB_RGGBLevelsCloudy"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0210, "WB_RGGBLevelsTungsten", N_("WB_RGGBLevelsTungsten"), TagInfo(0x0210, "WB_RGGBLevelsTungsten", N_("WB_RGGBLevelsTungsten"),
N_("WB_RGGBLevelsTungsten"), N_("WB_RGGBLevelsTungsten"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0211, "WB_RGGBLevelsFluorescentD", N_("WB_RGGBLevelsFluorescentD"), TagInfo(0x0211, "WB_RGGBLevelsFluorescentD", N_("WB_RGGBLevelsFluorescentD"),
N_("WB_RGGBLevelsFluorescentD"), N_("WB_RGGBLevelsFluorescentD"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0212, "WB_RGGBLevelsFluorescentN", N_("WB_RGGBLevelsFluorescentN"), TagInfo(0x0212, "WB_RGGBLevelsFluorescentN", N_("WB_RGGBLevelsFluorescentN"),
N_("WB_RGGBLevelsFluorescentN"), N_("WB_RGGBLevelsFluorescentN"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0213, "WB_RGGBLevelsFluorescentW", N_("WB_RGGBLevelsFluorescentW"), TagInfo(0x0213, "WB_RGGBLevelsFluorescentW", N_("WB_RGGBLevelsFluorescentW"),
N_("WB_RGGBLevelsFluorescentW"), N_("WB_RGGBLevelsFluorescentW"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0214, "WB_RGGBLevelsFlash", N_("WB_RGGBLevelsFlash"), TagInfo(0x0214, "WB_RGGBLevelsFlash", N_("WB_RGGBLevelsFlash"),
N_("WB_RGGBLevelsFlash"), N_("WB_RGGBLevelsFlash"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0215, "CameraInfo", N_("CameraInfo"), TagInfo(0x0215, "CameraInfo", N_("CameraInfo"),
N_("CameraInfo"), N_("CameraInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0216, "BatteryInfo", N_("BatteryInfo"), TagInfo(0x0216, "BatteryInfo", N_("BatteryInfo"),
N_("BatteryInfo"), N_("BatteryInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x021f, "AFInfo", N_("AFInfo"), TagInfo(0x021f, "AFInfo", N_("AFInfo"),
N_("AFInfo"), N_("AFInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0222, "ColorInfo", N_("ColorInfo"), TagInfo(0x0222, "ColorInfo", N_("ColorInfo"),
N_("ColorInfo"), N_("ColorInfo"),
pentaxIfdId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */ pentaxId, makerTags, undefined, -1, printValue), /* TODO: Decoding missing */
TagInfo(0x0229, "SerialNumber", N_("Serial Number"), TagInfo(0x0229, "SerialNumber", N_("Serial Number"),
N_("Serial Number"), N_("Serial Number"),
pentaxIfdId, makerTags, asciiString, -1, printValue), pentaxId, makerTags, asciiString, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownPentaxMakerNoteTag)", "(UnknownPentaxMakerNoteTag)", TagInfo(0xffff, "(UnknownPentaxMakerNoteTag)", "(UnknownPentaxMakerNoteTag)",
N_("Unknown PentaxMakerNote tag"), N_("Unknown PentaxMakerNote tag"),
pentaxIfdId, makerTags, asciiString, -1, printValue) pentaxId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* PentaxMakerNote::tagList() const TagInfo* PentaxMakerNote::tagList()

@ -152,7 +152,7 @@ namespace Exiv2 {
if (!prevData.empty()) { if (!prevData.empty()) {
// Filter duplicate tags // Filter duplicate tags
for (ExifData::const_iterator pos = exifData_.begin(); pos != exifData_.end(); ++pos) { for (ExifData::const_iterator pos = exifData_.begin(); pos != exifData_.end(); ++pos) {
if (pos->ifdId() == panaRawIfdId) continue; if (pos->ifdId() == panaRawId) continue;
ExifData::iterator dup = prevData.findKey(ExifKey(pos->key())); ExifData::iterator dup = prevData.findKey(ExifKey(pos->key()));
if (dup != prevData.end()) { if (dup != prevData.end()) {
#ifdef DEBUG #ifdef DEBUG

@ -55,76 +55,77 @@ namespace Exiv2 {
const TagInfo SigmaMakerNote::tagInfo_[] = { const TagInfo SigmaMakerNote::tagInfo_[] = {
TagInfo(0x0002, "SerialNumber", N_("Serial Number"), TagInfo(0x0002, "SerialNumber", N_("Serial Number"),
N_("Camera serial number"), N_("Camera serial number"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0003, "DriveMode", N_("Drive Mode"), TagInfo(0x0003, "DriveMode", N_("Drive Mode"),
N_("Drive mode"), N_("Drive mode"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0004, "ResolutionMode", N_("Resolution Mode"), TagInfo(0x0004, "ResolutionMode", N_("Resolution Mode"),
N_("Resolution mode"), sigmaIfdId, makerTags, asciiString, -1, printValue), N_("Resolution mode"),
sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0005, "AutofocusMode", N_("Autofocus Mode"), TagInfo(0x0005, "AutofocusMode", N_("Autofocus Mode"),
N_("Autofocus mode"), N_("Autofocus mode"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0006, "FocusSetting", N_("Focus Setting"), TagInfo(0x0006, "FocusSetting", N_("Focus Setting"),
N_("Focus setting"), N_("Focus setting"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0007, "WhiteBalance", N_("White Balance"), TagInfo(0x0007, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0008, "ExposureMode", N_("Exposure Mode"), TagInfo(0x0008, "ExposureMode", N_("Exposure Mode"),
N_("Exposure mode"), N_("Exposure mode"),
sigmaIfdId, makerTags, asciiString, -1, print0x0008), sigmaId, makerTags, asciiString, -1, print0x0008),
TagInfo(0x0009, "MeteringMode", N_("Metering Mode"), TagInfo(0x0009, "MeteringMode", N_("Metering Mode"),
N_("Metering mode"), N_("Metering mode"),
sigmaIfdId, makerTags, asciiString, -1, print0x0009), sigmaId, makerTags, asciiString, -1, print0x0009),
TagInfo(0x000a, "LensRange", N_("Lens Range"), TagInfo(0x000a, "LensRange", N_("Lens Range"),
N_("Lens focal length range"), N_("Lens focal length range"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x000b, "ColorSpace", N_("Color Space"), TagInfo(0x000b, "ColorSpace", N_("Color Space"),
N_("Color space"), N_("Color space"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x000c, "Exposure", N_("Exposure"), TagInfo(0x000c, "Exposure", N_("Exposure"),
N_("Exposure"), N_("Exposure"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x000d, "Contrast", N_("Contrast"), TagInfo(0x000d, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x000e, "Shadow", N_("Shadow"), TagInfo(0x000e, "Shadow", N_("Shadow"),
N_("Shadow"), N_("Shadow"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x000f, "Highlight", N_("Highlight"), TagInfo(0x000f, "Highlight", N_("Highlight"),
N_("Highlight"), N_("Highlight"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x0010, "Saturation", N_("Saturation"), TagInfo(0x0010, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x0011, "Sharpness", N_("Sharpness"), TagInfo(0x0011, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x0012, "FillLight", N_("Fill Light"), TagInfo(0x0012, "FillLight", N_("Fill Light"),
N_("X3 Fill light"), N_("X3 Fill light"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x0014, "ColorAdjustment", N_("Color Adjustment"), TagInfo(0x0014, "ColorAdjustment", N_("Color Adjustment"),
N_("Color adjustment"), N_("Color adjustment"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x0015, "AdjustmentMode", N_("Adjustment Mode"), TagInfo(0x0015, "AdjustmentMode", N_("Adjustment Mode"),
N_("Adjustment mode"), N_("Adjustment mode"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0016, "Quality", N_("Quality"), TagInfo(0x0016, "Quality", N_("Quality"),
N_("Quality"), N_("Quality"),
sigmaIfdId, makerTags, asciiString, -1, printStripLabel), sigmaId, makerTags, asciiString, -1, printStripLabel),
TagInfo(0x0017, "Firmware", N_("Firmware"), TagInfo(0x0017, "Firmware", N_("Firmware"),
N_("Firmware"), N_("Firmware"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0018, "Software", N_("Software"), TagInfo(0x0018, "Software", N_("Software"),
N_("Software"), N_("Software"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
TagInfo(0x0019, "AutoBracket", N_("Auto Bracket"), TagInfo(0x0019, "AutoBracket", N_("Auto Bracket"),
N_("Auto bracket"), N_("Auto bracket"),
sigmaIfdId, makerTags, asciiString, -1, printValue), sigmaId, makerTags, asciiString, -1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "(UnknownSigmaMakerNoteTag)", TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "(UnknownSigmaMakerNoteTag)",
N_("Unknown SigmaMakerNote tag"), N_("Unknown SigmaMakerNote tag"),
sigmaIfdId, makerTags, asciiString, -1, printValue) sigmaId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* SigmaMakerNote::tagList() const TagInfo* SigmaMakerNote::tagList()

@ -273,166 +273,166 @@ namespace Exiv2 {
const TagInfo SonyMakerNote::tagInfo_[] = { const TagInfo SonyMakerNote::tagInfo_[] = {
TagInfo(0x0102, "Quality", N_("Image Quality"), TagInfo(0x0102, "Quality", N_("Image Quality"),
N_("Image quality"), N_("Image quality"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyImageQuality), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyImageQuality),
TagInfo(0x0104, "FlashExposureComp", N_("Flash Exposure Compensation"), TagInfo(0x0104, "FlashExposureComp", N_("Flash Exposure Compensation"),
N_("Flash exposure compensation in EV"), N_("Flash exposure compensation in EV"),
sony1IfdId, makerTags, signedRational, -1, print0x9204), sony1Id, makerTags, signedRational, -1, print0x9204),
TagInfo(0x0105, "Teleconverter", N_("Teleconverter Model"), TagInfo(0x0105, "Teleconverter", N_("Teleconverter Model"),
N_("Teleconverter Model"), N_("Teleconverter Model"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyTeleconverterModel), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyTeleconverterModel),
TagInfo(0x0112, "WhiteBalanceFineTune", N_("White Balance Fine Tune"), TagInfo(0x0112, "WhiteBalanceFineTune", N_("White Balance Fine Tune"),
N_("White Balance Fine Tune Value"), N_("White Balance Fine Tune Value"),
sony1IfdId, makerTags, unsignedLong, -1, printValue), sony1Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0114, "CameraSettings", N_("Camera Settings"), TagInfo(0x0114, "CameraSettings", N_("Camera Settings"),
N_("Camera Settings"), N_("Camera Settings"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0x0115, "WhiteBalance", N_("White Balance"), TagInfo(0x0115, "WhiteBalance", N_("White Balance"),
N_("White balance"), N_("White balance"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyWhiteBalanceStd), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyWhiteBalanceStd),
TagInfo(0x0116, "0x0116", "0x0116", TagInfo(0x0116, "0x0116", "0x0116",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0x0E00, "PrintIM", N_("Print IM"), TagInfo(0x0E00, "PrintIM", N_("Print IM"),
N_("PrintIM information"), N_("PrintIM information"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0x1000, "MultiBurstMode", N_("Multi Burst Mode"), TagInfo(0x1000, "MultiBurstMode", N_("Multi Burst Mode"),
N_("Multi Burst Mode"), N_("Multi Burst Mode"),
sony1IfdId, makerTags, undefined, -1, printMinoltaSonyBoolValue), sony1Id, makerTags, undefined, -1, printMinoltaSonyBoolValue),
TagInfo(0x1001, "MultiBurstImageWidth", N_("Multi Burst Image Width"), TagInfo(0x1001, "MultiBurstImageWidth", N_("Multi Burst Image Width"),
N_("Multi Burst Image Width"), N_("Multi Burst Image Width"),
sony1IfdId, makerTags, unsignedShort, -1, printValue), sony1Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x1002, "MultiBurstImageHeight", N_("Multi Burst Image Height"), TagInfo(0x1002, "MultiBurstImageHeight", N_("Multi Burst Image Height"),
N_("Multi Burst Image Height"), N_("Multi Burst Image Height"),
sony1IfdId, makerTags, unsignedShort, -1, printValue), sony1Id, makerTags, unsignedShort, -1, printValue),
// TODO : Implement Panorama tags decoding. // TODO : Implement Panorama tags decoding.
TagInfo(0x1003, "Panorama", N_("Panorama"), TagInfo(0x1003, "Panorama", N_("Panorama"),
N_("Panorama"), N_("Panorama"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0x2000, "0x2000", "0x2000", TagInfo(0x2000, "0x2000", "0x2000",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0x2001, "PreviewImage", N_("Preview Image"), TagInfo(0x2001, "PreviewImage", N_("Preview Image"),
N_("JPEG preview image"), N_("JPEG preview image"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0x2002, "0x2002", "0x2002", TagInfo(0x2002, "0x2002", "0x2002",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, unsignedLong, -1, printValue), sony1Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x2003, "0x2003", "0x2003", TagInfo(0x2003, "0x2003", "0x2003",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, asciiString, -1, printValue), sony1Id, makerTags, asciiString, -1, printValue),
TagInfo(0x2004, "Contrast", "Contrast", TagInfo(0x2004, "Contrast", "Contrast",
N_("Contrast"), N_("Contrast"),
sony1IfdId, makerTags, signedLong, -1, printValue), sony1Id, makerTags, signedLong, -1, printValue),
TagInfo(0x2005, "Saturation", "Saturation", TagInfo(0x2005, "Saturation", "Saturation",
N_("Saturation"), N_("Saturation"),
sony1IfdId, makerTags, signedLong, -1, printValue), sony1Id, makerTags, signedLong, -1, printValue),
TagInfo(0x2006, "0x2006", "0x2006", TagInfo(0x2006, "0x2006", "0x2006",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, signedLong, -1, printValue), sony1Id, makerTags, signedLong, -1, printValue),
TagInfo(0x2007, "0x2007", "0x2007", TagInfo(0x2007, "0x2007", "0x2007",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, signedLong, -1, printValue), sony1Id, makerTags, signedLong, -1, printValue),
TagInfo(0x2008, "0x2008", "0x2008", TagInfo(0x2008, "0x2008", "0x2008",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, signedLong, -1, printValue), sony1Id, makerTags, signedLong, -1, printValue),
TagInfo(0x2009, "0x2009", "0x2009", TagInfo(0x2009, "0x2009", "0x2009",
N_("Unknown"), N_("Unknown"),
sony1IfdId, makerTags, unsignedShort, -1, printValue), sony1Id, makerTags, unsignedShort, -1, printValue),
TagInfo(0x200A, "AutoHDR", N_("Auto HDR"), TagInfo(0x200A, "AutoHDR", N_("Auto HDR"),
N_("High Definition Range Mode"), N_("High Definition Range Mode"),
sony1IfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(sonyHDRMode)), sony1Id, makerTags, unsignedLong, -1, EXV_PRINT_TAG(sonyHDRMode)),
// TODO : Implement Shot Info tags decoding. // TODO : Implement Shot Info tags decoding.
TagInfo(0x3000, "ShotInfo", N_("Shot Info"), TagInfo(0x3000, "ShotInfo", N_("Shot Info"),
N_("Shot Information"), N_("Shot Information"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0xB000, "FileFormat", N_("File Format"), TagInfo(0xB000, "FileFormat", N_("File Format"),
N_("File Format"), N_("File Format"),
sony1IfdId, makerTags, unsignedByte, -1, print0xb000), sony1Id, makerTags, unsignedByte, -1, print0xb000),
TagInfo(0xB001, "SonyModelID", N_("Sony Model ID"), TagInfo(0xB001, "SonyModelID", N_("Sony Model ID"),
N_("Sony Model ID"), N_("Sony Model ID"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyModelId)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyModelId)),
TagInfo(0xB020, "ColorReproduction", N_("Color Reproduction"), TagInfo(0xB020, "ColorReproduction", N_("Color Reproduction"),
N_("Color Reproduction"), N_("Color Reproduction"),
sony1IfdId, makerTags, asciiString, -1, printValue), sony1Id, makerTags, asciiString, -1, printValue),
TagInfo(0xb021, "ColorTemperature", N_("Color Temperature"), TagInfo(0xb021, "ColorTemperature", N_("Color Temperature"),
N_("Color Temperature"), N_("Color Temperature"),
sony1IfdId, makerTags, unsignedLong, -1, printValue), sony1Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0xB022, "ColorCompensationFilter", N_("Color Compensation Filter"), TagInfo(0xB022, "ColorCompensationFilter", N_("Color Compensation Filter"),
N_("Color Compensation Filter: negative is green, positive is magenta"), N_("Color Compensation Filter: negative is green, positive is magenta"),
sony1IfdId, makerTags, unsignedLong, -1, printValue), sony1Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0xB023, "SceneMode", N_("Scene Mode"), TagInfo(0xB023, "SceneMode", N_("Scene Mode"),
N_("Scene Mode"), N_("Scene Mode"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonySceneMode), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonySceneMode),
TagInfo(0xB024, "ZoneMatching", N_("Zone Matching"), TagInfo(0xB024, "ZoneMatching", N_("Zone Matching"),
N_("Zone Matching"), N_("Zone Matching"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyZoneMatching), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyZoneMatching),
TagInfo(0xB025, "DynamicRangeOptimizer", N_("Dynamic Range Optimizer"), TagInfo(0xB025, "DynamicRangeOptimizer", N_("Dynamic Range Optimizer"),
N_("Dynamic Range Optimizer"), N_("Dynamic Range Optimizer"),
sony1IfdId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(print0xb025)), sony1Id, makerTags, unsignedLong, -1, EXV_PRINT_TAG(print0xb025)),
TagInfo(0xB026, "ImageStabilization", N_("Image Stabilization"), TagInfo(0xB026, "ImageStabilization", N_("Image Stabilization"),
N_("Image stabilization"), N_("Image stabilization"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyBoolValue), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyBoolValue),
TagInfo(0xB027, "LensID", N_("Lens ID"), TagInfo(0xB027, "LensID", N_("Lens ID"),
N_("Lens identifier"), N_("Lens identifier"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyLensID), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyLensID),
TagInfo(0xB028, "MinoltaMakerNote", N_("Minolta MakerNote"), TagInfo(0xB028, "MinoltaMakerNote", N_("Minolta MakerNote"),
N_("Minolta MakerNote"), N_("Minolta MakerNote"),
sony1IfdId, makerTags, undefined, -1, printValue), sony1Id, makerTags, undefined, -1, printValue),
TagInfo(0xB029, "ColorMode", N_("Color Mode"), TagInfo(0xB029, "ColorMode", N_("Color Mode"),
N_("Color Mode"), N_("Color Mode"),
sony1IfdId, makerTags, unsignedLong, -1, printMinoltaSonyColorMode), sony1Id, makerTags, unsignedLong, -1, printMinoltaSonyColorMode),
TagInfo(0xB02B, "FullImageSize", N_("Full Image Size"), TagInfo(0xB02B, "FullImageSize", N_("Full Image Size"),
N_("Full Image Size"), N_("Full Image Size"),
sony1IfdId, makerTags, unsignedLong, -1, printImageSize), sony1Id, makerTags, unsignedLong, -1, printImageSize),
TagInfo(0xB02C, "PreviewImageSize", N_("Preview Image Size"), TagInfo(0xB02C, "PreviewImageSize", N_("Preview Image Size"),
N_("Preview image size"), N_("Preview image size"),
sony1IfdId, makerTags, unsignedLong, -1, printImageSize), sony1Id, makerTags, unsignedLong, -1, printImageSize),
TagInfo(0xB040, "Macro", N_("Macro"), TagInfo(0xB040, "Macro", N_("Macro"),
N_("Macro"), N_("Macro"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyMacroMode)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyMacroMode)),
TagInfo(0xB041, "ExposureMode", N_("Exposure Mode"), TagInfo(0xB041, "ExposureMode", N_("Exposure Mode"),
N_("Exposure Mode"), N_("Exposure Mode"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyExposureMode)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyExposureMode)),
TagInfo(0xB042, "FocusMode", N_("Focus Mode"), TagInfo(0xB042, "FocusMode", N_("Focus Mode"),
N_("Focus Mode"), N_("Focus Mode"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyFocusMode)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyFocusMode)),
TagInfo(0xB043, "AFMode", N_("AF Mode"), TagInfo(0xB043, "AFMode", N_("AF Mode"),
N_("AF Mode"), N_("AF Mode"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyAFMode)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyAFMode)),
TagInfo(0xB044, "AFIlluminator", N_("AF Illuminator"), TagInfo(0xB044, "AFIlluminator", N_("AF Illuminator"),
N_("AF Illuminator"), N_("AF Illuminator"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyAFIlluminator)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyAFIlluminator)),
TagInfo(0xB047, "JPEGQuality", N_("JPEG Quality"), TagInfo(0xB047, "JPEGQuality", N_("JPEG Quality"),
N_("JPEG Quality"), N_("JPEG Quality"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyJPEGQuality)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyJPEGQuality)),
TagInfo(0xB048, "FlashLevel", N_("Flash Level"), TagInfo(0xB048, "FlashLevel", N_("Flash Level"),
N_("Flash Level"), N_("Flash Level"),
sony1IfdId, makerTags, signedShort, -1, EXV_PRINT_TAG(sonyFlashLevel)), sony1Id, makerTags, signedShort, -1, EXV_PRINT_TAG(sonyFlashLevel)),
TagInfo(0xB049, "ReleaseMode", N_("Release Mode"), TagInfo(0xB049, "ReleaseMode", N_("Release Mode"),
N_("Release Mode"), N_("Release Mode"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyReleaseMode)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyReleaseMode)),
TagInfo(0xB04A, "SequenceNumber", N_("Sequence Number"), TagInfo(0xB04A, "SequenceNumber", N_("Sequence Number"),
N_("Shot number in continous burst mode"), N_("Shot number in continous burst mode"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonySequenceNumber)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonySequenceNumber)),
TagInfo(0xB04B, "AntiBlur", N_("Anti-Blur"), TagInfo(0xB04B, "AntiBlur", N_("Anti-Blur"),
N_("Anti-Blur"), N_("Anti-Blur"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyAntiBlur)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyAntiBlur)),
TagInfo(0xB04E, "LongExposureNoiseReduction", N_("Long Exposure Noise Reduction"), TagInfo(0xB04E, "LongExposureNoiseReduction", N_("Long Exposure Noise Reduction"),
N_("Long Exposure Noise Reduction"), N_("Long Exposure Noise Reduction"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyLongExposureNoiseReduction)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyLongExposureNoiseReduction)),
TagInfo(0xB04F, "DynamicRangeOptimizer", N_("Dynamic Range Optimizer"), TagInfo(0xB04F, "DynamicRangeOptimizer", N_("Dynamic Range Optimizer"),
N_("Dynamic Range Optimizer"), N_("Dynamic Range Optimizer"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(print0xb04f)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(print0xb04f)),
TagInfo(0xB052, "IntelligentAuto", N_("Intelligent Auto"), TagInfo(0xB052, "IntelligentAuto", N_("Intelligent Auto"),
N_("Intelligent Auto"), N_("Intelligent Auto"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyIntelligentAuto)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyIntelligentAuto)),
TagInfo(0xB054, "WhiteBalance2", N_("White Balance 2"), TagInfo(0xB054, "WhiteBalance2", N_("White Balance 2"),
N_("White balance 2"), N_("White balance 2"),
sony1IfdId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyWhiteBalance)), sony1Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(sonyWhiteBalance)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownSony1MakerNoteTag)", "(UnknownSony1MakerNoteTag)", TagInfo(0xffff, "(UnknownSony1MakerNoteTag)", "(UnknownSony1MakerNoteTag)",
N_("Unknown Sony1MakerNote tag"), N_("Unknown Sony1MakerNote tag"),
sony1IfdId, makerTags, asciiString, -1, printValue) sony1Id, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* SonyMakerNote::tagList() const TagInfo* SonyMakerNote::tagList()
@ -557,102 +557,102 @@ namespace Exiv2 {
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x0004, "DriveMode", N_("Drive Mode"), TagInfo(0x0004, "DriveMode", N_("Drive Mode"),
N_("Drive Mode"), N_("Drive Mode"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyDriveModeStd)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyDriveModeStd)),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x0006, "WhiteBalanceFineTune", N_("White Balance Fine Tune"), TagInfo(0x0006, "WhiteBalanceFineTune", N_("White Balance Fine Tune"),
N_("White Balance Fine Tune"), N_("White Balance Fine Tune"),
sony1CsIfdId, makerTags, signedShort, 1, printValue), sony1CsId, makerTags, signedShort, 1, printValue),
TagInfo(0x0010, "FocusMode", N_("Focus Mode"), TagInfo(0x0010, "FocusMode", N_("Focus Mode"),
N_("Focus Mode"), N_("Focus Mode"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCSFocusMode)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCSFocusMode)),
TagInfo(0x0011, "AFAreaMode", N_("AF Area Mode"), TagInfo(0x0011, "AFAreaMode", N_("AF Area Mode"),
N_("AF Area Mode"), N_("AF Area Mode"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyAFAreaMode), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyAFAreaMode),
TagInfo(0x0012, "LocalAFAreaPoint", N_("Local AF Area Point"), TagInfo(0x0012, "LocalAFAreaPoint", N_("Local AF Area Point"),
N_("Local AF Area Point"), N_("Local AF Area Point"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint),
TagInfo(0x0015, "MeteringMode", N_("Metering Mode"), TagInfo(0x0015, "MeteringMode", N_("Metering Mode"),
N_("Metering Mode"), N_("Metering Mode"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringMode)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringMode)),
TagInfo(0x0016, "ISOSetting", N_("ISO Setting"), TagInfo(0x0016, "ISOSetting", N_("ISO Setting"),
N_("ISO Setting"), N_("ISO Setting"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0018, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"), TagInfo(0x0018, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"),
N_("Dynamic Range Optimizer Mode"), N_("Dynamic Range Optimizer Mode"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode),
TagInfo(0x0019, "DynamicRangeOptimizerLevel", N_("Dynamic Range Optimizer Level"), TagInfo(0x0019, "DynamicRangeOptimizerLevel", N_("Dynamic Range Optimizer Level"),
N_("Dynamic Range Optimizer Level"), N_("Dynamic Range Optimizer Level"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001A, "CreativeStyle", N_("Creative Style"), TagInfo(0x001A, "CreativeStyle", N_("Creative Style"),
N_("Creative Style"), N_("Creative Style"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCreativeStyle)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCreativeStyle)),
TagInfo(0x001C, "Sharpness", N_("Sharpness"), TagInfo(0x001C, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001D, "Contrast", N_("Contrast"), TagInfo(0x001D, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001E, "Saturation", N_("Saturation"), TagInfo(0x001E, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001F, "ZoneMatchingValue", N_("Zone Matching Value"), TagInfo(0x001F, "ZoneMatchingValue", N_("Zone Matching Value"),
N_("Zone Matching Value"), N_("Zone Matching Value"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0022, "Brightness", N_("Brightness"), TagInfo(0x0022, "Brightness", N_("Brightness"),
N_("Brightness"), N_("Brightness"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0023, "FlashMode", N_("FlashMode"), TagInfo(0x0023, "FlashMode", N_("FlashMode"),
N_("FlashMode"), N_("FlashMode"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashMode)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashMode)),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x0028, "PrioritySetupShutterRelease", N_("Priority Setup Shutter Release"), TagInfo(0x0028, "PrioritySetupShutterRelease", N_("Priority Setup Shutter Release"),
N_("Priority Setup Shutter Release"), N_("Priority Setup Shutter Release"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyPrioritySetupShutterRelease), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyPrioritySetupShutterRelease),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x0029, "AFIlluminator", N_("AF Illuminator"), TagInfo(0x0029, "AFIlluminator", N_("AF Illuminator"),
N_("AF Illuminator"), N_("AF Illuminator"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAFIlluminatorCS)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAFIlluminatorCS)),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x002A, "AFWithShutter", N_("AF With Shutter"), TagInfo(0x002A, "AFWithShutter", N_("AF With Shutter"),
N_("AF With Shutter"), N_("AF With Shutter"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyBoolInverseValue),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x002B, "LongExposureNoiseReduction", N_("Long Exposure Noise Reduction"), TagInfo(0x002B, "LongExposureNoiseReduction", N_("Long Exposure Noise Reduction"),
N_("Long Exposure Noise Reduction"), N_("Long Exposure Noise Reduction"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x002C, "HighISONoiseReduction", N_("High ISO NoiseReduction"), TagInfo(0x002C, "HighISONoiseReduction", N_("High ISO NoiseReduction"),
N_("High ISO NoiseReduction"), N_("High ISO NoiseReduction"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue), sony1CsId, makerTags, unsignedShort, 1, printValue),
// NOTE: A700 only // NOTE: A700 only
TagInfo(0x002D, "ImageStyle", N_("Image Style"), TagInfo(0x002D, "ImageStyle", N_("Image Style"),
N_("Image Style"), N_("Image Style"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageStyle)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageStyle)),
TagInfo(0x003C, "ExposureProgram", N_("Exposure Program"), TagInfo(0x003C, "ExposureProgram", N_("Exposure Program"),
N_("Exposure Program"), N_("Exposure Program"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureProgram)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureProgram)),
TagInfo(0x003D, "ImageStabilization", N_("Image Stabilization"), TagInfo(0x003D, "ImageStabilization", N_("Image Stabilization"),
N_("Image Stabilization"), N_("Image Stabilization"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue),
TagInfo(0x003F, "Rotation", N_("Rotation"), TagInfo(0x003F, "Rotation", N_("Rotation"),
N_("Rotation"), N_("Rotation"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyRotation), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyRotation),
TagInfo(0x0054, "SonyImageSize", N_("Sony Image Size"), TagInfo(0x0054, "SonyImageSize", N_("Sony Image Size"),
N_("Sony Image Size"), N_("Sony Image Size"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSize)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSize)),
TagInfo(0x0055, "AspectRatio", N_("Aspect Ratio"), TagInfo(0x0055, "AspectRatio", N_("Aspect Ratio"),
N_("Aspect Ratio"), N_("Aspect Ratio"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAspectRatio)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyAspectRatio)),
TagInfo(0x0056, "Quality", N_("Quality"), TagInfo(0x0056, "Quality", N_("Quality"),
N_("Quality"), N_("Quality"),
sony1CsIfdId, makerTags, unsignedShort, 1, printMinoltaSonyQualityCs), sony1CsId, makerTags, unsignedShort, 1, printMinoltaSonyQualityCs),
TagInfo(0x0058, "ExposureLevelIncrements", N_("Exposure Level Increments"), TagInfo(0x0058, "ExposureLevelIncrements", N_("Exposure Level Increments"),
N_("Exposure Level Increments"), N_("Exposure Level Increments"),
sony1CsIfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureLevelIncrements)), sony1CsId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureLevelIncrements)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownSony1CsTag)", "(UnknownSony1CsTag)", TagInfo(0xffff, "(UnknownSony1CsTag)", "(UnknownSony1CsTag)",
N_("Unknown Sony1 Camera Settings tag"), N_("Unknown Sony1 Camera Settings tag"),
sony1CsIfdId, makerTags, unsignedShort, 1, printValue) sony1CsId, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* SonyMakerNote::tagListCs() const TagInfo* SonyMakerNote::tagListCs()
@ -670,53 +670,53 @@ namespace Exiv2 {
const TagInfo SonyMakerNote::tagInfoCs2_[] = { const TagInfo SonyMakerNote::tagInfoCs2_[] = {
TagInfo(0x0010, "FocusMode", N_("Focus Mode"), TagInfo(0x0010, "FocusMode", N_("Focus Mode"),
N_("Focus Mode"), N_("Focus Mode"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCSFocusMode)), sony1Cs2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCSFocusMode)),
TagInfo(0x0011, "AFAreaMode", N_("AF Area Mode"), TagInfo(0x0011, "AFAreaMode", N_("AF Area Mode"),
N_("AF Area Mode"), N_("AF Area Mode"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printMinoltaSonyAFAreaMode), sony1Cs2Id, makerTags, unsignedShort, 1, printMinoltaSonyAFAreaMode),
TagInfo(0x0012, "LocalAFAreaPoint", N_("Local AF Area Point"), TagInfo(0x0012, "LocalAFAreaPoint", N_("Local AF Area Point"),
N_("Local AF Area Point"), N_("Local AF Area Point"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint), sony1Cs2Id, makerTags, unsignedShort, 1, printMinoltaSonyLocalAFAreaPoint),
TagInfo(0x0013, "MeteringMode", N_("Metering Mode"), TagInfo(0x0013, "MeteringMode", N_("Metering Mode"),
N_("Metering Mode"), N_("Metering Mode"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringMode)), sony1Cs2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyMeteringMode)),
TagInfo(0x0014, "ISOSetting", N_("ISO Setting"), TagInfo(0x0014, "ISOSetting", N_("ISO Setting"),
N_("ISO Setting"), N_("ISO Setting"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printValue), sony1Cs2Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0016, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"), TagInfo(0x0016, "DynamicRangeOptimizerMode", N_("Dynamic Range Optimizer Mode"),
N_("Dynamic Range Optimizer Mode"), N_("Dynamic Range Optimizer Mode"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode), sony1Cs2Id, makerTags, unsignedShort, 1, printMinoltaSonyDynamicRangeOptimizerMode),
TagInfo(0x0017, "DynamicRangeOptimizerLevel", N_("Dynamic Range Optimizer Level"), TagInfo(0x0017, "DynamicRangeOptimizerLevel", N_("Dynamic Range Optimizer Level"),
N_("Dynamic Range Optimizer Level"), N_("Dynamic Range Optimizer Level"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printValue), sony1Cs2Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0018, "CreativeStyle", N_("Creative Style"), TagInfo(0x0018, "CreativeStyle", N_("Creative Style"),
N_("Creative Style"), N_("Creative Style"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCreativeStyle)), sony1Cs2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyCreativeStyle)),
TagInfo(0x0019, "Sharpness", N_("Sharpness"), TagInfo(0x0019, "Sharpness", N_("Sharpness"),
N_("Sharpness"), N_("Sharpness"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printValue), sony1Cs2Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001A, "Contrast", N_("Contrast"), TagInfo(0x001A, "Contrast", N_("Contrast"),
N_("Contrast"), N_("Contrast"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printValue), sony1Cs2Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x001B, "Saturation", N_("Saturation"), TagInfo(0x001B, "Saturation", N_("Saturation"),
N_("Saturation"), N_("Saturation"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printValue), sony1Cs2Id, makerTags, unsignedShort, 1, printValue),
TagInfo(0x0023, "FlashMode", N_("FlashMode"), TagInfo(0x0023, "FlashMode", N_("FlashMode"),
N_("FlashMode"), N_("FlashMode"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashMode)), sony1Cs2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyFlashMode)),
TagInfo(0x003C, "ExposureProgram", N_("Exposure Program"), TagInfo(0x003C, "ExposureProgram", N_("Exposure Program"),
N_("Exposure Program"), N_("Exposure Program"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureProgram)), sony1Cs2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyExposureProgram)),
TagInfo(0x003F, "Rotation", N_("Rotation"), TagInfo(0x003F, "Rotation", N_("Rotation"),
N_("Rotation"), N_("Rotation"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printMinoltaSonyRotation), sony1Cs2Id, makerTags, unsignedShort, 1, printMinoltaSonyRotation),
TagInfo(0x0054, "SonyImageSize", N_("Sony Image Size"), TagInfo(0x0054, "SonyImageSize", N_("Sony Image Size"),
N_("Sony Image Size"), N_("Sony Image Size"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSize)), sony1Cs2Id, makerTags, unsignedShort, 1, EXV_PRINT_TAG(sonyImageSize)),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownSony1Cs2Tag)", "(UnknownSony1Cs2Tag)", TagInfo(0xffff, "(UnknownSony1Cs2Tag)", "(UnknownSony1Cs2Tag)",
N_("Unknown Sony1 Camera Settings 2 tag"), N_("Unknown Sony1 Camera Settings 2 tag"),
sony1Cs2IfdId, makerTags, unsignedShort, 1, printValue) sony1Cs2Id, makerTags, unsignedShort, 1, printValue)
}; };
const TagInfo* SonyMakerNote::tagListCs2() const TagInfo* SonyMakerNote::tagListCs2()

@ -80,104 +80,104 @@ namespace Exiv2 {
using namespace Internal; using namespace Internal;
//! List of all known Exif groups. Important: IFD item must be unique! //! List of all known Exif groups. Important: Group name (3rd column) must be unique!
extern const GroupInfo groupInfo[] = { extern const GroupInfo groupInfo[] = {
{ ifdIdNotSet, "(Unknown IFD)", "(Unknown item)", 0 }, { ifdIdNotSet, "Unknown IFD", "Unknown", 0 },
{ ifd0Id, "IFD0", "Image", ifdTagList }, { ifd0Id, "IFD0", "Image", ifdTagList },
{ exifIfdId, "Exif", "Photo", exifTagList }, // just to avoid 'Exif.Exif.*' keys { ifd1Id, "IFD1", "Thumbnail", ifdTagList },
{ gpsIfdId, "GPSInfo", "GPSInfo", gpsTagList }, { ifd2Id, "IFD2", "Image2", ifdTagList },
{ iopIfdId, "Iop", "Iop", iopTagList }, { ifd3Id, "IFD3", "Image3", ifdTagList },
{ ifd1Id, "IFD1", "Thumbnail", ifdTagList }, { exifId, "Exif", "Photo", exifTagList },
{ ifd2Id, "IFD2", "Image2", ifdTagList }, { gpsId, "GPSInfo", "GPSInfo", gpsTagList },
{ ifd3Id, "IFD3", "Image3", ifdTagList }, { iopId, "Iop", "Iop", iopTagList },
{ subImage1Id, "SubImage1", "SubImage1", ifdTagList }, { subImage1Id, "SubImage1", "SubImage1", ifdTagList },
{ subImage2Id, "SubImage2", "SubImage2", ifdTagList }, { subImage2Id, "SubImage2", "SubImage2", ifdTagList },
{ subImage3Id, "SubImage3", "SubImage3", ifdTagList }, { subImage3Id, "SubImage3", "SubImage3", ifdTagList },
{ subImage4Id, "SubImage4", "SubImage4", ifdTagList }, { subImage4Id, "SubImage4", "SubImage4", ifdTagList },
{ subImage5Id, "SubImage5", "SubImage5", ifdTagList }, { subImage5Id, "SubImage5", "SubImage5", ifdTagList },
{ subImage6Id, "SubImage6", "SubImage6", ifdTagList }, { subImage6Id, "SubImage6", "SubImage6", ifdTagList },
{ subImage7Id, "SubImage7", "SubImage7", ifdTagList }, { subImage7Id, "SubImage7", "SubImage7", ifdTagList },
{ subImage8Id, "SubImage8", "SubImage8", ifdTagList }, { subImage8Id, "SubImage8", "SubImage8", ifdTagList },
{ subImage9Id, "SubImage9", "SubImage9", ifdTagList }, { subImage9Id, "SubImage9", "SubImage9", ifdTagList },
{ mnIfdId, "Makernote", "MakerNote", mnTagList }, { panaRawId, "PanaRaw", "PanasonicRaw", PanasonicMakerNote::tagListRaw },
{ canonIfdId, "Makernote", "Canon", CanonMakerNote::tagList }, { mnId, "Makernote", "MakerNote", mnTagList },
{ canonCsIfdId, "Makernote", "CanonCs", CanonMakerNote::tagListCs }, { canonId, "Makernote", "Canon", CanonMakerNote::tagList },
{ canonSiIfdId, "Makernote", "CanonSi", CanonMakerNote::tagListSi }, { canonCsId, "Makernote", "CanonCs", CanonMakerNote::tagListCs },
{ canonCfIfdId, "Makernote", "CanonCf", CanonMakerNote::tagListCf }, { canonSiId, "Makernote", "CanonSi", CanonMakerNote::tagListSi },
{ canonPiIfdId, "Makernote", "CanonPi", CanonMakerNote::tagListPi }, { canonCfId, "Makernote", "CanonCf", CanonMakerNote::tagListCf },
{ canonFiIfdId, "Makernote", "CanonFi", CanonMakerNote::tagListFi }, { canonPiId, "Makernote", "CanonPi", CanonMakerNote::tagListPi },
{ canonPaIfdId, "Makernote", "CanonPa", CanonMakerNote::tagListPa }, { canonFiId, "Makernote", "CanonFi", CanonMakerNote::tagListFi },
{ canonPrIfdId, "Makernote", "CanonPr", CanonMakerNote::tagListPr }, { canonPaId, "Makernote", "CanonPa", CanonMakerNote::tagListPa },
{ fujiIfdId, "Makernote", "Fujifilm", FujiMakerNote::tagList }, { canonPrId, "Makernote", "CanonPr", CanonMakerNote::tagListPr },
{ minoltaIfdId, "Makernote", "Minolta", MinoltaMakerNote::tagList }, { fujiId, "Makernote", "Fujifilm", FujiMakerNote::tagList },
{ minoltaCs5DIfdId, "Makernote", "MinoltaCs5D", MinoltaMakerNote::tagListCs5D }, { minoltaId, "Makernote", "Minolta", MinoltaMakerNote::tagList },
{ minoltaCs7DIfdId, "Makernote", "MinoltaCs7D", MinoltaMakerNote::tagListCs7D }, { minoltaCs5DId, "Makernote", "MinoltaCs5D", MinoltaMakerNote::tagListCs5D },
{ minoltaCsOldIfdId, "Makernote", "MinoltaCsOld", MinoltaMakerNote::tagListCsStd }, { minoltaCs7DId, "Makernote", "MinoltaCs7D", MinoltaMakerNote::tagListCs7D },
{ minoltaCsNewIfdId, "Makernote", "MinoltaCsNew", MinoltaMakerNote::tagListCsStd }, { minoltaCsOldId, "Makernote", "MinoltaCsOld", MinoltaMakerNote::tagListCsStd },
{ nikon1IfdId, "Makernote", "Nikon1", Nikon1MakerNote::tagList }, { minoltaCsNewId, "Makernote", "MinoltaCsNew", MinoltaMakerNote::tagListCsStd },
{ nikon2IfdId, "Makernote", "Nikon2", Nikon2MakerNote::tagList }, { nikon1Id, "Makernote", "Nikon1", Nikon1MakerNote::tagList },
{ nikon3IfdId, "Makernote", "Nikon3", Nikon3MakerNote::tagList }, { nikon2Id, "Makernote", "Nikon2", Nikon2MakerNote::tagList },
{ nikonPvIfdId, "Makernote", "NikonPreview", ifdTagList }, { nikon3Id, "Makernote", "Nikon3", Nikon3MakerNote::tagList },
{ nikonVrIfdId, "Makernote", "NikonVr", Nikon3MakerNote::tagListVr }, { nikonPvId, "Makernote", "NikonPreview", ifdTagList },
{ nikonPcIfdId, "Makernote", "NikonPc", Nikon3MakerNote::tagListPc }, { nikonVrId, "Makernote", "NikonVr", Nikon3MakerNote::tagListVr },
{ nikonWtIfdId, "Makernote", "NikonWt", Nikon3MakerNote::tagListWt }, { nikonPcId, "Makernote", "NikonPc", Nikon3MakerNote::tagListPc },
{ nikonIiIfdId, "Makernote", "NikonIi", Nikon3MakerNote::tagListIi }, { nikonWtId, "Makernote", "NikonWt", Nikon3MakerNote::tagListWt },
{ nikonAfIfdId, "Makernote", "NikonAf", Nikon3MakerNote::tagListAf }, { nikonIiId, "Makernote", "NikonIi", Nikon3MakerNote::tagListIi },
{ nikonAf2IfdId, "Makernote", "NikonAf2", Nikon3MakerNote::tagListAf2 }, { nikonAfId, "Makernote", "NikonAf", Nikon3MakerNote::tagListAf },
{ nikonFiIfdId, "Makernote", "NikonFi", Nikon3MakerNote::tagListFi }, { nikonAf2Id, "Makernote", "NikonAf2", Nikon3MakerNote::tagListAf2 },
{ nikonMeIfdId, "Makernote", "NikonMe", Nikon3MakerNote::tagListMe }, { nikonFiId, "Makernote", "NikonFi", Nikon3MakerNote::tagListFi },
{ nikonFl1IfdId, "Makernote", "NikonFl1", Nikon3MakerNote::tagListFl1 }, { nikonMeId, "Makernote", "NikonMe", Nikon3MakerNote::tagListMe },
{ nikonFl2IfdId, "Makernote", "NikonFl2", Nikon3MakerNote::tagListFl2 }, { nikonFl1Id, "Makernote", "NikonFl1", Nikon3MakerNote::tagListFl1 },
{ nikonFl3IfdId, "Makernote", "NikonFl3", Nikon3MakerNote::tagListFl3 }, { nikonFl2Id, "Makernote", "NikonFl2", Nikon3MakerNote::tagListFl2 },
{ nikonSi1IfdId, "Makernote", "NikonSiD80", Nikon3MakerNote::tagListSi1 }, { nikonFl3Id, "Makernote", "NikonFl3", Nikon3MakerNote::tagListFl3 },
{ nikonSi2IfdId, "Makernote", "NikonSiD40", Nikon3MakerNote::tagListSi2 }, { nikonSi1Id, "Makernote", "NikonSiD80", Nikon3MakerNote::tagListSi1 },
{ nikonSi3IfdId, "Makernote", "NikonSiD300a", Nikon3MakerNote::tagListSi3 }, { nikonSi2Id, "Makernote", "NikonSiD40", Nikon3MakerNote::tagListSi2 },
{ nikonSi4IfdId, "Makernote", "NikonSiD300b", Nikon3MakerNote::tagListSi4 }, { nikonSi3Id, "Makernote", "NikonSiD300a", Nikon3MakerNote::tagListSi3 },
{ nikonSi5IfdId, "Makernote", "NikonSi02xx", Nikon3MakerNote::tagListSi5 }, { nikonSi4Id, "Makernote", "NikonSiD300b", Nikon3MakerNote::tagListSi4 },
{ nikonSi6IfdId, "Makernote", "NikonSi01xx", Nikon3MakerNote::tagListSi5 }, { nikonSi5Id, "Makernote", "NikonSi02xx", Nikon3MakerNote::tagListSi5 },
{ nikonCb1IfdId, "Makernote", "NikonCb1", Nikon3MakerNote::tagListCb1 }, { nikonSi6Id, "Makernote", "NikonSi01xx", Nikon3MakerNote::tagListSi5 },
{ nikonCb2IfdId, "Makernote", "NikonCb2", Nikon3MakerNote::tagListCb2 }, { nikonCb1Id, "Makernote", "NikonCb1", Nikon3MakerNote::tagListCb1 },
{ nikonCb2aIfdId, "Makernote", "NikonCb2a", Nikon3MakerNote::tagListCb2a }, { nikonCb2Id, "Makernote", "NikonCb2", Nikon3MakerNote::tagListCb2 },
{ nikonCb2bIfdId, "Makernote", "NikonCb2b", Nikon3MakerNote::tagListCb2b }, { nikonCb2aId, "Makernote", "NikonCb2a", Nikon3MakerNote::tagListCb2a },
{ nikonCb3IfdId, "Makernote", "NikonCb3", Nikon3MakerNote::tagListCb3 }, { nikonCb2bId, "Makernote", "NikonCb2b", Nikon3MakerNote::tagListCb2b },
{ nikonCb4IfdId, "Makernote", "NikonCb4", Nikon3MakerNote::tagListCb4 }, { nikonCb3Id, "Makernote", "NikonCb3", Nikon3MakerNote::tagListCb3 },
{ nikonLd1IfdId, "Makernote", "NikonLd1", Nikon3MakerNote::tagListLd1 }, { nikonCb4Id, "Makernote", "NikonCb4", Nikon3MakerNote::tagListCb4 },
{ nikonLd2IfdId, "Makernote", "NikonLd2", Nikon3MakerNote::tagListLd2 }, { nikonLd1Id, "Makernote", "NikonLd1", Nikon3MakerNote::tagListLd1 },
{ nikonLd3IfdId, "Makernote", "NikonLd3", Nikon3MakerNote::tagListLd3 }, { nikonLd2Id, "Makernote", "NikonLd2", Nikon3MakerNote::tagListLd2 },
{ olympusIfdId, "Makernote", "Olympus", OlympusMakerNote::tagList }, { nikonLd3Id, "Makernote", "NikonLd3", Nikon3MakerNote::tagListLd3 },
{ olympus2IfdId, "Makernote", "Olympus2", OlympusMakerNote::tagList }, { olympusId, "Makernote", "Olympus", OlympusMakerNote::tagList },
{ olympusCsIfdId, "Makernote", "OlympusCs", OlympusMakerNote::tagListCs }, { olympus2Id, "Makernote", "Olympus2", OlympusMakerNote::tagList },
{ olympusEqIfdId, "Makernote", "OlympusEq", OlympusMakerNote::tagListEq }, { olympusCsId, "Makernote", "OlympusCs", OlympusMakerNote::tagListCs },
{ olympusRdIfdId, "Makernote", "OlympusRd", OlympusMakerNote::tagListRd }, { olympusEqId, "Makernote", "OlympusEq", OlympusMakerNote::tagListEq },
{ olympusRd2IfdId, "Makernote", "OlympusRd2", OlympusMakerNote::tagListRd2 }, { olympusRdId, "Makernote", "OlympusRd", OlympusMakerNote::tagListRd },
{ olympusIpIfdId, "Makernote", "OlympusIp", OlympusMakerNote::tagListIp }, { olympusRd2Id, "Makernote", "OlympusRd2", OlympusMakerNote::tagListRd2 },
{ olympusFiIfdId, "Makernote", "OlympusFi", OlympusMakerNote::tagListFi }, { olympusIpId, "Makernote", "OlympusIp", OlympusMakerNote::tagListIp },
{ olympusFe1IfdId, "Makernote", "OlympusFe1", OlympusMakerNote::tagListFe }, { olympusFiId, "Makernote", "OlympusFi", OlympusMakerNote::tagListFi },
{ olympusFe2IfdId, "Makernote", "OlympusFe2", OlympusMakerNote::tagListFe }, { olympusFe1Id, "Makernote", "OlympusFe1", OlympusMakerNote::tagListFe },
{ olympusFe3IfdId, "Makernote", "OlympusFe3", OlympusMakerNote::tagListFe }, { olympusFe2Id, "Makernote", "OlympusFe2", OlympusMakerNote::tagListFe },
{ olympusFe4IfdId, "Makernote", "OlympusFe4", OlympusMakerNote::tagListFe }, { olympusFe3Id, "Makernote", "OlympusFe3", OlympusMakerNote::tagListFe },
{ olympusFe5IfdId, "Makernote", "OlympusFe5", OlympusMakerNote::tagListFe }, { olympusFe4Id, "Makernote", "OlympusFe4", OlympusMakerNote::tagListFe },
{ olympusFe6IfdId, "Makernote", "OlympusFe6", OlympusMakerNote::tagListFe }, { olympusFe5Id, "Makernote", "OlympusFe5", OlympusMakerNote::tagListFe },
{ olympusFe7IfdId, "Makernote", "OlympusFe7", OlympusMakerNote::tagListFe }, { olympusFe6Id, "Makernote", "OlympusFe6", OlympusMakerNote::tagListFe },
{ olympusFe8IfdId, "Makernote", "OlympusFe8", OlympusMakerNote::tagListFe }, { olympusFe7Id, "Makernote", "OlympusFe7", OlympusMakerNote::tagListFe },
{ olympusFe9IfdId, "Makernote", "OlympusFe9", OlympusMakerNote::tagListFe }, { olympusFe8Id, "Makernote", "OlympusFe8", OlympusMakerNote::tagListFe },
{ olympusRiIfdId, "Makernote", "OlympusRi", OlympusMakerNote::tagListRi }, { olympusFe9Id, "Makernote", "OlympusFe9", OlympusMakerNote::tagListFe },
{ panasonicIfdId, "Makernote", "Panasonic", PanasonicMakerNote::tagList }, { olympusRiId, "Makernote", "OlympusRi", OlympusMakerNote::tagListRi },
{ panaRawIfdId, "PanaRaw", "PanasonicRaw", PanasonicMakerNote::tagListRaw }, { panasonicId, "Makernote", "Panasonic", PanasonicMakerNote::tagList },
{ pentaxIfdId, "Makernote", "Pentax", PentaxMakerNote::tagList }, { pentaxId, "Makernote", "Pentax", PentaxMakerNote::tagList },
{ sigmaIfdId, "Makernote", "Sigma", SigmaMakerNote::tagList }, { sigmaId, "Makernote", "Sigma", SigmaMakerNote::tagList },
{ sony1IfdId, "Makernote", "Sony1", SonyMakerNote::tagList }, { sony1Id, "Makernote", "Sony1", SonyMakerNote::tagList },
{ sony2IfdId, "Makernote", "Sony2", SonyMakerNote::tagList }, { sony2Id, "Makernote", "Sony2", SonyMakerNote::tagList },
{ sonyMltIfdId, "Makernote", "SonyMinolta", MinoltaMakerNote::tagList }, { sonyMltId, "Makernote", "SonyMinolta", MinoltaMakerNote::tagList },
{ sony1CsIfdId, "Makernote", "Sony1Cs", SonyMakerNote::tagListCs }, { sony1CsId, "Makernote", "Sony1Cs", SonyMakerNote::tagListCs },
{ sony1Cs2IfdId, "Makernote", "Sony1Cs2", SonyMakerNote::tagListCs2 }, { sony1Cs2Id, "Makernote", "Sony1Cs2", SonyMakerNote::tagListCs2 },
{ sony1MltCs7DIfdId, "Makernote", "Sony1MltCs7D", MinoltaMakerNote::tagListCs7D }, { sony1MltCs7DId, "Makernote", "Sony1MltCs7D", MinoltaMakerNote::tagListCs7D },
{ sony1MltCsOldIfdId,"Makernote", "Sony1MltCsOld",MinoltaMakerNote::tagListCsStd }, { sony1MltCsOldId, "Makernote", "Sony1MltCsOld",MinoltaMakerNote::tagListCsStd },
{ sony1MltCsNewIfdId,"Makernote", "Sony1MltCsNew",MinoltaMakerNote::tagListCsStd }, { sony1MltCsNewId, "Makernote", "Sony1MltCsNew",MinoltaMakerNote::tagListCsStd },
{ sony1MltCsA100IfdId,"Makernote","Sony1MltCsA100",MinoltaMakerNote::tagListCsA100}, { sony1MltCsA100Id,"Makernote","Sony1MltCsA100",MinoltaMakerNote::tagListCsA100},
{ sony2CsIfdId, "Makernote", "Sony2Cs", SonyMakerNote::tagListCs }, { sony2CsId, "Makernote", "Sony2Cs", SonyMakerNote::tagListCs },
{ sony2Cs2IfdId, "Makernote", "Sony2Cs2", SonyMakerNote::tagListCs2 }, { sony2Cs2Id, "Makernote", "Sony2Cs2", SonyMakerNote::tagListCs2 },
{ lastIfdId, "(Last IFD info)", "(Last IFD item)", 0 } { lastId, "(Last IFD info)", "(Last IFD item)", 0 }
}; };
//! List of all defined Exif sections. //! List of all defined Exif sections.
@ -1352,39 +1352,39 @@ namespace Exiv2 {
static const TagInfo exifTagInfo[] = { static const TagInfo exifTagInfo[] = {
TagInfo(0x829a, "ExposureTime", N_("Exposure Time"), TagInfo(0x829a, "ExposureTime", N_("Exposure Time"),
N_("Exposure time, given in seconds (sec)."), N_("Exposure time, given in seconds (sec)."),
exifIfdId, captureCond, unsignedRational, 1, print0x829a), exifId, captureCond, unsignedRational, 1, print0x829a),
TagInfo(0x829d, "FNumber", N_("FNumber"), TagInfo(0x829d, "FNumber", N_("FNumber"),
N_("The F number."), N_("The F number."),
exifIfdId, captureCond, unsignedRational, 1, print0x829d), exifId, captureCond, unsignedRational, 1, print0x829d),
TagInfo(0x8822, "ExposureProgram", N_("Exposure Program"), TagInfo(0x8822, "ExposureProgram", N_("Exposure Program"),
N_("The class of the program used by the camera to set exposure " N_("The class of the program used by the camera to set exposure "
"when the picture is taken."), "when the picture is taken."),
exifIfdId, captureCond, unsignedShort, 1, print0x8822), exifId, captureCond, unsignedShort, 1, print0x8822),
TagInfo(0x8824, "SpectralSensitivity", N_("Spectral Sensitivity"), TagInfo(0x8824, "SpectralSensitivity", N_("Spectral Sensitivity"),
N_("Indicates the spectral sensitivity of each channel of the " N_("Indicates the spectral sensitivity of each channel of the "
"camera used. The tag value is an ASCII string compatible " "camera used. The tag value is an ASCII string compatible "
"with the standard developed by the ASTM Technical Committee."), "with the standard developed by the ASTM Technical Committee."),
exifIfdId, captureCond, asciiString, 0, printValue), exifId, captureCond, asciiString, 0, printValue),
TagInfo(0x8827, "ISOSpeedRatings", N_("ISO Speed Ratings"), TagInfo(0x8827, "ISOSpeedRatings", N_("ISO Speed Ratings"),
N_("Indicates the ISO Speed and ISO Latitude of the camera or " N_("Indicates the ISO Speed and ISO Latitude of the camera or "
"input device as specified in ISO 12232."), "input device as specified in ISO 12232."),
exifIfdId, captureCond, unsignedShort, 0, print0x8827), exifId, captureCond, unsignedShort, 0, print0x8827),
TagInfo(0x8828, "OECF", N_("Opto-Electoric Conversion Function"), TagInfo(0x8828, "OECF", N_("Opto-Electoric Conversion Function"),
N_("Indicates the Opto-Electoric Conversion Function (OECF) " N_("Indicates the Opto-Electoric Conversion Function (OECF) "
"specified in ISO 14524. <OECF> is the relationship between " "specified in ISO 14524. <OECF> is the relationship between "
"the camera optical input and the image values."), "the camera optical input and the image values."),
exifIfdId, captureCond, undefined, 0, printValue), exifId, captureCond, undefined, 0, printValue),
TagInfo(0x9000, "ExifVersion", N_("Exif Version"), TagInfo(0x9000, "ExifVersion", N_("Exif Version"),
N_("The version of this standard supported. Nonexistence of this " N_("The version of this standard supported. Nonexistence of this "
"field is taken to mean nonconformance to the standard."), "field is taken to mean nonconformance to the standard."),
exifIfdId, exifVersion, undefined, 4, printExifVersion), exifId, exifVersion, undefined, 4, printExifVersion),
TagInfo(0x9003, "DateTimeOriginal", N_("Date and Time (original)"), TagInfo(0x9003, "DateTimeOriginal", N_("Date and Time (original)"),
N_("The date and time when the original image data was generated. " N_("The date and time when the original image data was generated. "
"For a digital still camera the date and time the picture was taken are recorded."), "For a digital still camera the date and time the picture was taken are recorded."),
exifIfdId, dateTime, asciiString, 20, printValue), exifId, dateTime, asciiString, 20, printValue),
TagInfo(0x9004, "DateTimeDigitized", N_("Date and Time (digitized)"), TagInfo(0x9004, "DateTimeDigitized", N_("Date and Time (digitized)"),
N_("The date and time when the image was stored as digital data."), N_("The date and time when the image was stored as digital data."),
exifIfdId, dateTime, asciiString, 20, printValue), exifId, dateTime, asciiString, 20, printValue),
TagInfo(0x9101, "ComponentsConfiguration", N_("Components Configuration"), TagInfo(0x9101, "ComponentsConfiguration", N_("Components Configuration"),
N_("Information specific to compressed data. The channels of " N_("Information specific to compressed data. The channels of "
"each component are arranged in order from the 1st " "each component are arranged in order from the 1st "
@ -1394,72 +1394,72 @@ namespace Exiv2 {
"express the order of Y, Cb and Cr, this tag is provided " "express the order of Y, Cb and Cr, this tag is provided "
"for cases when compressed data uses components other than " "for cases when compressed data uses components other than "
"Y, Cb, and Cr and to enable support of other sequences."), "Y, Cb, and Cr and to enable support of other sequences."),
exifIfdId, imgConfig, undefined, 4, print0x9101), exifId, imgConfig, undefined, 4, print0x9101),
TagInfo(0x9102, "CompressedBitsPerPixel", N_("Compressed Bits per Pixel"), TagInfo(0x9102, "CompressedBitsPerPixel", N_("Compressed Bits per Pixel"),
N_("Information specific to compressed data. The compression mode " N_("Information specific to compressed data. The compression mode "
"used for a compressed image is indicated in unit bits per pixel."), "used for a compressed image is indicated in unit bits per pixel."),
exifIfdId, imgConfig, unsignedRational, 1, printFloat), exifId, imgConfig, unsignedRational, 1, printFloat),
TagInfo(0x9201, "ShutterSpeedValue", N_("Shutter speed"), TagInfo(0x9201, "ShutterSpeedValue", N_("Shutter speed"),
N_("Shutter speed. The unit is the APEX (Additive System of " N_("Shutter speed. The unit is the APEX (Additive System of "
"Photographic Exposure) setting."), "Photographic Exposure) setting."),
exifIfdId, captureCond, signedRational, 1, print0x9201), exifId, captureCond, signedRational, 1, print0x9201),
TagInfo(0x9202, "ApertureValue", N_("Aperture"), TagInfo(0x9202, "ApertureValue", N_("Aperture"),
N_("The lens aperture. The unit is the APEX value."), N_("The lens aperture. The unit is the APEX value."),
exifIfdId, captureCond, unsignedRational, 1, print0x9202), exifId, captureCond, unsignedRational, 1, print0x9202),
TagInfo(0x9203, "BrightnessValue", N_("Brightness"), TagInfo(0x9203, "BrightnessValue", N_("Brightness"),
N_("The value of brightness. The unit is the APEX value. " N_("The value of brightness. The unit is the APEX value. "
"Ordinarily it is given in the range of -99.99 to 99.99."), "Ordinarily it is given in the range of -99.99 to 99.99."),
exifIfdId, captureCond, signedRational, 1, printFloat), exifId, captureCond, signedRational, 1, printFloat),
TagInfo(0x9204, "ExposureBiasValue", N_("Exposure Bias"), TagInfo(0x9204, "ExposureBiasValue", N_("Exposure Bias"),
N_("The exposure bias. The units is the APEX value. Ordinarily " N_("The exposure bias. The units is the APEX value. Ordinarily "
"it is given in the range of -99.99 to 99.99."), "it is given in the range of -99.99 to 99.99."),
exifIfdId, captureCond, signedRational, 1, print0x9204), exifId, captureCond, signedRational, 1, print0x9204),
TagInfo(0x9205, "MaxApertureValue", N_("Max Aperture Value"), TagInfo(0x9205, "MaxApertureValue", N_("Max Aperture Value"),
N_("The smallest F number of the lens. The unit is the APEX value. " N_("The smallest F number of the lens. The unit is the APEX value. "
"Ordinarily it is given in the range of 00.00 to 99.99, " "Ordinarily it is given in the range of 00.00 to 99.99, "
"but it is not limited to this range."), "but it is not limited to this range."),
exifIfdId, captureCond, unsignedRational, 1, print0x9202), exifId, captureCond, unsignedRational, 1, print0x9202),
TagInfo(0x9206, "SubjectDistance", N_("Subject Distance"), TagInfo(0x9206, "SubjectDistance", N_("Subject Distance"),
N_("The distance to the subject, given in meters."), N_("The distance to the subject, given in meters."),
exifIfdId, captureCond, unsignedRational, 1, print0x9206), exifId, captureCond, unsignedRational, 1, print0x9206),
TagInfo(0x9207, "MeteringMode", N_("Metering Mode"), TagInfo(0x9207, "MeteringMode", N_("Metering Mode"),
N_("The metering mode."), N_("The metering mode."),
exifIfdId, captureCond, unsignedShort, 1, print0x9207), exifId, captureCond, unsignedShort, 1, print0x9207),
TagInfo(0x9208, "LightSource", N_("Light Source"), TagInfo(0x9208, "LightSource", N_("Light Source"),
N_("The kind of light source."), N_("The kind of light source."),
exifIfdId, captureCond, unsignedShort, 1, print0x9208), exifId, captureCond, unsignedShort, 1, print0x9208),
TagInfo(0x9209, "Flash", N_("Flash"), TagInfo(0x9209, "Flash", N_("Flash"),
N_("This tag is recorded when an image is taken using a strobe light (flash)."), N_("This tag is recorded when an image is taken using a strobe light (flash)."),
exifIfdId, captureCond, unsignedShort, 1, EXV_PRINT_TAG(exifFlash)), exifId, captureCond, unsignedShort, 1, EXV_PRINT_TAG(exifFlash)),
TagInfo(0x920a, "FocalLength", N_("Focal Length"), TagInfo(0x920a, "FocalLength", N_("Focal Length"),
N_("The actual focal length of the lens, in mm. Conversion is not " N_("The actual focal length of the lens, in mm. Conversion is not "
"made to the focal length of a 35 mm film camera."), "made to the focal length of a 35 mm film camera."),
exifIfdId, captureCond, unsignedRational, 1, print0x920a), exifId, captureCond, unsignedRational, 1, print0x920a),
TagInfo(0x9214, "SubjectArea", N_("Subject Area"), TagInfo(0x9214, "SubjectArea", N_("Subject Area"),
N_("This tag indicates the location and area of the main subject " N_("This tag indicates the location and area of the main subject "
"in the overall scene."), "in the overall scene."),
exifIfdId, captureCond, unsignedShort, -1, printValue), exifId, captureCond, unsignedShort, -1, printValue),
TagInfo(0x927c, "MakerNote", N_("Maker Note"), TagInfo(0x927c, "MakerNote", N_("Maker Note"),
N_("A tag for manufacturers of Exif writers to record any desired " N_("A tag for manufacturers of Exif writers to record any desired "
"information. The contents are up to the manufacturer."), "information. The contents are up to the manufacturer."),
exifIfdId, userInfo, undefined, 0, printValue), exifId, userInfo, undefined, 0, printValue),
TagInfo(0x9286, "UserComment", N_("User Comment"), TagInfo(0x9286, "UserComment", N_("User Comment"),
N_("A tag for Exif users to write keywords or comments on the image " N_("A tag for Exif users to write keywords or comments on the image "
"besides those in <ImageDescription>, and without the " "besides those in <ImageDescription>, and without the "
"character code limitations of the <ImageDescription> tag."), "character code limitations of the <ImageDescription> tag."),
exifIfdId, userInfo, comment, 0, print0x9286), exifId, userInfo, comment, 0, print0x9286),
TagInfo(0x9290, "SubSecTime", N_("Sub-seconds Time"), TagInfo(0x9290, "SubSecTime", N_("Sub-seconds Time"),
N_("A tag used to record fractions of seconds for the <DateTime> tag."), N_("A tag used to record fractions of seconds for the <DateTime> tag."),
exifIfdId, dateTime, asciiString, 0, printValue), exifId, dateTime, asciiString, 0, printValue),
TagInfo(0x9291, "SubSecTimeOriginal", N_("Sub-seconds Time Original"), TagInfo(0x9291, "SubSecTimeOriginal", N_("Sub-seconds Time Original"),
N_("A tag used to record fractions of seconds for the <DateTimeOriginal> tag."), N_("A tag used to record fractions of seconds for the <DateTimeOriginal> tag."),
exifIfdId, dateTime, asciiString, 0, printValue), exifId, dateTime, asciiString, 0, printValue),
TagInfo(0x9292, "SubSecTimeDigitized", N_("Sub-seconds Time Digitized"), TagInfo(0x9292, "SubSecTimeDigitized", N_("Sub-seconds Time Digitized"),
N_("A tag used to record fractions of seconds for the <DateTimeDigitized> tag."), N_("A tag used to record fractions of seconds for the <DateTimeDigitized> tag."),
exifIfdId, dateTime, asciiString, 0, printValue), exifId, dateTime, asciiString, 0, printValue),
TagInfo(0xa000, "FlashpixVersion", N_("FlashPix Version"), TagInfo(0xa000, "FlashpixVersion", N_("FlashPix Version"),
N_("The FlashPix format version supported by a FPXR file."), N_("The FlashPix format version supported by a FPXR file."),
exifIfdId, exifVersion, undefined, 4, printExifVersion), exifId, exifVersion, undefined, 4, printExifVersion),
TagInfo(0xa001, "ColorSpace", N_("Color Space"), TagInfo(0xa001, "ColorSpace", N_("Color Space"),
N_("The color space information tag is always " N_("The color space information tag is always "
"recorded as the color space specifier. Normally sRGB " "recorded as the color space specifier. Normally sRGB "
@ -1468,14 +1468,14 @@ namespace Exiv2 {
"sRGB is used, Uncalibrated is set. Image data " "sRGB is used, Uncalibrated is set. Image data "
"recorded as Uncalibrated can be treated as sRGB when it is " "recorded as Uncalibrated can be treated as sRGB when it is "
"converted to FlashPix."), "converted to FlashPix."),
exifIfdId, imgCharacter, unsignedShort, 1, print0xa001), exifId, imgCharacter, unsignedShort, 1, print0xa001),
TagInfo(0xa002, "PixelXDimension", N_("Pixel X Dimension"), TagInfo(0xa002, "PixelXDimension", N_("Pixel X Dimension"),
N_("Information specific to compressed data. When a " N_("Information specific to compressed data. When a "
"compressed file is recorded, the valid width of the " "compressed file is recorded, the valid width of the "
"meaningful image must be recorded in this tag, whether or " "meaningful image must be recorded in this tag, whether or "
"not there is padding data or a restart marker. This tag " "not there is padding data or a restart marker. This tag "
"should not exist in an uncompressed file."), "should not exist in an uncompressed file."),
exifIfdId, imgConfig, unsignedLong, 1, printValue), exifId, imgConfig, unsignedLong, 1, printValue),
TagInfo(0xa003, "PixelYDimension", N_("Pixel Y Dimension"), TagInfo(0xa003, "PixelYDimension", N_("Pixel Y Dimension"),
N_("Information specific to compressed data. When a compressed " N_("Information specific to compressed data. When a compressed "
"file is recorded, the valid height of the meaningful image " "file is recorded, the valid height of the meaningful image "
@ -1484,14 +1484,14 @@ namespace Exiv2 {
"uncompressed file. Since data padding is unnecessary in the vertical " "uncompressed file. Since data padding is unnecessary in the vertical "
"direction, the number of lines recorded in this valid image height tag " "direction, the number of lines recorded in this valid image height tag "
"will in fact be the same as that recorded in the SOF."), "will in fact be the same as that recorded in the SOF."),
exifIfdId, imgConfig, unsignedLong, 1, printValue), exifId, imgConfig, unsignedLong, 1, printValue),
TagInfo(0xa004, "RelatedSoundFile", N_("Related Sound File"), TagInfo(0xa004, "RelatedSoundFile", N_("Related Sound File"),
N_("This tag is used to record the name of an audio file related " N_("This tag is used to record the name of an audio file related "
"to the image data. The only relational information " "to the image data. The only relational information "
"recorded here is the Exif audio file name and extension (an " "recorded here is the Exif audio file name and extension (an "
"ASCII string consisting of 8 characters + '.' + 3 " "ASCII string consisting of 8 characters + '.' + 3 "
"characters). The path is not recorded."), "characters). The path is not recorded."),
exifIfdId, relatedFile, asciiString, 13, printValue), exifId, relatedFile, asciiString, 13, printValue),
TagInfo(0xa005, "InteroperabilityTag", N_("Interoperability IFD Pointer"), TagInfo(0xa005, "InteroperabilityTag", N_("Interoperability IFD Pointer"),
N_("Interoperability IFD is composed of tags which stores the " N_("Interoperability IFD is composed of tags which stores the "
"information to ensure the Interoperability and pointed " "information to ensure the Interoperability and pointed "
@ -1499,119 +1499,119 @@ namespace Exiv2 {
"The Interoperability structure of Interoperability IFD is " "The Interoperability structure of Interoperability IFD is "
"the same as TIFF defined IFD structure but does not contain the " "the same as TIFF defined IFD structure but does not contain the "
"image data characteristically compared with normal TIFF IFD."), "image data characteristically compared with normal TIFF IFD."),
exifIfdId, exifFormat, unsignedLong, 1, printValue), exifId, exifFormat, unsignedLong, 1, printValue),
TagInfo(0xa20b, "FlashEnergy", N_("Flash Energy"), TagInfo(0xa20b, "FlashEnergy", N_("Flash Energy"),
N_("Indicates the strobe energy at the time the image is " N_("Indicates the strobe energy at the time the image is "
"captured, as measured in Beam Candle Power Seconds (BCPS)."), "captured, as measured in Beam Candle Power Seconds (BCPS)."),
exifIfdId, captureCond, unsignedRational, 1, printValue), exifId, captureCond, unsignedRational, 1, printValue),
TagInfo(0xa20c, "SpatialFrequencyResponse", N_("Spatial Frequency Response"), TagInfo(0xa20c, "SpatialFrequencyResponse", N_("Spatial Frequency Response"),
N_("This tag records the camera or input device spatial frequency " N_("This tag records the camera or input device spatial frequency "
"table and SFR values in the direction of image width, " "table and SFR values in the direction of image width, "
"image height, and diagonal direction, as specified in ISO 12233."), "image height, and diagonal direction, as specified in ISO 12233."),
exifIfdId, captureCond, undefined, 0, printValue), exifId, captureCond, undefined, 0, printValue),
TagInfo(0xa20e, "FocalPlaneXResolution", N_("Focal Plane X-Resolution"), TagInfo(0xa20e, "FocalPlaneXResolution", N_("Focal Plane X-Resolution"),
N_("Indicates the number of pixels in the image width (X) direction " N_("Indicates the number of pixels in the image width (X) direction "
"per <FocalPlaneResolutionUnit> on the camera focal plane."), "per <FocalPlaneResolutionUnit> on the camera focal plane."),
exifIfdId, captureCond, unsignedRational, 1, printFloat), exifId, captureCond, unsignedRational, 1, printFloat),
TagInfo(0xa20f, "FocalPlaneYResolution", N_("Focal Plane Y-Resolution"), TagInfo(0xa20f, "FocalPlaneYResolution", N_("Focal Plane Y-Resolution"),
N_("Indicates the number of pixels in the image height (V) direction " N_("Indicates the number of pixels in the image height (V) direction "
"per <FocalPlaneResolutionUnit> on the camera focal plane."), "per <FocalPlaneResolutionUnit> on the camera focal plane."),
exifIfdId, captureCond, unsignedRational, 1, printFloat), exifId, captureCond, unsignedRational, 1, printFloat),
TagInfo(0xa210, "FocalPlaneResolutionUnit", N_("Focal Plane Resolution Unit"), TagInfo(0xa210, "FocalPlaneResolutionUnit", N_("Focal Plane Resolution Unit"),
N_("Indicates the unit for measuring <FocalPlaneXResolution> and " N_("Indicates the unit for measuring <FocalPlaneXResolution> and "
"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."), "<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."),
exifIfdId, captureCond, unsignedShort, 1, printExifUnit), exifId, captureCond, unsignedShort, 1, printExifUnit),
TagInfo(0xa214, "SubjectLocation", N_("Subject Location"), TagInfo(0xa214, "SubjectLocation", N_("Subject Location"),
N_("Indicates the location of the main subject in the scene. The " N_("Indicates the location of the main subject in the scene. The "
"value of this tag represents the pixel at the center of the " "value of this tag represents the pixel at the center of the "
"main subject relative to the left edge, prior to rotation " "main subject relative to the left edge, prior to rotation "
"processing as per the <Rotation> tag. The first value " "processing as per the <Rotation> tag. The first value "
"indicates the X column number and second indicates the Y row number."), "indicates the X column number and second indicates the Y row number."),
exifIfdId, captureCond, unsignedShort, 2, printValue), exifId, captureCond, unsignedShort, 2, printValue),
TagInfo(0xa215, "ExposureIndex", N_("Exposure index"), TagInfo(0xa215, "ExposureIndex", N_("Exposure index"),
N_("Indicates the exposure index selected on the camera or " N_("Indicates the exposure index selected on the camera or "
"input device at the time the image is captured."), "input device at the time the image is captured."),
exifIfdId, captureCond, unsignedRational, 1, printValue), exifId, captureCond, unsignedRational, 1, printValue),
TagInfo(0xa217, "SensingMethod", N_("Sensing Method"), TagInfo(0xa217, "SensingMethod", N_("Sensing Method"),
N_("Indicates the image sensor type on the camera or input device."), N_("Indicates the image sensor type on the camera or input device."),
exifIfdId, captureCond, unsignedShort, 1, print0xa217), exifId, captureCond, unsignedShort, 1, print0xa217),
TagInfo(0xa300, "FileSource", N_("File Source"), TagInfo(0xa300, "FileSource", N_("File Source"),
N_("Indicates the image source. If a DSC recorded the image, " N_("Indicates the image source. If a DSC recorded the image, "
"this tag value of this tag always be set to 3, indicating " "this tag value of this tag always be set to 3, indicating "
"that the image was recorded on a DSC."), "that the image was recorded on a DSC."),
exifIfdId, captureCond, undefined, 1, print0xa300), exifId, captureCond, undefined, 1, print0xa300),
TagInfo(0xa301, "SceneType", N_("Scene Type"), TagInfo(0xa301, "SceneType", N_("Scene Type"),
N_("Indicates the type of scene. If a DSC recorded the image, " N_("Indicates the type of scene. If a DSC recorded the image, "
"this tag value must always be set to 1, indicating that the " "this tag value must always be set to 1, indicating that the "
"image was directly photographed."), "image was directly photographed."),
exifIfdId, captureCond, undefined, 1, print0xa301), exifId, captureCond, undefined, 1, print0xa301),
TagInfo(0xa302, "CFAPattern", N_("Color Filter Array Pattern"), TagInfo(0xa302, "CFAPattern", N_("Color Filter Array Pattern"),
N_("Indicates the color filter array (CFA) geometric pattern of the " N_("Indicates the color filter array (CFA) geometric pattern of the "
"image sensor when a one-chip color area sensor is used. " "image sensor when a one-chip color area sensor is used. "
"It does not apply to all sensing methods."), "It does not apply to all sensing methods."),
exifIfdId, captureCond, undefined, 0, printValue), exifId, captureCond, undefined, 0, printValue),
TagInfo(0xa401, "CustomRendered", N_("Custom Rendered"), TagInfo(0xa401, "CustomRendered", N_("Custom Rendered"),
N_("This tag indicates the use of special processing on image " N_("This tag indicates the use of special processing on image "
"data, such as rendering geared to output. When special " "data, such as rendering geared to output. When special "
"processing is performed, the reader is expected to disable " "processing is performed, the reader is expected to disable "
"or minimize any further processing."), "or minimize any further processing."),
exifIfdId, captureCond, unsignedShort, 1, print0xa401), exifId, captureCond, unsignedShort, 1, print0xa401),
TagInfo(0xa402, "ExposureMode", N_("Exposure Mode"), TagInfo(0xa402, "ExposureMode", N_("Exposure Mode"),
N_("This tag indicates the exposure mode set when the image was " N_("This tag indicates the exposure mode set when the image was "
"shot. In auto-bracketing mode, the camera shoots a series of " "shot. In auto-bracketing mode, the camera shoots a series of "
"frames of the same scene at different exposure settings."), "frames of the same scene at different exposure settings."),
exifIfdId, captureCond, unsignedShort, 1, print0xa402), exifId, captureCond, unsignedShort, 1, print0xa402),
TagInfo(0xa403, "WhiteBalance", N_("White Balance"), TagInfo(0xa403, "WhiteBalance", N_("White Balance"),
N_("This tag indicates the white balance mode set when the image was shot."), N_("This tag indicates the white balance mode set when the image was shot."),
exifIfdId, captureCond, unsignedShort, 1, print0xa403), exifId, captureCond, unsignedShort, 1, print0xa403),
TagInfo(0xa404, "DigitalZoomRatio", N_("Digital Zoom Ratio"), TagInfo(0xa404, "DigitalZoomRatio", N_("Digital Zoom Ratio"),
N_("This tag indicates the digital zoom ratio when the image was " N_("This tag indicates the digital zoom ratio when the image was "
"shot. If the numerator of the recorded value is 0, this " "shot. If the numerator of the recorded value is 0, this "
"indicates that digital zoom was not used."), "indicates that digital zoom was not used."),
exifIfdId, captureCond, unsignedRational, 1, print0xa404), exifId, captureCond, unsignedRational, 1, print0xa404),
TagInfo(0xa405, "FocalLengthIn35mmFilm", N_("Focal Length In 35mm Film"), TagInfo(0xa405, "FocalLengthIn35mmFilm", N_("Focal Length In 35mm Film"),
N_("This tag indicates the equivalent focal length assuming a " N_("This tag indicates the equivalent focal length assuming a "
"35mm film camera, in mm. A value of 0 means the focal " "35mm film camera, in mm. A value of 0 means the focal "
"length is unknown. Note that this tag differs from the " "length is unknown. Note that this tag differs from the "
"<FocalLength> tag."), "<FocalLength> tag."),
exifIfdId, captureCond, unsignedShort, 1, print0xa405), exifId, captureCond, unsignedShort, 1, print0xa405),
TagInfo(0xa406, "SceneCaptureType", N_("Scene Capture Type"), TagInfo(0xa406, "SceneCaptureType", N_("Scene Capture Type"),
N_("This tag indicates the type of scene that was shot. It can " N_("This tag indicates the type of scene that was shot. It can "
"also be used to record the mode in which the image was " "also be used to record the mode in which the image was "
"shot. Note that this differs from the <SceneType> tag."), "shot. Note that this differs from the <SceneType> tag."),
exifIfdId, captureCond, unsignedShort, 1, print0xa406), exifId, captureCond, unsignedShort, 1, print0xa406),
TagInfo(0xa407, "GainControl", N_("Gain Control"), TagInfo(0xa407, "GainControl", N_("Gain Control"),
N_("This tag indicates the degree of overall image gain adjustment."), N_("This tag indicates the degree of overall image gain adjustment."),
exifIfdId, captureCond, unsignedShort, 1, print0xa407), exifId, captureCond, unsignedShort, 1, print0xa407),
TagInfo(0xa408, "Contrast", N_("Contrast"), TagInfo(0xa408, "Contrast", N_("Contrast"),
N_("This tag indicates the direction of contrast processing " N_("This tag indicates the direction of contrast processing "
"applied by the camera when the image was shot."), "applied by the camera when the image was shot."),
exifIfdId, captureCond, unsignedShort, 1, printNormalSoftHard), exifId, captureCond, unsignedShort, 1, printNormalSoftHard),
TagInfo(0xa409, "Saturation", N_("Saturation"), TagInfo(0xa409, "Saturation", N_("Saturation"),
N_("This tag indicates the direction of saturation processing " N_("This tag indicates the direction of saturation processing "
"applied by the camera when the image was shot."), "applied by the camera when the image was shot."),
exifIfdId, captureCond, unsignedShort, 1, print0xa409), exifId, captureCond, unsignedShort, 1, print0xa409),
TagInfo(0xa40a, "Sharpness", N_("Sharpness"), TagInfo(0xa40a, "Sharpness", N_("Sharpness"),
N_("This tag indicates the direction of sharpness processing " N_("This tag indicates the direction of sharpness processing "
"applied by the camera when the image was shot."), "applied by the camera when the image was shot."),
exifIfdId, captureCond, unsignedShort, 1, printNormalSoftHard), exifId, captureCond, unsignedShort, 1, printNormalSoftHard),
TagInfo(0xa40b, "DeviceSettingDescription", N_("Device Setting Description"), TagInfo(0xa40b, "DeviceSettingDescription", N_("Device Setting Description"),
N_("This tag indicates information on the picture-taking " N_("This tag indicates information on the picture-taking "
"conditions of a particular camera model. The tag is used " "conditions of a particular camera model. The tag is used "
"only to indicate the picture-taking conditions in the reader."), "only to indicate the picture-taking conditions in the reader."),
exifIfdId, captureCond, undefined, 0, printValue), exifId, captureCond, undefined, 0, printValue),
TagInfo(0xa40c, "SubjectDistanceRange", N_("Subject Distance Range"), TagInfo(0xa40c, "SubjectDistanceRange", N_("Subject Distance Range"),
N_("This tag indicates the distance to the subject."), N_("This tag indicates the distance to the subject."),
exifIfdId, captureCond, unsignedShort, 1, print0xa40c), exifId, captureCond, unsignedShort, 1, print0xa40c),
TagInfo(0xa420, "ImageUniqueID", N_("Image Unique ID"), TagInfo(0xa420, "ImageUniqueID", N_("Image Unique ID"),
N_("This tag indicates an identifier assigned uniquely to " N_("This tag indicates an identifier assigned uniquely to "
"each image. It is recorded as an ASCII string equivalent " "each image. It is recorded as an ASCII string equivalent "
"to hexadecimal notation and 128-bit fixed length."), "to hexadecimal notation and 128-bit fixed length."),
exifIfdId, otherTags, asciiString, 33, printValue), exifId, otherTags, asciiString, 33, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownExifTag)", N_("Unknown Exif tag"), TagInfo(0xffff, "(UnknownExifTag)", N_("Unknown Exif tag"),
N_("Unknown Exif tag"), N_("Unknown Exif tag"),
exifIfdId, sectionIdNotSet, asciiString, -1, printValue) exifId, sectionIdNotSet, asciiString, -1, printValue)
}; };
const TagInfo* exifTagList() const TagInfo* exifTagList()
@ -1683,11 +1683,11 @@ namespace Exiv2 {
"present. (Note: The <GPSVersionID> tag is given in bytes, " "present. (Note: The <GPSVersionID> tag is given in bytes, "
"unlike the <ExifVersion> tag. When the version is " "unlike the <ExifVersion> tag. When the version is "
"2.0.0.0, the tag value is 02000000.H)."), "2.0.0.0, the tag value is 02000000.H)."),
gpsIfdId, gpsTags, unsignedByte, 4, print0x0000), gpsId, gpsTags, unsignedByte, 4, print0x0000),
TagInfo(0x0001, "GPSLatitudeRef", N_("GPS Latitude Reference"), TagInfo(0x0001, "GPSLatitudeRef", N_("GPS Latitude Reference"),
N_("Indicates whether the latitude is north or south latitude. The " N_("Indicates whether the latitude is north or south latitude. The "
"ASCII value 'N' indicates north latitude, and 'S' is south latitude."), "ASCII value 'N' indicates north latitude, and 'S' is south latitude."),
gpsIfdId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLatitudeRef)), gpsId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLatitudeRef)),
TagInfo(0x0002, "GPSLatitude", N_("GPS Latitude"), TagInfo(0x0002, "GPSLatitude", N_("GPS Latitude"),
N_("Indicates the latitude. The latitude is expressed as three " N_("Indicates the latitude. The latitude is expressed as three "
"RATIONAL values giving the degrees, minutes, and seconds, " "RATIONAL values giving the degrees, minutes, and seconds, "
@ -1695,11 +1695,11 @@ namespace Exiv2 {
"the format is dd/1,mm/1,ss/1. When degrees and minutes are used " "the format is dd/1,mm/1,ss/1. When degrees and minutes are used "
"and, for example, fractions of minutes are given up to two " "and, for example, fractions of minutes are given up to two "
"decimal places, the format is dd/1,mmmm/100,0/1."), "decimal places, the format is dd/1,mmmm/100,0/1."),
gpsIfdId, gpsTags, unsignedRational, 3, printDegrees), gpsId, gpsTags, unsignedRational, 3, printDegrees),
TagInfo(0x0003, "GPSLongitudeRef", N_("GPS Longitude Reference"), TagInfo(0x0003, "GPSLongitudeRef", N_("GPS Longitude Reference"),
N_("Indicates whether the longitude is east or west longitude. " N_("Indicates whether the longitude is east or west longitude. "
"ASCII 'E' indicates east longitude, and 'W' is west longitude."), "ASCII 'E' indicates east longitude, and 'W' is west longitude."),
gpsIfdId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLongitudeRef)), gpsId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLongitudeRef)),
TagInfo(0x0004, "GPSLongitude", N_("GPS Longitude"), TagInfo(0x0004, "GPSLongitude", N_("GPS Longitude"),
N_("Indicates the longitude. The longitude is expressed as three " N_("Indicates the longitude. The longitude is expressed as three "
"RATIONAL values giving the degrees, minutes, and seconds, " "RATIONAL values giving the degrees, minutes, and seconds, "
@ -1707,7 +1707,7 @@ namespace Exiv2 {
"the format is ddd/1,mm/1,ss/1. When degrees and minutes are " "the format is ddd/1,mm/1,ss/1. When degrees and minutes are "
"used and, for example, fractions of minutes are given up to " "used and, for example, fractions of minutes are given up to "
"two decimal places, the format is ddd/1,mmmm/100,0/1."), "two decimal places, the format is ddd/1,mmmm/100,0/1."),
gpsIfdId, gpsTags, unsignedRational, 3, printDegrees), gpsId, gpsTags, unsignedRational, 3, printDegrees),
TagInfo(0x0005, "GPSAltitudeRef", N_("GPS Altitude Reference"), TagInfo(0x0005, "GPSAltitudeRef", N_("GPS Altitude Reference"),
N_("Indicates the altitude used as the reference altitude. If the " N_("Indicates the altitude used as the reference altitude. If the "
"reference is sea level and the altitude is above sea level, 0 " "reference is sea level and the altitude is above sea level, 0 "
@ -1715,67 +1715,67 @@ namespace Exiv2 {
"and the altitude is indicated as an absolute value in the " "and the altitude is indicated as an absolute value in the "
"GSPAltitude tag. The reference unit is meters. Note that this tag " "GSPAltitude tag. The reference unit is meters. Note that this tag "
"is BYTE type, unlike other reference tags."), "is BYTE type, unlike other reference tags."),
gpsIfdId, gpsTags, unsignedByte, 1, print0x0005), gpsId, gpsTags, unsignedByte, 1, print0x0005),
TagInfo(0x0006, "GPSAltitude", N_("GPS Altitude"), TagInfo(0x0006, "GPSAltitude", N_("GPS Altitude"),
N_("Indicates the altitude based on the reference in GPSAltitudeRef. " N_("Indicates the altitude based on the reference in GPSAltitudeRef. "
"Altitude is expressed as one RATIONAL value. The reference unit is meters."), "Altitude is expressed as one RATIONAL value. The reference unit is meters."),
gpsIfdId, gpsTags, unsignedRational, 1, print0x0006), gpsId, gpsTags, unsignedRational, 1, print0x0006),
TagInfo(0x0007, "GPSTimeStamp", N_("GPS Time Stamp"), TagInfo(0x0007, "GPSTimeStamp", N_("GPS Time Stamp"),
N_("Indicates the time as UTC (Coordinated Universal Time). " N_("Indicates the time as UTC (Coordinated Universal Time). "
"<TimeStamp> is expressed as three RATIONAL values " "<TimeStamp> is expressed as three RATIONAL values "
"giving the hour, minute, and second (atomic clock)."), "giving the hour, minute, and second (atomic clock)."),
gpsIfdId, gpsTags, unsignedRational, 3, print0x0007), gpsId, gpsTags, unsignedRational, 3, print0x0007),
TagInfo(0x0008, "GPSSatellites", N_("GPS Satellites"), TagInfo(0x0008, "GPSSatellites", N_("GPS Satellites"),
N_("Indicates the GPS satellites used for measurements. This tag can be used " N_("Indicates the GPS satellites used for measurements. This tag can be used "
"to describe the number of satellites, their ID number, angle of elevation, " "to describe the number of satellites, their ID number, angle of elevation, "
"azimuth, SNR and other information in ASCII notation. The format is not " "azimuth, SNR and other information in ASCII notation. The format is not "
"specified. If the GPS receiver is incapable of taking measurements, value " "specified. If the GPS receiver is incapable of taking measurements, value "
"of the tag is set to NULL."), "of the tag is set to NULL."),
gpsIfdId, gpsTags, asciiString, 0, printValue), gpsId, gpsTags, asciiString, 0, printValue),
TagInfo(0x0009, "GPSStatus", N_("GPS Status"), TagInfo(0x0009, "GPSStatus", N_("GPS Status"),
N_("Indicates the status of the GPS receiver when the image is recorded. " N_("Indicates the status of the GPS receiver when the image is recorded. "
"\"A\" means measurement is in progress, and \"V\" means the measurement " "\"A\" means measurement is in progress, and \"V\" means the measurement "
"is Interoperability."), "is Interoperability."),
gpsIfdId, gpsTags, asciiString, 2, print0x0009), gpsId, gpsTags, asciiString, 2, print0x0009),
TagInfo(0x000a, "GPSMeasureMode", N_("GPS Measure Mode"), TagInfo(0x000a, "GPSMeasureMode", N_("GPS Measure Mode"),
N_("Indicates the GPS measurement mode. \"2\" means two-dimensional measurement and \"3\" " N_("Indicates the GPS measurement mode. \"2\" means two-dimensional measurement and \"3\" "
"means three-dimensional measurement is in progress."), "means three-dimensional measurement is in progress."),
gpsIfdId, gpsTags, asciiString, 2, print0x000a), gpsId, gpsTags, asciiString, 2, print0x000a),
TagInfo(0x000b, "GPSDOP", N_("GPS Data Degree of Precision"), TagInfo(0x000b, "GPSDOP", N_("GPS Data Degree of Precision"),
N_("Indicates the GPS DOP (data degree of precision). An HDOP value is written " N_("Indicates the GPS DOP (data degree of precision). An HDOP value is written "
"during two-dimensional measurement, and PDOP during three-dimensional measurement."), "during two-dimensional measurement, and PDOP during three-dimensional measurement."),
gpsIfdId, gpsTags, unsignedRational, 1, printValue), gpsId, gpsTags, unsignedRational, 1, printValue),
TagInfo(0x000c, "GPSSpeedRef", N_("GPS Speed Reference"), TagInfo(0x000c, "GPSSpeedRef", N_("GPS Speed Reference"),
N_("Indicates the unit used to express the GPS receiver speed of movement. " N_("Indicates the unit used to express the GPS receiver speed of movement. "
"\"K\" \"M\" and \"N\" represents kilometers per hour, miles per hour, and knots."), "\"K\" \"M\" and \"N\" represents kilometers per hour, miles per hour, and knots."),
gpsIfdId, gpsTags, asciiString, 2, print0x000c), gpsId, gpsTags, asciiString, 2, print0x000c),
TagInfo(0x000d, "GPSSpeed", N_("GPS Speed"), TagInfo(0x000d, "GPSSpeed", N_("GPS Speed"),
N_("Indicates the speed of GPS receiver movement."), N_("Indicates the speed of GPS receiver movement."),
gpsIfdId, gpsTags, unsignedRational, 1, printValue), gpsId, gpsTags, unsignedRational, 1, printValue),
TagInfo(0x000e, "GPSTrackRef", N_("GPS Track Ref"), TagInfo(0x000e, "GPSTrackRef", N_("GPS Track Ref"),
N_("Indicates the reference for giving the direction of GPS receiver movement. " N_("Indicates the reference for giving the direction of GPS receiver movement. "
"\"T\" denotes true direction and \"M\" is magnetic direction."), "\"T\" denotes true direction and \"M\" is magnetic direction."),
gpsIfdId, gpsTags, asciiString, 2, printGPSDirRef), gpsId, gpsTags, asciiString, 2, printGPSDirRef),
TagInfo(0x000f, "GPSTrack", N_("GPS Track"), TagInfo(0x000f, "GPSTrack", N_("GPS Track"),
N_("Indicates the direction of GPS receiver movement. The range of values is " N_("Indicates the direction of GPS receiver movement. The range of values is "
"from 0.00 to 359.99."), "from 0.00 to 359.99."),
gpsIfdId, gpsTags, unsignedRational, 1, printValue), gpsId, gpsTags, unsignedRational, 1, printValue),
TagInfo(0x0010, "GPSImgDirectionRef", N_("GPS Image Direction Reference"), TagInfo(0x0010, "GPSImgDirectionRef", N_("GPS Image Direction Reference"),
N_("Indicates the reference for giving the direction of the image when it is captured. " N_("Indicates the reference for giving the direction of the image when it is captured. "
"\"T\" denotes true direction and \"M\" is magnetic direction."), "\"T\" denotes true direction and \"M\" is magnetic direction."),
gpsIfdId, gpsTags, asciiString, 2, printGPSDirRef), gpsId, gpsTags, asciiString, 2, printGPSDirRef),
TagInfo(0x0011, "GPSImgDirection", N_("GPS Image Direction"), TagInfo(0x0011, "GPSImgDirection", N_("GPS Image Direction"),
N_("Indicates the direction of the image when it was captured. The range of values " N_("Indicates the direction of the image when it was captured. The range of values "
"is from 0.00 to 359.99."), "is from 0.00 to 359.99."),
gpsIfdId, gpsTags, unsignedRational, 1, printValue), gpsId, gpsTags, unsignedRational, 1, printValue),
TagInfo(0x0012, "GPSMapDatum", N_("GPS Map Datum"), TagInfo(0x0012, "GPSMapDatum", N_("GPS Map Datum"),
N_("Indicates the geodetic survey data used by the GPS receiver. If the survey data " N_("Indicates the geodetic survey data used by the GPS receiver. If the survey data "
"is restricted to Japan, the value of this tag is \"TOKYO\" or \"WGS-84\"."), "is restricted to Japan, the value of this tag is \"TOKYO\" or \"WGS-84\"."),
gpsIfdId, gpsTags, asciiString, 0, printValue), gpsId, gpsTags, asciiString, 0, printValue),
TagInfo(0x0013, "GPSDestLatitudeRef", N_("GPS Destination Latitude Refeference"), TagInfo(0x0013, "GPSDestLatitudeRef", N_("GPS Destination Latitude Refeference"),
N_("Indicates whether the latitude of the destination point is north or south latitude. " N_("Indicates whether the latitude of the destination point is north or south latitude. "
"The ASCII value \"N\" indicates north latitude, and \"S\" is south latitude."), "The ASCII value \"N\" indicates north latitude, and \"S\" is south latitude."),
gpsIfdId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLatitudeRef)), gpsId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLatitudeRef)),
TagInfo(0x0014, "GPSDestLatitude", N_("GPS Destination Latitude"), TagInfo(0x0014, "GPSDestLatitude", N_("GPS Destination Latitude"),
N_("Indicates the latitude of the destination point. The latitude is expressed as " N_("Indicates the latitude of the destination point. The latitude is expressed as "
"three RATIONAL values giving the degrees, minutes, and seconds, respectively. " "three RATIONAL values giving the degrees, minutes, and seconds, respectively. "
@ -1783,53 +1783,53 @@ namespace Exiv2 {
"be dd/1,mm/1,ss/1. When degrees and minutes are used and, for example, " "be dd/1,mm/1,ss/1. When degrees and minutes are used and, for example, "
"fractions of minutes are given up to two decimal places, the format would be " "fractions of minutes are given up to two decimal places, the format would be "
"dd/1,mmmm/100,0/1."), "dd/1,mmmm/100,0/1."),
gpsIfdId, gpsTags, unsignedRational, 3, printDegrees), gpsId, gpsTags, unsignedRational, 3, printDegrees),
TagInfo(0x0015, "GPSDestLongitudeRef", N_("GPS Destination Longitude Reference"), TagInfo(0x0015, "GPSDestLongitudeRef", N_("GPS Destination Longitude Reference"),
N_("Indicates whether the longitude of the destination point is east or west longitude. " N_("Indicates whether the longitude of the destination point is east or west longitude. "
"ASCII \"E\" indicates east longitude, and \"W\" is west longitude."), "ASCII \"E\" indicates east longitude, and \"W\" is west longitude."),
gpsIfdId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLongitudeRef)), gpsId, gpsTags, asciiString, 2, EXV_PRINT_TAG(exifGPSLongitudeRef)),
TagInfo(0x0016, "GPSDestLongitude", N_("GPS Destination Longitude"), TagInfo(0x0016, "GPSDestLongitude", N_("GPS Destination Longitude"),
N_("Indicates the longitude of the destination point. The longitude is expressed " N_("Indicates the longitude of the destination point. The longitude is expressed "
"as three RATIONAL values giving the degrees, minutes, and seconds, respectively. " "as three RATIONAL values giving the degrees, minutes, and seconds, respectively. "
"If longitude is expressed as degrees, minutes and seconds, a typical format would be " "If longitude is expressed as degrees, minutes and seconds, a typical format would be "
"ddd/1,mm/1,ss/1. When degrees and minutes are used and, for example, fractions of " "ddd/1,mm/1,ss/1. When degrees and minutes are used and, for example, fractions of "
"minutes are given up to two decimal places, the format would be ddd/1,mmmm/100,0/1."), "minutes are given up to two decimal places, the format would be ddd/1,mmmm/100,0/1."),
gpsIfdId, gpsTags, unsignedRational, 3, printDegrees), gpsId, gpsTags, unsignedRational, 3, printDegrees),
TagInfo(0x0017, "GPSDestBearingRef", N_("GPS Destination Bearing Reference"), TagInfo(0x0017, "GPSDestBearingRef", N_("GPS Destination Bearing Reference"),
N_("Indicates the reference used for giving the bearing to the destination point. " N_("Indicates the reference used for giving the bearing to the destination point. "
"\"T\" denotes true direction and \"M\" is magnetic direction."), "\"T\" denotes true direction and \"M\" is magnetic direction."),
gpsIfdId, gpsTags, asciiString, 2, printGPSDirRef), gpsId, gpsTags, asciiString, 2, printGPSDirRef),
TagInfo(0x0018, "GPSDestBearing", N_("GPS Destination Bearing"), TagInfo(0x0018, "GPSDestBearing", N_("GPS Destination Bearing"),
N_("Indicates the bearing to the destination point. The range of values is from " N_("Indicates the bearing to the destination point. The range of values is from "
"0.00 to 359.99."), "0.00 to 359.99."),
gpsIfdId, gpsTags, unsignedRational, 1, printValue), gpsId, gpsTags, unsignedRational, 1, printValue),
TagInfo(0x0019, "GPSDestDistanceRef", N_("GPS Destination Distance Reference"), TagInfo(0x0019, "GPSDestDistanceRef", N_("GPS Destination Distance Reference"),
N_("Indicates the unit used to express the distance to the destination point. " N_("Indicates the unit used to express the distance to the destination point. "
"\"K\", \"M\" and \"N\" represent kilometers, miles and knots."), "\"K\", \"M\" and \"N\" represent kilometers, miles and knots."),
gpsIfdId, gpsTags, asciiString, 2, print0x0019), gpsId, gpsTags, asciiString, 2, print0x0019),
TagInfo(0x001a, "GPSDestDistance", N_("GPS Destination Distance"), TagInfo(0x001a, "GPSDestDistance", N_("GPS Destination Distance"),
N_("Indicates the distance to the destination point."), N_("Indicates the distance to the destination point."),
gpsIfdId, gpsTags, unsignedRational, 1, printValue), gpsId, gpsTags, unsignedRational, 1, printValue),
TagInfo(0x001b, "GPSProcessingMethod", N_("GPS Processing Method"), TagInfo(0x001b, "GPSProcessingMethod", N_("GPS Processing Method"),
N_("A character string recording the name of the method used for location finding. " N_("A character string recording the name of the method used for location finding. "
"The first byte indicates the character code used, and this is followed by the name " "The first byte indicates the character code used, and this is followed by the name "
"of the method."), "of the method."),
gpsIfdId, gpsTags, undefined, 0, printValue), gpsId, gpsTags, undefined, 0, printValue),
TagInfo(0x001c, "GPSAreaInformation", N_("GPS Area Information"), TagInfo(0x001c, "GPSAreaInformation", N_("GPS Area Information"),
N_("A character string recording the name of the GPS area. The first byte indicates " N_("A character string recording the name of the GPS area. The first byte indicates "
"the character code used, and this is followed by the name of the GPS area."), "the character code used, and this is followed by the name of the GPS area."),
gpsIfdId, gpsTags, undefined, 0, printValue), gpsId, gpsTags, undefined, 0, printValue),
TagInfo(0x001d, "GPSDateStamp", N_("GPS Date Stamp"), TagInfo(0x001d, "GPSDateStamp", N_("GPS Date Stamp"),
N_("A character string recording date and time information relative to UTC " N_("A character string recording date and time information relative to UTC "
"(Coordinated Universal Time). The format is \"YYYY:MM:DD.\"."), "(Coordinated Universal Time). The format is \"YYYY:MM:DD.\"."),
gpsIfdId, gpsTags, asciiString, 11, printValue), gpsId, gpsTags, asciiString, 11, printValue),
TagInfo(0x001e, "GPSDifferential", N_("GPS Differential"), TagInfo(0x001e, "GPSDifferential", N_("GPS Differential"),
N_("Indicates whether differential correction is applied to the GPS receiver."), N_("Indicates whether differential correction is applied to the GPS receiver."),
gpsIfdId, gpsTags, unsignedShort, 1, print0x001e), gpsId, gpsTags, unsignedShort, 1, print0x001e),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownGpsTag)", N_("Unknown GPSInfo tag"), TagInfo(0xffff, "(UnknownGpsTag)", N_("Unknown GPSInfo tag"),
N_("Unknown GPSInfo tag"), N_("Unknown GPSInfo tag"),
gpsIfdId, gpsTags, asciiString, -1, printValue) gpsId, gpsTags, asciiString, -1, printValue)
}; };
const TagInfo* gpsTagList() const TagInfo* gpsTagList()
@ -1845,23 +1845,23 @@ namespace Exiv2 {
"including the termination code (NULL). see the separate " "including the termination code (NULL). see the separate "
"volume of Recommended Exif Interoperability Rules (ExifR98) " "volume of Recommended Exif Interoperability Rules (ExifR98) "
"for other tags used for ExifR98."), "for other tags used for ExifR98."),
iopIfdId, iopTags, asciiString, 0, printValue), iopId, iopTags, asciiString, 0, printValue),
TagInfo(0x0002, "InteroperabilityVersion", N_("Interoperability Version"), TagInfo(0x0002, "InteroperabilityVersion", N_("Interoperability Version"),
N_("Interoperability version"), N_("Interoperability version"),
iopIfdId, iopTags, undefined, -1, printExifVersion), iopId, iopTags, undefined, -1, printExifVersion),
TagInfo(0x1000, "RelatedImageFileFormat", N_("Related Image File Format"), TagInfo(0x1000, "RelatedImageFileFormat", N_("Related Image File Format"),
N_("File format of image file"), N_("File format of image file"),
iopIfdId, iopTags, asciiString, 0, printValue), iopId, iopTags, asciiString, 0, printValue),
TagInfo(0x1001, "RelatedImageWidth", N_("Related Image Width"), TagInfo(0x1001, "RelatedImageWidth", N_("Related Image Width"),
N_("Image width"), N_("Image width"),
iopIfdId, iopTags, unsignedLong, 1, printValue), iopId, iopTags, unsignedLong, 1, printValue),
TagInfo(0x1002, "RelatedImageLength", N_("Related Image Length"), TagInfo(0x1002, "RelatedImageLength", N_("Related Image Length"),
N_("Image height"), N_("Image height"),
iopIfdId, iopTags, unsignedLong, 1, printValue), iopId, iopTags, unsignedLong, 1, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownIopTag)", N_("Unknown Exif Interoperability tag"), TagInfo(0xffff, "(UnknownIopTag)", N_("Unknown Exif Interoperability tag"),
N_("Unknown Exif Interoperability tag"), N_("Unknown Exif Interoperability tag"),
iopIfdId, iopTags, asciiString, -1, printValue) iopId, iopTags, asciiString, -1, printValue)
}; };
const TagInfo* iopTagList() const TagInfo* iopTagList()
@ -1873,14 +1873,14 @@ namespace Exiv2 {
static const TagInfo mnTagInfo[] = { static const TagInfo mnTagInfo[] = {
TagInfo(0x0001, "Offset", N_("Offset"), TagInfo(0x0001, "Offset", N_("Offset"),
N_("Offset of the makernote from the start of the TIFF header."), N_("Offset of the makernote from the start of the TIFF header."),
mnIfdId, makerTags, unsignedLong, 1, printValue), mnId, makerTags, unsignedLong, 1, printValue),
TagInfo(0x0002, "ByteOrder", N_("Byte Order"), TagInfo(0x0002, "ByteOrder", N_("Byte Order"),
N_("Byte order used to encode MakerNote tags, 'MM' (big-endian) or 'II' (little-endian)."), N_("Byte order used to encode MakerNote tags, 'MM' (big-endian) or 'II' (little-endian)."),
mnIfdId, makerTags, asciiString, 0, printValue), mnId, makerTags, asciiString, 0, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownMnTag)", N_("Unknown Exiv2 Makernote info tag"), TagInfo(0xffff, "(UnknownMnTag)", N_("Unknown Exiv2 Makernote info tag"),
N_("Unknown Exiv2 Makernote info tag"), N_("Unknown Exiv2 Makernote info tag"),
mnIfdId, makerTags, asciiString, -1, printValue) mnId, makerTags, asciiString, -1, printValue)
}; };
const TagInfo* mnTagList() const TagInfo* mnTagList()
@ -1898,10 +1898,10 @@ namespace Exiv2 {
return os << value; return os << value;
} }
IfdId ifdIdByIfdItem(const std::string& ifdItem) IfdId groupId(const std::string& groupName)
{ {
IfdId ifdId = ifdIdNotSet; IfdId ifdId = ifdIdNotSet;
const GroupInfo* ii = find(groupInfo, GroupInfo::Item(ifdItem)); const GroupInfo* ii = find(groupInfo, GroupInfo::GroupName(groupName));
if (ii != 0) ifdId = static_cast<IfdId>(ii->ifdId_); if (ii != 0) ifdId = static_cast<IfdId>(ii->ifdId_);
return ifdId; return ifdId;
} }
@ -1909,22 +1909,22 @@ namespace Exiv2 {
const char* ifdName(IfdId ifdId) const char* ifdName(IfdId ifdId)
{ {
const GroupInfo* ii = find(groupInfo, ifdId); const GroupInfo* ii = find(groupInfo, ifdId);
if (ii == 0) return groupInfo[0].name_; if (ii == 0) return groupInfo[0].ifdName_;
return ii->name_; return ii->ifdName_;
} // ifdName } // ifdName
const char* ifdItem(IfdId ifdId) const char* groupName(IfdId ifdId)
{ {
const GroupInfo* ii = find(groupInfo, ifdId); const GroupInfo* ii = find(groupInfo, ifdId);
if (ii == 0) return groupInfo[0].item_; if (ii == 0) return groupInfo[0].groupName_;
return ii->item_; return ii->groupName_;
} // ifdItem } // groupName
bool isMakerIfd(IfdId ifdId) bool isMakerIfd(IfdId ifdId)
{ {
bool rc = false; bool rc = false;
const GroupInfo* ii = find(groupInfo, ifdId); const GroupInfo* ii = find(groupInfo, ifdId);
if (ii != 0 && 0 == strcmp(ii->name_, "Makernote")) { if (ii != 0 && 0 == strcmp(ii->ifdName_, "Makernote")) {
rc = true; rc = true;
} }
return rc; return rc;
@ -1935,9 +1935,9 @@ namespace Exiv2 {
bool rc; bool rc;
switch (ifdId) { switch (ifdId) {
case ifd0Id: case ifd0Id:
case exifIfdId: case exifId:
case gpsIfdId: case gpsId:
case iopIfdId: case iopId:
case ifd1Id: case ifd1Id:
case ifd2Id: case ifd2Id:
case ifd3Id: case ifd3Id:
@ -1950,7 +1950,7 @@ namespace Exiv2 {
case subImage7Id: case subImage7Id:
case subImage8Id: case subImage8Id:
case subImage9Id: case subImage9Id:
case panaRawIfdId: rc = true; break; case panaRawId: rc = true; break;
default: rc = false; break; default: rc = false; break;
} }
return rc; return rc;
@ -2591,9 +2591,9 @@ namespace Exiv2 {
namespace Exiv2 { namespace Exiv2 {
//! @cond IGNORE //! @cond IGNORE
GroupInfo::Item::Item(const std::string& item) GroupInfo::GroupName::GroupName(const std::string& groupName)
{ {
i_ = item; g_ = groupName;
} }
//! @endcond //! @endcond
@ -2602,9 +2602,9 @@ namespace Exiv2 {
return ifdId_ == ifdId; return ifdId_ == ifdId;
} }
bool GroupInfo::operator==(const Item& item) const bool GroupInfo::operator==(const GroupName& groupName) const
{ {
return 0 == strcmp(item.i_.c_str(), item_); return 0 == strcmp(groupName.g_.c_str(), groupName_);
} }
TagInfo::TagInfo( TagInfo::TagInfo(
@ -2628,22 +2628,22 @@ namespace Exiv2 {
return groupInfo + 1; // +1 to skip the first (ifdIdNotSet) entry return groupInfo + 1; // +1 to skip the first (ifdIdNotSet) entry
} }
const TagInfo* ExifTags::tagList(const std::string& group) const TagInfo* ExifTags::tagList(const std::string& groupName)
{ {
const GroupInfo* ii = find(groupInfo, GroupInfo::Item(group)); const GroupInfo* ii = find(groupInfo, GroupInfo::GroupName(groupName));
if (ii == 0 || ii->tagList_ == 0) return 0; if (ii == 0 || ii->tagList_ == 0) return 0;
return ii->tagList_(); return ii->tagList_();
} // ExifTags::tagList } // ExifTags::tagList
bool ExifTags::isMakerGroup(const std::string& group) bool ExifTags::isMakerGroup(const std::string& groupName)
{ {
IfdId ifdId = Internal::ifdIdByIfdItem(group); IfdId ifdId = Internal::groupId(groupName);
return Internal::isMakerIfd(ifdId); return Internal::isMakerIfd(ifdId);
} }
bool ExifTags::isExifGroup(const std::string& group) bool ExifTags::isExifGroup(const std::string& groupName)
{ {
IfdId ifdId = Internal::ifdIdByIfdItem(group); IfdId ifdId = Internal::groupId(groupName);
return Internal::isExifIfd(ifdId); return Internal::isExifIfd(ifdId);
} }
@ -2663,9 +2663,9 @@ namespace Exiv2 {
} }
} // ExifTags::taglist } // ExifTags::taglist
void ExifTags::taglist(std::ostream& os, const std::string& group) void ExifTags::taglist(std::ostream& os, const std::string& groupName)
{ {
IfdId ifdId = Internal::ifdIdByIfdItem(group); IfdId ifdId = Internal::groupId(groupName);
Internal::taglist(os, ifdId); Internal::taglist(os, ifdId);
} }
@ -2680,7 +2680,7 @@ namespace Exiv2 {
//@{ //@{
/*! /*!
@brief Set the key corresponding to the \em tag, \em ifdId and \em tagInfo. @brief Set the key corresponding to the \em tag, \em ifdId and \em tagInfo.
The key is of the form '<b>Exif</b>.ifdItem.tagName'. The key is of the form '<b>Exif</b>.groupName.tagName'.
*/ */
void makeKey(uint16_t tag, IfdId ifdId, const TagInfo* tagInfo); void makeKey(uint16_t tag, IfdId ifdId, const TagInfo* tagInfo);
/*! /*!
@ -2706,7 +2706,7 @@ namespace Exiv2 {
uint16_t tag_; //!< Tag value uint16_t tag_; //!< Tag value
IfdId ifdId_; //!< The IFD associated with this tag IfdId ifdId_; //!< The IFD associated with this tag
int idx_; //!< Unique id of the Exif key in the image int idx_; //!< Unique id of the Exif key in the image
std::string ifdItem_; //!< The IFD item std::string groupName_; //!< The group name
std::string key_; //!< %Key std::string key_; //!< %Key
}; };
@ -2740,13 +2740,13 @@ namespace Exiv2 {
std::string::size_type pos0 = pos1 + 1; std::string::size_type pos0 = pos1 + 1;
pos1 = key.find('.', pos0); pos1 = key.find('.', pos0);
if (pos1 == std::string::npos) throw Error(6, key); if (pos1 == std::string::npos) throw Error(6, key);
std::string ifdItem = key.substr(pos0, pos1 - pos0); std::string groupName = key.substr(pos0, pos1 - pos0);
if (ifdItem == "") throw Error(6, key); if (groupName == "") throw Error(6, key);
std::string tn = key.substr(pos1 + 1); std::string tn = key.substr(pos1 + 1);
if (tn == "") throw Error(6, key); if (tn == "") throw Error(6, key);
// Find IfdId // Find IfdId
IfdId ifdId = ifdIdByIfdItem(ifdItem); IfdId ifdId = groupId(groupName);
if (ifdId == ifdIdNotSet) throw Error(6, key); if (ifdId == ifdIdNotSet) throw Error(6, key);
if (!Internal::isExifIfd(ifdId) && !Internal::isMakerIfd(ifdId)) { if (!Internal::isExifIfd(ifdId) && !Internal::isMakerIfd(ifdId)) {
throw Error(6, key); throw Error(6, key);
@ -2759,9 +2759,9 @@ namespace Exiv2 {
tag_ = tag; tag_ = tag;
ifdId_ = ifdId; ifdId_ = ifdId;
ifdItem_ = ifdItem; groupName_ = groupName;
// tagName() translates hex tag name (0xabcd) to a real tag name if there is one // tagName() translates hex tag name (0xabcd) to a real tag name if there is one
key_ = familyName + "." + ifdItem + "." + tagName(); key_ = familyName + "." + groupName + "." + tagName();
} }
void ExifKey::Impl::makeKey(uint16_t tag, IfdId ifdId, const TagInfo* tagInfo) void ExifKey::Impl::makeKey(uint16_t tag, IfdId ifdId, const TagInfo* tagInfo)
@ -2771,13 +2771,13 @@ namespace Exiv2 {
tagInfo_ = tagInfo; tagInfo_ = tagInfo;
tag_ = tag; tag_ = tag;
ifdId_ = ifdId; ifdId_ = ifdId;
key_ = std::string(familyName_) + "." + ifdItem_ + "." + tagName(); key_ = std::string(familyName_) + "." + groupName_ + "." + tagName();
} }
ExifKey::ExifKey(uint16_t tag, const std::string& ifdItem) ExifKey::ExifKey(uint16_t tag, const std::string& groupName)
: p_(new Impl) : p_(new Impl)
{ {
IfdId ifdId = ifdIdByIfdItem(ifdItem); IfdId ifdId = groupId(groupName);
// Todo: Test if this condition can be removed // Todo: Test if this condition can be removed
if (!Internal::isExifIfd(ifdId) && !Internal::isMakerIfd(ifdId)) { if (!Internal::isExifIfd(ifdId) && !Internal::isMakerIfd(ifdId)) {
throw Error(23, ifdId); throw Error(23, ifdId);
@ -2786,7 +2786,7 @@ namespace Exiv2 {
if (ti == 0) { if (ti == 0) {
throw Error(23, ifdId); throw Error(23, ifdId);
} }
p_->ifdItem_ = ifdItem; p_->groupName_ = groupName;
p_->makeKey(tag, ifdId, ti); p_->makeKey(tag, ifdId, ti);
} }
@ -2797,7 +2797,7 @@ namespace Exiv2 {
if (!Internal::isExifIfd(ifdId) && !Internal::isMakerIfd(ifdId)) { if (!Internal::isExifIfd(ifdId) && !Internal::isMakerIfd(ifdId)) {
throw Error(23, ifdId); throw Error(23, ifdId);
} }
p_->ifdItem_ = ifdItem(ifdId); p_->groupName_ = Exiv2::groupName(ifdId);
p_->makeKey(tagInfo.tag_, ifdId, &tagInfo); p_->makeKey(tagInfo.tag_, ifdId, &tagInfo);
} }
@ -2842,7 +2842,7 @@ namespace Exiv2 {
std::string ExifKey::groupName() const std::string ExifKey::groupName() const
{ {
return p_->ifdItem_; // Todo: rename ifdItem to groupName return p_->groupName_;
} }
const char* ExifKey::ifdName() const const char* ExifKey::ifdName() const

@ -61,21 +61,21 @@ namespace Exiv2 {
// ***************************************************************************** // *****************************************************************************
// class definitions // class definitions
//! The details of an IFD. //! The details of an Exif group. Groups include IFDs and binary arrays.
struct EXIV2API GroupInfo { struct EXIV2API GroupInfo {
struct Item; struct GroupName;
bool operator==(int ifdId) const; //!< Comparison operator for IFD id bool operator==(int ifdId) const; //!< Comparison operator for IFD id
bool operator==(const Item& item) const; //!< Comparison operator for IFD item bool operator==(const GroupName& groupName) const; //!< Comparison operator for group name
int ifdId_; //!< IFD id int ifdId_; //!< IFD id
const char* name_; //!< IFD name const char* ifdName_; //!< IFD name
const char* item_; //!< Related IFD item. This is also an IFD name, unique for each IFD. const char* groupName_; //!< Group name, unique for each group.
TagListFct tagList_; //!< Tag list TagListFct tagList_; //!< Tag list
}; };
//! Search key to find a GroupInfo by its IFD item. //! Search key to find a GroupInfo by its group name.
struct EXIV2API GroupInfo::Item { struct EXIV2API GroupInfo::GroupName {
Item(const std::string& item); //!< Constructor GroupName(const std::string& groupName); //!< Constructor
std::string i_; //!< IFD item std::string g_; //!< Group name
}; };
//! Tag information //! Tag information
@ -115,30 +115,29 @@ namespace Exiv2 {
public: public:
//! Return read-only list of build-in groups //! Return read-only list of build-in groups
static const GroupInfo* groupList(); static const GroupInfo* groupList();
//! Return read-only list of built-in \em group tags. //! Return read-only list of built-in \em groupName tags.
static const TagInfo* tagList(const std::string& group); static const TagInfo* tagList(const std::string& groupName);
//! Print a list of all standard Exif tags to output stream //! Print a list of all standard Exif tags to output stream
static void taglist(std::ostream& os); static void taglist(std::ostream& os);
//! Print the list of tags for \em group //! Print the list of tags for \em groupName
static void taglist(std::ostream& os, const std::string& group); static void taglist(std::ostream& os, const std::string& groupName);
/*! /*!
@brief Return true if \em group is a makernote group which is @brief Return true if \em groupName is a makernote group.
a makernote group.
*/ */
static bool isMakerGroup(const std::string& group); static bool isMakerGroup(const std::string& groupName);
/*! /*!
@brief Return true if \em group is a TIFF or Exif IFD, else false. @brief Return true if \em groupName is a TIFF or Exif IFD, else false.
This is used to differentiate between standard Exif IFDs This is used to differentiate between standard Exif IFDs
and IFDs associated with the makernote. and IFDs associated with the makernote.
*/ */
static bool isExifGroup(const std::string& group); static bool isExifGroup(const std::string& groupName);
}; // class ExifTags }; // class ExifTags
/*! /*!
@brief Concrete keys for Exif metadata. @brief Concrete keys for Exif metadata and access to Exif tag reference data.
*/ */
class EXIV2API ExifKey : public Key { class EXIV2API ExifKey : public Key {
public: public:
@ -153,24 +152,23 @@ namespace Exiv2 {
@param key The key string. @param key The key string.
@throw Error if the first part of the key is not '<b>Exif</b>' or @throw Error if the first part of the key is not '<b>Exif</b>' or
the remainin parts of the key cannot be parsed and the remainin parts of the key cannot be parsed and
converted to an ifd-item and tag name. converted to a group name and tag name.
*/ */
explicit ExifKey(const std::string& key); explicit ExifKey(const std::string& key);
/*! /*!
@brief Constructor to create an Exif key from a tag and IFD item @brief Constructor to create an Exif key from the tag number and
string. group name.
@param tag The tag value @param tag The tag value
@param ifdItem The IFD string. For MakerNote tags, this must be the @param groupName The name of the group, i.e., the second part of
IFD item of the specific MakerNote. "MakerNote" is not allowed. the Exif key.
@throw Error if the key cannot be constructed from the tag and IFD @throw Error if the key cannot be constructed from the tag number
item parameters. and group name.
*/ */
ExifKey(uint16_t tag, const std::string& ifdItem); ExifKey(uint16_t tag, const std::string& groupName);
/*! /*!
@brief Constructor to create an Exif key from a tag info structure @brief Constructor to create an Exif key from a tag info structure
@param tagInfo The tag info structure @param tagInfo The tag info structure
@throw Error if the key cannot be constructed from the tag and IFD @throw Error if the key cannot be constructed from the tag info structure
item parameters.
*/ */
explicit ExifKey(const TagInfo& tagInfo); explicit ExifKey(const TagInfo& tagInfo);
//! Copy constructor //! Copy constructor
@ -193,18 +191,14 @@ namespace Exiv2 {
//@{ //@{
virtual std::string key() const; virtual std::string key() const;
virtual const char* familyName() const; virtual const char* familyName() const;
/*!
@brief Return the name of the group (the second part of the key).
For Exif keys, the group name is the IFD item.
*/
virtual std::string groupName() const; virtual std::string groupName() const;
virtual std::string tagName() const; virtual std::string tagName() const;
virtual std::string tagLabel() const; virtual std::string tagLabel() const;
//! Return the tag description. //! Return the tag description.
std::string tagDesc() const; // Todo: should be in the base class std::string tagDesc() const; // Todo: should be in the base class
//! Return the default type id for this tag. //! Return the default type id for this tag.
TypeId defaultTypeId() const; // Todo: should be in the base class TypeId defaultTypeId() const; // Todo: should be in the base class
//! Return the default number of components (not bytes!) this tag has. (0=any, -1=count not known.) //! Return the default number of components (not bytes!) this tag has. (0=any, -1=count not known)
uint16_t defaultCount() const; uint16_t defaultCount() const;
virtual uint16_t tag() const; virtual uint16_t tag() const;

@ -33,6 +33,7 @@
// ***************************************************************************** // *****************************************************************************
// included header files // included header files
#include "types.hpp" #include "types.hpp"
#include "tags.hpp"
#include "value.hpp" #include "value.hpp"
// + standard includes // + standard includes
@ -55,12 +56,12 @@ namespace Exiv2 {
enum IfdId { enum IfdId {
ifdIdNotSet, ifdIdNotSet,
ifd0Id, ifd0Id,
exifIfdId,
gpsIfdId,
iopIfdId,
ifd1Id, ifd1Id,
ifd2Id, ifd2Id,
ifd3Id, ifd3Id,
exifId,
gpsId,
iopId,
subImage1Id, subImage1Id,
subImage2Id, subImage2Id,
subImage3Id, subImage3Id,
@ -70,85 +71,86 @@ namespace Exiv2 {
subImage7Id, subImage7Id,
subImage8Id, subImage8Id,
subImage9Id, subImage9Id,
mnIfdId, panaRawId,
canonIfdId, mnId,
canonCsIfdId, canonId,
canonSiIfdId, canonCsId,
canonCfIfdId, canonSiId,
canonPiIfdId, canonCfId,
canonPaIfdId, canonPiId,
canonFiIfdId, canonPaId,
canonPrIfdId, canonFiId,
fujiIfdId, canonPrId,
minoltaIfdId, fujiId,
minoltaCs5DIfdId, minoltaId,
minoltaCs7DIfdId, minoltaCs5DId,
minoltaCsOldIfdId, minoltaCs7DId,
minoltaCsNewIfdId, minoltaCsOldId,
nikon1IfdId, minoltaCsNewId,
nikon2IfdId, nikon1Id,
nikon3IfdId, nikon2Id,
nikonPvIfdId, nikon3Id,
nikonVrIfdId, nikonPvId,
nikonPcIfdId, nikonVrId,
nikonWtIfdId, nikonPcId,
nikonIiIfdId, nikonWtId,
nikonAfIfdId, nikonIiId,
nikonAf2IfdId, nikonAfId,
nikonFiIfdId, nikonAf2Id,
nikonMeIfdId, nikonFiId,
nikonFl1IfdId, nikonMeId,
nikonFl2IfdId, nikonFl1Id,
nikonFl3IfdId, nikonFl2Id,
nikonSi1IfdId, nikonFl3Id,
nikonSi2IfdId, nikonSi1Id,
nikonSi3IfdId, nikonSi2Id,
nikonSi4IfdId, nikonSi3Id,
nikonSi5IfdId, nikonSi4Id,
nikonSi6IfdId, nikonSi5Id,
nikonLd1IfdId, nikonSi6Id,
nikonLd2IfdId, nikonLd1Id,
nikonLd3IfdId, nikonLd2Id,
nikonCb1IfdId, nikonLd3Id,
nikonCb2IfdId, nikonCb1Id,
nikonCb2aIfdId, nikonCb2Id,
nikonCb2bIfdId, nikonCb2aId,
nikonCb3IfdId, nikonCb2bId,
nikonCb4IfdId, nikonCb3Id,
olympusIfdId, nikonCb4Id,
olympus2IfdId, olympusId,
olympusCsIfdId, olympus2Id,
olympusEqIfdId, olympusCsId,
olympusRdIfdId, olympusEqId,
olympusRd2IfdId, olympusRdId,
olympusIpIfdId, olympusRd2Id,
olympusFiIfdId, olympusIpId,
olympusFe1IfdId, olympusFiId,
olympusFe2IfdId, olympusFe1Id,
olympusFe3IfdId, olympusFe2Id,
olympusFe4IfdId, olympusFe3Id,
olympusFe5IfdId, olympusFe4Id,
olympusFe6IfdId, olympusFe5Id,
olympusFe7IfdId, olympusFe6Id,
olympusFe8IfdId, olympusFe7Id,
olympusFe9IfdId, olympusFe8Id,
olympusRiIfdId, olympusFe9Id,
panasonicIfdId, olympusRiId,
panaRawIfdId, panasonicId,
pentaxIfdId, pentaxId,
sigmaIfdId, sigmaId,
sony1IfdId, sony1Id,
sony2IfdId, sony2Id,
sonyMltIfdId, sonyMltId,
sony1CsIfdId, sony1CsId,
sony1Cs2IfdId, sony1Cs2Id,
sony2CsIfdId, sony2CsId,
sony2Cs2IfdId, sony2Cs2Id,
sony1MltCs7DIfdId, sony1MltCs7DId,
sony1MltCsOldIfdId, sony1MltCsOldId,
sony1MltCsNewIfdId, sony1MltCsNewId,
sony1MltCsA100IfdId, sony1MltCsA100Id,
lastIfdId lastId,
ignoreId = lastId
}; };
/*! /*!
@ -295,12 +297,12 @@ namespace Exiv2 {
//! Return read-only list of built-in Exiv2 Makernote info tags //! Return read-only list of built-in Exiv2 Makernote info tags
const TagInfo* mnTagList(); const TagInfo* mnTagList();
//! Return the IFD id for an IFD item //! Return the group id for a group name
IfdId ifdIdByIfdItem(const std::string& ifdItem); IfdId groupId(const std::string& groupName);
//! Return the name of the IFD //! Return the name of the IFD
const char* ifdName(IfdId ifdId); const char* ifdName(IfdId ifdId);
//! Return the related image item (image or thumbnail) //! Return the group name for a group id
const char* ifdItem(IfdId ifdId); const char* groupName(IfdId ifdId);
//! Return true if \em ifdId is a makernote IFD id. (Note: returns false for makerIfd) //! Return true if \em ifdId is a makernote IFD id. (Note: returns false for makerIfd)
bool isMakerIfd(IfdId ifdId); bool isMakerIfd(IfdId ifdId);
@ -314,7 +316,7 @@ namespace Exiv2 {
//! Return the tag info for \em tag and \em ifdId //! Return the tag info for \em tag and \em ifdId
const TagInfo* tagInfo(uint16_t tag, IfdId ifdId); const TagInfo* tagInfo(uint16_t tag, IfdId ifdId);
//! Return the tag info for \em tagName and \em ifdId //! Return the tag info for \em tagName and \em ifdId
const TagInfo* tagInfo(const std::string& tagName, IfdId ifdId); // Todo: do we really need this??? const TagInfo* tagInfo(const std::string& tagName, IfdId ifdId);
/*! /*!
@brief Return the tag number for one combination of IFD id and tagName. @brief Return the tag number for one combination of IFD id and tagName.
If the tagName is not known, it expects tag names in the If the tagName is not known, it expects tag names in the

@ -61,145 +61,6 @@ namespace {
namespace Exiv2 { namespace Exiv2 {
namespace Internal { namespace Internal {
//! Structure for group and group name info
struct TiffGroupInfo {
//! Comparison operator for group (id)
bool operator==(const uint16_t& group) const;
//! Comparison operator for group name
bool operator==(const std::string& groupName) const;
uint16_t group_; //!< group
const char* name_; //!< group name
};
// Todo: This mapping table probably belongs somewhere else - move it
// Note: Names must be unique and match those in the third column of
// ExifTags::ifdInfo_[] (tags.cpp)!
//! List of groups and their names.
extern const TiffGroupInfo tiffGroupInfo[] = {
{ 1, "Image" },
{ 2, "Thumbnail" },
{ 3, "Image2" },
{ 4, "Image3" },
{ 5, "Photo" },
{ 6, "GPSInfo" },
{ 7, "Iop" },
{ 8, "SubImage1" },
{ 9, "SubImage2" },
{ 10, "SubImage3" },
{ 11, "SubImage4" },
{ 12, "SubImage5" },
{ 13, "SubImage6" },
{ 14, "SubImage7" },
{ 15, "SubImage8" },
{ 16, "SubImage9" },
{ 64, "PanasonicRaw" },
{ 256, "MakerNote" },
// 257 not needed (olympmn)
{ 258, "Fujifilm" },
{ 259, "Canon" },
{ 260, "CanonCs" },
{ 261, "CanonSi" },
{ 262, "CanonCf" },
// 263 not needed (nikonmn)
{ 264, "Nikon1" },
{ 265, "Nikon2" },
{ 266, "Nikon3" },
{ 267, "Panasonic" },
{ 268, "Sigma" },
// 269 not needed (sonymn)
{ 270, "Sony1" },
{ 271, "Sony2" },
{ 272, "Minolta" },
{ 273, "MinoltaCsOld" },
{ 274, "MinoltaCsNew" },
{ 275, "MinoltaCs5D" },
{ 276, "MinoltaCs7D" },
{ 277, "CanonPi" },
{ 278, "CanonPa" },
{ 279, "Pentax" },
{ 280, "NikonPreview" },
{ 281, "Olympus" },
{ 282, "Olympus2" },
{ 283, "OlympusCs" },
{ 284, "OlympusEq" },
{ 285, "OlympusRd" },
{ 286, "OlympusRd2" },
{ 287, "OlympusIp" },
{ 288, "OlympusFi" },
{ 289, "OlympusFe1" },
{ 290, "OlympusFe2" },
{ 291, "OlympusFe3" },
{ 292, "OlympusFe4" },
{ 293, "OlympusFe5" },
{ 294, "OlympusFe6" },
{ 295, "OlympusFe7" },
{ 296, "OlympusFe8" },
{ 297, "OlympusFe9" },
{ 298, "OlympusRi" },
{ 299, "NikonWt" },
{ 300, "NikonIi" },
{ 301, "NikonLd1" },
{ 302, "NikonLd2" },
{ 303, "NikonLd3" },
{ 304, "NikonCb1" },
{ 305, "NikonCb2" },
{ 306, "NikonCb2a" },
{ 307, "NikonCb2b" },
{ 308, "NikonCb3" },
{ 309, "NikonCb4" },
{ 310, "NikonVr" },
{ 311, "NikonPc" },
{ 312, "NikonAf" },
{ 313, "NikonSiD80" },
{ 314, "NikonSiD40" },
{ 315, "NikonSiD300a" },
{ 316, "NikonSiD300b" },
{ 317, "NikonSi02xx" },
{ 318, "NikonSi01xx" },
{ 320, "CanonFi" },
{ 330, "SonyMinolta" },
{ 331, "Sony1Cs" },
{ 332, "Sony1Cs2" },
{ 333, "Sony1MltCsOld"},
{ 334, "Sony1MltCsNew"},
{ 335, "Sony1MltCsA100" },
{ 336, "Sony1MltCs7D" },
{ 337, "Sony2Cs" },
{ 338, "Sony2Cs2" },
{ 362, "NikonFi" },
{ 363, "NikonAf2" },
{ 364, "NikonMe" },
{ 365, "NikonFl1" },
{ 366, "NikonFl2" },
{ 367, "NikonFl3" },
{ 368, "CanonPr" },
};
bool TiffGroupInfo::operator==(const uint16_t& group) const
{
return group_ == group;
}
bool TiffGroupInfo::operator==(const std::string& groupName) const
{
return 0 == strcmp(name_, groupName.c_str());
}
const char* tiffGroupName(uint16_t group)
{
const TiffGroupInfo* gi = find(tiffGroupInfo, group);
if (!gi) return "Unknown";
return gi->name_;
}
uint16_t tiffGroupId(const std::string& groupName)
{
const TiffGroupInfo* gi = find(tiffGroupInfo, groupName);
if (!gi) return 0;
return gi->group_;
}
bool TiffMappingInfo::operator==(const TiffMappingInfo::Key& key) const bool TiffMappingInfo::operator==(const TiffMappingInfo::Key& key) const
{ {
return ( 0 == strcmp("*", make_) return ( 0 == strcmp("*", make_)
@ -232,12 +93,12 @@ namespace Exiv2 {
return io_.putb(data); return io_.putb(data);
} }
TiffComponent::TiffComponent(uint16_t tag, uint16_t group) TiffComponent::TiffComponent(uint16_t tag, IfdId group)
: tag_(tag), group_(group), pStart_(0) : tag_(tag), group_(group), pStart_(0)
{ {
} }
TiffEntryBase::TiffEntryBase(uint16_t tag, uint16_t group, TiffType tiffType) TiffEntryBase::TiffEntryBase(uint16_t tag, IfdId group, TiffType tiffType)
: TiffComponent(tag, group), : TiffComponent(tag, group),
tiffType_(tiffType), count_(0), offset_(0), tiffType_(tiffType), count_(0), offset_(0),
size_(0), pData_(0), isMalloced_(false), idx_(0), size_(0), pData_(0), isMalloced_(false), idx_(0),
@ -245,19 +106,19 @@ namespace Exiv2 {
{ {
} }
TiffSubIfd::TiffSubIfd(uint16_t tag, uint16_t group, uint16_t newGroup) TiffSubIfd::TiffSubIfd(uint16_t tag, IfdId group, IfdId newGroup)
: TiffEntryBase(tag, group, ttUnsignedLong), newGroup_(newGroup) : TiffEntryBase(tag, group, ttUnsignedLong), newGroup_(newGroup)
{ {
} }
TiffMnEntry::TiffMnEntry(uint16_t tag, uint16_t group, uint16_t mnGroup) TiffMnEntry::TiffMnEntry(uint16_t tag, IfdId group, IfdId mnGroup)
: TiffEntryBase(tag, group, ttUndefined), mnGroup_(mnGroup), mn_(0) : TiffEntryBase(tag, group, ttUndefined), mnGroup_(mnGroup), mn_(0)
{ {
} }
TiffIfdMakernote::TiffIfdMakernote(uint16_t tag, TiffIfdMakernote::TiffIfdMakernote(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
MnHeader* pHeader, MnHeader* pHeader,
bool hasNext) bool hasNext)
: TiffComponent(tag, group), : TiffComponent(tag, group),
@ -269,7 +130,7 @@ namespace Exiv2 {
} }
TiffBinaryArray::TiffBinaryArray(uint16_t tag, TiffBinaryArray::TiffBinaryArray(uint16_t tag,
uint16_t group, IfdId group,
const ArrayCfg* arrayCfg, const ArrayCfg* arrayCfg,
const ArrayDef* arrayDef, const ArrayDef* arrayDef,
int defSize) int defSize)
@ -288,7 +149,7 @@ namespace Exiv2 {
} }
TiffBinaryArray::TiffBinaryArray(uint16_t tag, TiffBinaryArray::TiffBinaryArray(uint16_t tag,
uint16_t group, IfdId group,
const ArraySet* arraySet, const ArraySet* arraySet,
int setSize, int setSize,
CfgSelFct cfgSelFct) CfgSelFct cfgSelFct)
@ -308,8 +169,7 @@ namespace Exiv2 {
assert(arraySet_ != 0); assert(arraySet_ != 0);
} }
TiffBinaryElement::TiffBinaryElement(uint16_t tag, TiffBinaryElement::TiffBinaryElement(uint16_t tag, IfdId group)
uint16_t group)
: TiffEntryBase(tag, group) : TiffEntryBase(tag, group)
{ {
} }
@ -540,7 +400,7 @@ namespace Exiv2 {
if (!pValue() || !pSize) { if (!pValue() || !pSize) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Size or data offset value not set, ignoring them.\n"; << ": Size or data offset value not set, ignoring them.\n";
@ -550,7 +410,7 @@ namespace Exiv2 {
if (pValue()->count() == 0) { if (pValue()->count() == 0) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Data offset entry value is empty, ignoring it.\n"; << ": Data offset entry value is empty, ignoring it.\n";
@ -560,7 +420,7 @@ namespace Exiv2 {
if (pValue()->count() != pSize->count()) { if (pValue()->count() != pSize->count()) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Size and data offset entries have different" << ": Size and data offset entries have different"
@ -580,7 +440,7 @@ namespace Exiv2 {
- offset != size) { - offset != size) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Data area is not contiguous, ignoring it.\n"; << ": Data area is not contiguous, ignoring it.\n";
@ -592,7 +452,7 @@ namespace Exiv2 {
|| baseOffset + offset > sizeData - size) { || baseOffset + offset > sizeData - size) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Data area exceeds data buffer, ignoring it.\n"; << ": Data area exceeds data buffer, ignoring it.\n";
@ -612,7 +472,7 @@ namespace Exiv2 {
if (!pValue() || !pSize) { if (!pValue() || !pSize) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Size or data offset value not set, ignoring them.\n"; << ": Size or data offset value not set, ignoring them.\n";
@ -622,7 +482,7 @@ namespace Exiv2 {
if (pValue()->count() != pSize->count()) { if (pValue()->count() != pSize->count()) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Size and data offset entries have different" << ": Size and data offset entries have different"
@ -640,7 +500,7 @@ namespace Exiv2 {
|| baseOffset + offset > sizeData - size) { || baseOffset + offset > sizeData - size) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(group()) << "Directory " << groupName(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::setfill('0') << std::hex << tag()
<< ": Strip " << std::dec << i << ": Strip " << std::dec << i
@ -704,13 +564,13 @@ namespace Exiv2 {
return pHeader_->write(ioWrapper, byteOrder); return pHeader_->write(ioWrapper, byteOrder);
} }
uint32_t ArrayDef::size(uint16_t tag, uint16_t group) const uint32_t ArrayDef::size(uint16_t tag, IfdId group) const
{ {
TypeId typeId = toTypeId(tiffType_, tag, group); TypeId typeId = toTypeId(tiffType_, tag, group);
return count_ * TypeInfo::typeSize(typeId); return count_ * TypeInfo::typeSize(typeId);
} }
bool TiffBinaryArray::initialize(uint16_t group) bool TiffBinaryArray::initialize(IfdId group)
{ {
if (arrayCfg_ != 0) return true; // Not a complex array or already initialized if (arrayCfg_ != 0) return true; // Not a complex array or already initialized
@ -802,7 +662,7 @@ namespace Exiv2 {
// This is used to prevent duplicate entries. Sub-IFDs also, but the > 1 // This is used to prevent duplicate entries. Sub-IFDs also, but the > 1
// condition takes care of them, see below. // condition takes care of them, see below.
if ( tiffPath.size() > 1 if ( tiffPath.size() > 1
|| (tpi.extendedTag() == 0x927c && tpi.group() == Group::exif)) { || (tpi.extendedTag() == 0x927c && tpi.group() == exifId)) {
if (tpi.extendedTag() == Tag::next) { if (tpi.extendedTag() == Tag::next) {
tc = pNext_; tc = pNext_;
} }
@ -1220,7 +1080,7 @@ namespace Exiv2 {
// Number of components to write // Number of components to write
const uint32_t compCount = count(); const uint32_t compCount = count();
if (compCount > 0xffff) throw Error(49, tiffGroupName(group())); if (compCount > 0xffff) throw Error(49, groupName(group()));
// Size of next IFD, if any // Size of next IFD, if any
uint32_t sizeNext = 0; uint32_t sizeNext = 0;
@ -1234,7 +1094,7 @@ namespace Exiv2 {
// TIFF standard requires IFD entries to be sorted in ascending order by tag. // TIFF standard requires IFD entries to be sorted in ascending order by tag.
// Not sorting makernote directories sometimes preserves them better. // Not sorting makernote directories sometimes preserves them better.
if (group() < Group::mn) { if (group() < mnId) {
std::sort(components_.begin(), components_.end(), cmpTagLt); std::sort(components_.begin(), components_.end(), cmpTagLt);
} }
// Size of IFD values and additional data // Size of IFD values and additional data
@ -1436,9 +1296,9 @@ namespace Exiv2 {
{ {
uint32_t o2 = imageIdx; uint32_t o2 = imageIdx;
// For makernotes, write TIFF image data to the data area // For makernotes, write TIFF image data to the data area
if (group() > Group::mn) o2 = offset + dataIdx; if (group() > mnId) o2 = offset + dataIdx;
#ifdef DEBUG #ifdef DEBUG
std::cerr << "TiffImageEntry, Directory " << tiffGroupName(group()) std::cerr << "TiffImageEntry, Directory " << ifdItem(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::dec << std::setfill('0') << std::hex << tag() << std::dec
<< ": Writing offset " << o2 << "\n"; << ": Writing offset " << o2 << "\n";
@ -1449,7 +1309,7 @@ namespace Exiv2 {
idx += writeOffset(buf.pData_ + idx, o2, tiffType(), byteOrder); idx += writeOffset(buf.pData_ + idx, o2, tiffType(), byteOrder);
o2 += i->second; o2 += i->second;
o2 += i->second & 1; // Align strip data to word boundary o2 += i->second & 1; // Align strip data to word boundary
if (!(group() > Group::mn)) { if (!(group() > mnId)) { // Todo: FIX THIS!! SHOULDN'T USE >
imageIdx += i->second; imageIdx += i->second;
imageIdx += i->second & 1; // Align strip data to word boundary imageIdx += i->second & 1; // Align strip data to word boundary
} }
@ -1623,7 +1483,7 @@ namespace Exiv2 {
{ {
uint32_t len = 0; uint32_t len = 0;
// For makernotes, write TIFF image data to the data area // For makernotes, write TIFF image data to the data area
if (group() > Group::mn) { if (group() > mnId) { // Todo: FIX THIS HACK!!!
len = writeImage(ioWrapper, byteOrder); len = writeImage(ioWrapper, byteOrder);
} }
return len; return len;
@ -1734,7 +1594,7 @@ namespace Exiv2 {
uint32_t len = pValue()->sizeDataArea(); uint32_t len = pValue()->sizeDataArea();
if (len > 0) { if (len > 0) {
#ifdef DEBUG #ifdef DEBUG
std::cerr << "TiffImageEntry, Directory " << tiffGroupName(group()) std::cerr << "TiffImageEntry, Directory " << ifdItem(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::dec << std::setfill('0') << std::hex << tag() << std::dec
<< ": Writing data area, size = " << len; << ": Writing data area, size = " << len;
@ -1747,7 +1607,7 @@ namespace Exiv2 {
} }
else { else {
#ifdef DEBUG #ifdef DEBUG
std::cerr << "TiffImageEntry, Directory " << tiffGroupName(group()) std::cerr << "TiffImageEntry, Directory " << ifdItem(group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << tag() << std::dec << std::setfill('0') << std::hex << tag() << std::dec
<< ": Writing " << strips_.size() << " strips"; << ": Writing " << strips_.size() << " strips";
@ -1873,7 +1733,7 @@ namespace Exiv2 {
{ {
uint32_t len = 0; uint32_t len = 0;
// For makernotes, TIFF image data is written to the data area // For makernotes, TIFF image data is written to the data area
if (group() > Group::mn) { if (group() > mnId) { // Todo: Fix this hack!!
len = sizeImage(); len = sizeImage();
} }
return len; return len;
@ -1950,11 +1810,11 @@ namespace Exiv2 {
// ************************************************************************* // *************************************************************************
// free functions // free functions
TypeId toTypeId(TiffType tiffType, uint16_t tag, uint16_t group) TypeId toTypeId(TiffType tiffType, uint16_t tag, IfdId group)
{ {
TypeId ti = TypeId(tiffType); TypeId ti = TypeId(tiffType);
// On the fly type conversion for Exif.Photo.UserComment // On the fly type conversion for Exif.Photo.UserComment
if (tag == 0x9286 && group == Group::exif && ti == undefined) { if (tag == 0x9286 && group == exifId && ti == undefined) {
ti = comment; ti = comment;
} }
return ti; return ti;
@ -1988,17 +1848,17 @@ namespace Exiv2 {
return lhs->group() < rhs->group(); return lhs->group() < rhs->group();
} }
TiffComponent::AutoPtr newTiffEntry(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffEntry(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr(new TiffEntry(tag, group)); return TiffComponent::AutoPtr(new TiffEntry(tag, group));
} }
TiffComponent::AutoPtr newTiffMnEntry(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffMnEntry(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr(new TiffMnEntry(tag, group, Group::mn)); return TiffComponent::AutoPtr(new TiffMnEntry(tag, group, mnId));
} }
TiffComponent::AutoPtr newTiffBinaryElement(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffBinaryElement(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr(new TiffBinaryElement(tag, group)); return TiffComponent::AutoPtr(new TiffBinaryElement(tag, group));
} }

@ -70,48 +70,12 @@ namespace Exiv2 {
const TiffType ttTiffIfd =13; //!< TIFF IFD type const TiffType ttTiffIfd =13; //!< TIFF IFD type
//! Convert the \em tiffType of a \em tag and \em group to an Exiv2 \em typeId. //! Convert the \em tiffType of a \em tag and \em group to an Exiv2 \em typeId.
TypeId toTypeId(TiffType tiffType, uint16_t tag, uint16_t group); TypeId toTypeId(TiffType tiffType, uint16_t tag, IfdId group);
//! Convert the %Exiv2 \em typeId to a TIFF value type. //! Convert the %Exiv2 \em typeId to a TIFF value type.
TiffType toTiffType(TypeId typeId); TiffType toTiffType(TypeId typeId);
/*!
Known TIFF groups
Todo: what exactly are these and where should they go?
Are they going to be mapped to the second part of an Exif key or are they
the second part of the key?
@note Groups with ids > mn are Makernote groups and get treated slightly
differently.
*/
namespace Group {
const uint16_t none = 0; //!< Dummy group
const uint16_t ifd0 = 1; //!< Exif IFD0
const uint16_t ifd1 = 2; //!< Thumbnail IFD
const uint16_t ifd2 = 3; //!< IFD2
const uint16_t ifd3 = 4; //!< IFD3
const uint16_t exif = 5; //!< Exif IFD
const uint16_t gps = 6; //!< GPS IFD
const uint16_t iop = 7; //!< Interoperability IFD
const uint16_t subimg1 = 8; //!< 1st TIFF SubIFD in IFD0
const uint16_t subimg2 = 9; //!< 2nd TIFF SubIFD in IFD0
const uint16_t subimg3 = 10; //!< 3rd TIFF SubIFD in IFD0
const uint16_t subimg4 = 11; //!< 4th TIFF SubIFD in IFD0
const uint16_t subimg5 = 12; //!< 5th TIFF SubIFD in IFD0
const uint16_t subimg6 = 13; //!< 6th TIFF SubIFD in IFD0
const uint16_t subimg7 = 14; //!< 7th TIFF SubIFD in IFD0
const uint16_t subimg8 = 15; //!< 8th TIFF SubIFD in IFD0
const uint16_t subimg9 = 16; //!< 9th TIFF SubIFD in IFD0
const uint16_t subimgX = 17; //!< End of SubIFD list marker, not a valid group
const uint16_t panaraw = 64; //!< IFD0 of Panasonic RAW images
const uint16_t mn = 256; //!< Makernote
const uint16_t ignr = 511; //!< Read but do not decode
}
/*! /*!
Special TIFF tags for the use in TIFF structures only Special TIFF tags for the use in TIFF structures only
Todo: Same Q as above...
*/ */
namespace Tag { namespace Tag {
const uint32_t none = 0x10000; //!< Dummy tag const uint32_t none = 0x10000; //!< Dummy tag
@ -130,7 +94,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffPathItem(uint32_t extendedTag, uint16_t group) TiffPathItem(uint32_t extendedTag, IfdId group)
: extendedTag_(extendedTag), group_(group) {} : extendedTag_(extendedTag), group_(group) {}
//@} //@}
@ -141,13 +105,13 @@ namespace Exiv2 {
//! Return the extended tag (32 bit so that it can contain special tags) //! Return the extended tag (32 bit so that it can contain special tags)
uint32_t extendedTag() const { return extendedTag_; } uint32_t extendedTag() const { return extendedTag_; }
//! Return the group //! Return the group
uint16_t group() const { return group_; } IfdId group() const { return group_; }
//@} //@}
private: private:
// DATA // DATA
uint32_t extendedTag_; uint32_t extendedTag_;
uint16_t group_; IfdId group_;
}; // class TiffPathItem }; // class TiffPathItem
/*! /*!
@ -216,7 +180,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffComponent(uint16_t tag, uint16_t group); TiffComponent(uint16_t tag, IfdId group);
//! Virtual destructor. //! Virtual destructor.
virtual ~TiffComponent(); virtual ~TiffComponent();
//@} //@}
@ -292,9 +256,9 @@ namespace Exiv2 {
//! Return the tag of this entry. //! Return the tag of this entry.
uint16_t tag() const { return tag_; } uint16_t tag() const { return tag_; }
//! Return the group id of this component //! Return the group id of this component
uint16_t group() const { return group_; } IfdId group() const { return group_; }
//! Return a pointer to the start of the binary representation of the component //! Return a pointer to the start of the binary representation of the component
byte* start() const { return pStart_; } byte* start() const { return pStart_; }
/*! /*!
@brief Return an auto-pointer to a copy of itself (deep copy, but @brief Return an auto-pointer to a copy of itself (deep copy, but
without any children). The caller owns this copy and the without any children). The caller owns this copy and the
@ -398,7 +362,7 @@ namespace Exiv2 {
private: private:
// DATA // DATA
uint16_t tag_; //!< Tag that identifies the component uint16_t tag_; //!< Tag that identifies the component
uint16_t group_; //!< Group id for this component IfdId group_; //!< Group id for this component
/*! /*!
Pointer to the start of the binary representation of the component in Pointer to the start of the binary representation of the component in
a memory buffer. The buffer is allocated and freed outside of this class. a memory buffer. The buffer is allocated and freed outside of this class.
@ -425,7 +389,7 @@ namespace Exiv2 {
// DATA // DATA
const char* make_; //!< Camera make for which these mapping functions apply const char* make_; //!< Camera make for which these mapping functions apply
uint32_t extendedTag_; //!< Tag (32 bit so that it can contain special tags) uint32_t extendedTag_; //!< Tag (32 bit so that it can contain special tags)
uint16_t group_; //!< Group that contains the tag IfdId group_; //!< Group that contains the tag
DecoderFct decoderFct_; //!< Decoder function for matching tags DecoderFct decoderFct_; //!< Decoder function for matching tags
EncoderFct encoderFct_; //!< Encoder function for matching tags EncoderFct encoderFct_; //!< Encoder function for matching tags
@ -434,10 +398,10 @@ namespace Exiv2 {
//! Search key for TIFF mapping structures. //! Search key for TIFF mapping structures.
struct TiffMappingInfo::Key { struct TiffMappingInfo::Key {
//! Constructor //! Constructor
Key(const std::string& m, uint32_t e, uint16_t g) : m_(m), e_(e), g_(g) {} Key(const std::string& m, uint32_t e, IfdId g) : m_(m), e_(e), g_(g) {}
std::string m_; //!< Camera make std::string m_; //!< Camera make
uint32_t e_; //!< Extended tag uint32_t e_; //!< Extended tag
uint16_t g_; //!< %Group IfdId g_; //!< %Group
}; };
/*! /*!
@ -454,7 +418,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Default constructor. //! Default constructor.
TiffEntryBase(uint16_t tag, uint16_t group, TiffType tiffType =ttUndefined); TiffEntryBase(uint16_t tag, IfdId group, TiffType tiffType =ttUndefined);
//! Virtual destructor. //! Virtual destructor.
virtual ~TiffEntryBase(); virtual ~TiffEntryBase();
//@} //@}
@ -603,7 +567,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffEntry(uint16_t tag, uint16_t group) : TiffEntryBase(tag, group) {} TiffEntry(uint16_t tag, IfdId group) : TiffEntryBase(tag, group) {}
//! Virtual destructor. //! Virtual destructor.
virtual ~TiffEntry(); virtual ~TiffEntry();
//@} //@}
@ -635,7 +599,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffDataEntryBase(uint16_t tag, uint16_t group, uint16_t szTag, uint16_t szGroup) TiffDataEntryBase(uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
: TiffEntryBase(tag, group), : TiffEntryBase(tag, group),
szTag_(szTag), szGroup_(szGroup) {} szTag_(szTag), szGroup_(szGroup) {}
//! Virtual destructor. //! Virtual destructor.
@ -662,15 +626,15 @@ namespace Exiv2 {
//! @name Accessors //! @name Accessors
//@{ //@{
//! Return the group of the entry which has the size //! Return the group of the entry which has the size
uint16_t szTag() const { return szTag_; } uint16_t szTag() const { return szTag_; }
//! Return the group of the entry which has the size //! Return the group of the entry which has the size
uint16_t szGroup() const { return szGroup_; } IfdId szGroup() const { return szGroup_; }
//@} //@}
private: private:
// DATA // DATA
const uint16_t szTag_; //!< Tag of the entry with the size const uint16_t szTag_; //!< Tag of the entry with the size
const uint16_t szGroup_; //!< Group of the entry with the size const IfdId szGroup_; //!< Group of the entry with the size
}; // class TiffDataEntryBase }; // class TiffDataEntryBase
@ -691,7 +655,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffDataEntry(uint16_t tag, uint16_t group, uint16_t szTag, uint16_t szGroup) TiffDataEntry(uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
: TiffDataEntryBase(tag, group, szTag, szGroup), : TiffDataEntryBase(tag, group, szTag, szGroup),
pDataArea_(0), sizeDataArea_(0) {} pDataArea_(0), sizeDataArea_(0) {}
//! Virtual destructor. //! Virtual destructor.
@ -774,7 +738,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffImageEntry(uint16_t tag, uint16_t group, uint16_t szTag, uint16_t szGroup) TiffImageEntry(uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
: TiffDataEntryBase(tag, group, szTag, szGroup) {} : TiffDataEntryBase(tag, group, szTag, szGroup) {}
//! Virtual destructor. //! Virtual destructor.
virtual ~TiffImageEntry(); virtual ~TiffImageEntry();
@ -856,7 +820,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffSizeEntry(uint16_t tag, uint16_t group, uint16_t dtTag, uint16_t dtGroup) TiffSizeEntry(uint16_t tag, IfdId group, uint16_t dtTag, IfdId dtGroup)
: TiffEntryBase(tag, group), dtTag_(dtTag), dtGroup_(dtGroup) {} : TiffEntryBase(tag, group), dtTag_(dtTag), dtGroup_(dtGroup) {}
//! Virtual destructor. //! Virtual destructor.
virtual ~TiffSizeEntry(); virtual ~TiffSizeEntry();
@ -865,9 +829,9 @@ namespace Exiv2 {
//! @name Accessors //! @name Accessors
//@{ //@{
//! Return the group of the related entry which has the data area //! Return the group of the related entry which has the data area
uint16_t dtTag() const { return dtTag_; } uint16_t dtTag() const { return dtTag_; }
//! Return the group of the related entry which has the data area //! Return the group of the related entry which has the data area
uint16_t dtGroup() const { return dtGroup_; } IfdId dtGroup() const { return dtGroup_; }
//@} //@}
protected: protected:
@ -885,7 +849,7 @@ namespace Exiv2 {
private: private:
// DATA // DATA
const uint16_t dtTag_; //!< Tag of the entry with the data area const uint16_t dtTag_; //!< Tag of the entry with the data area
const uint16_t dtGroup_; //!< Group of the entry with the data area const IfdId dtGroup_; //!< Group of the entry with the data area
}; // class TiffSizeEntry }; // class TiffSizeEntry
@ -899,7 +863,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Default constructor //! Default constructor
TiffDirectory(uint16_t tag, uint16_t group, bool hasNext =true) TiffDirectory(uint16_t tag, IfdId group, bool hasNext =true)
: TiffComponent(tag, group), hasNext_(hasNext), pNext_(0) {} : TiffComponent(tag, group), hasNext_(hasNext), pNext_(0) {}
//! Virtual destructor //! Virtual destructor
virtual ~TiffDirectory(); virtual ~TiffDirectory();
@ -1022,7 +986,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Default constructor //! Default constructor
TiffSubIfd(uint16_t tag, uint16_t group, uint16_t newGroup); TiffSubIfd(uint16_t tag, IfdId group, IfdId newGroup);
//! Virtual destructor //! Virtual destructor
virtual ~TiffSubIfd(); virtual ~TiffSubIfd();
//@} //@}
@ -1093,7 +1057,7 @@ namespace Exiv2 {
typedef std::vector<TiffDirectory*> Ifds; typedef std::vector<TiffDirectory*> Ifds;
// DATA // DATA
uint16_t newGroup_; //!< Start of the range of group numbers for the sub-IFDs IfdId newGroup_; //!< Start of the range of group numbers for the sub-IFDs
Ifds ifds_; //!< The subdirectories Ifds ifds_; //!< The subdirectories
}; // class TiffSubIfd }; // class TiffSubIfd
@ -1113,7 +1077,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Default constructor //! Default constructor
TiffMnEntry(uint16_t tag, uint16_t group, uint16_t mnGroup); TiffMnEntry(uint16_t tag, IfdId group, IfdId mnGroup);
//! Virtual destructor //! Virtual destructor
virtual ~TiffMnEntry(); virtual ~TiffMnEntry();
//@} //@}
@ -1167,7 +1131,7 @@ namespace Exiv2 {
//@} //@}
// DATA // DATA
uint16_t mnGroup_; //!< New group for concrete mn IfdId mnGroup_; //!< New group for concrete mn
TiffComponent* mn_; //!< The Makernote TiffComponent* mn_; //!< The Makernote
}; // class TiffMnEntry }; // class TiffMnEntry
@ -1188,8 +1152,8 @@ namespace Exiv2 {
//@{ //@{
//! Default constructor //! Default constructor
TiffIfdMakernote(uint16_t tag, TiffIfdMakernote(uint16_t tag,
uint16_t group, IfdId group,
uint16_t mnGroup, IfdId mnGroup,
MnHeader* pHeader, MnHeader* pHeader,
bool hasNext =true); bool hasNext =true);
//! Virtual destructor //! Virtual destructor
@ -1351,7 +1315,7 @@ namespace Exiv2 {
//! Comparison with idx //! Comparison with idx
bool operator==(uint32_t idx) const { return idx_ == idx; } bool operator==(uint32_t idx) const { return idx_ == idx; }
//! Get the size in bytes of a tag. //! Get the size in bytes of a tag.
uint32_t size(uint16_t tag, uint16_t group) const; uint32_t size(uint16_t tag, IfdId group) const;
// DATA // DATA
uint32_t idx_; //!< Index in bytes from the start uint32_t idx_; //!< Index in bytes from the start
TiffType tiffType_; //!< TIFF type of the element TiffType tiffType_; //!< TIFF type of the element
@ -1366,7 +1330,7 @@ namespace Exiv2 {
*/ */
uint32_t tagStep() const { return elDefaultDef_.size(0, group_); } uint32_t tagStep() const { return elDefaultDef_.size(0, group_); }
//DATA //DATA
uint16_t group_; //!< Group for the elements IfdId group_; //!< Group for the elements
ByteOrder byteOrder_; //!< Byte order, invalidByteOrder to inherit ByteOrder byteOrder_; //!< Byte order, invalidByteOrder to inherit
TiffType elTiffType_; //!< Type for the array entry and the size element, if any TiffType elTiffType_; //!< Type for the array entry and the size element, if any
CryptFct cryptFct_; //!< Crypt function, 0 if not used CryptFct cryptFct_; //!< Crypt function, 0 if not used
@ -1394,13 +1358,13 @@ namespace Exiv2 {
//@{ //@{
//! Constructor //! Constructor
TiffBinaryArray(uint16_t tag, TiffBinaryArray(uint16_t tag,
uint16_t group, IfdId group,
const ArrayCfg* arrayCfg, const ArrayCfg* arrayCfg,
const ArrayDef* arrayDef, const ArrayDef* arrayDef,
int defSize); int defSize);
//! Constructor for a complex binary array //! Constructor for a complex binary array
TiffBinaryArray(uint16_t tag, TiffBinaryArray(uint16_t tag,
uint16_t group, IfdId group,
const ArraySet* arraySet, const ArraySet* arraySet,
int setSize, int setSize,
CfgSelFct cfgSelFct); CfgSelFct cfgSelFct);
@ -1423,7 +1387,7 @@ namespace Exiv2 {
@param group Group to setup the binary array for. @param group Group to setup the binary array for.
@return true if the initialization succeeded, else false. @return true if the initialization succeeded, else false.
*/ */
bool initialize(uint16_t group); bool initialize(IfdId group);
/*! /*!
@brief Setup cfg and def for the component, in case of a complex binary array. @brief Setup cfg and def for the component, in case of a complex binary array.
Else do nothing. Return true if the initialization succeeded, else false. Else do nothing. Return true if the initialization succeeded, else false.
@ -1527,8 +1491,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor //! Constructor
TiffBinaryElement(uint16_t tag, TiffBinaryElement(uint16_t tag, IfdId group);
uint16_t group);
//! Virtual destructor. //! Virtual destructor.
virtual ~TiffBinaryElement(); virtual ~TiffBinaryElement();
//@} //@}
@ -1613,38 +1576,32 @@ namespace Exiv2 {
*/ */
bool cmpGroupLt(TiffComponent const* lhs, TiffComponent const* rhs); bool cmpGroupLt(TiffComponent const* lhs, TiffComponent const* rhs);
//! Return the group name for a group
const char* tiffGroupName(uint16_t group);
//! Return the TIFF group id for a group name
uint16_t tiffGroupId(const std::string& groupName);
//! Function to create and initialize a new TIFF entry //! Function to create and initialize a new TIFF entry
TiffComponent::AutoPtr newTiffEntry(uint16_t tag, uint16_t group); TiffComponent::AutoPtr newTiffEntry(uint16_t tag, IfdId group);
//! Function to create and initialize a new TIFF makernote entry //! Function to create and initialize a new TIFF makernote entry
TiffComponent::AutoPtr newTiffMnEntry(uint16_t tag, uint16_t group); TiffComponent::AutoPtr newTiffMnEntry(uint16_t tag, IfdId group);
//! Function to create and initialize a new binary array element //! Function to create and initialize a new binary array element
TiffComponent::AutoPtr newTiffBinaryElement(uint16_t tag, uint16_t group); TiffComponent::AutoPtr newTiffBinaryElement(uint16_t tag, IfdId group);
//! Function to create and initialize a new TIFF directory //! Function to create and initialize a new TIFF directory
template<uint16_t newGroup> template<IfdId newGroup>
TiffComponent::AutoPtr newTiffDirectory(uint16_t tag, uint16_t /*group*/) TiffComponent::AutoPtr newTiffDirectory(uint16_t tag, IfdId /*group*/)
{ {
return TiffComponent::AutoPtr(new TiffDirectory(tag, newGroup)); return TiffComponent::AutoPtr(new TiffDirectory(tag, newGroup));
} }
//! Function to create and initialize a new TIFF sub-directory //! Function to create and initialize a new TIFF sub-directory
template<uint16_t newGroup> template<IfdId newGroup>
TiffComponent::AutoPtr newTiffSubIfd(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffSubIfd(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr(new TiffSubIfd(tag, group, newGroup)); return TiffComponent::AutoPtr(new TiffSubIfd(tag, group, newGroup));
} }
//! Function to create and initialize a new binary array entry //! Function to create and initialize a new binary array entry
template<const ArrayCfg* arrayCfg, int N, const ArrayDef (&arrayDef)[N]> template<const ArrayCfg* arrayCfg, int N, const ArrayDef (&arrayDef)[N]>
TiffComponent::AutoPtr newTiffBinaryArray0(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffBinaryArray0(uint16_t tag, IfdId group)
{ {
// *& acrobatics is a workaround for a MSVC 7.1 bug // *& acrobatics is a workaround for a MSVC 7.1 bug
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(
@ -1653,7 +1610,7 @@ namespace Exiv2 {
//! Function to create and initialize a new simple binary array entry //! Function to create and initialize a new simple binary array entry
template<const ArrayCfg* arrayCfg> template<const ArrayCfg* arrayCfg>
TiffComponent::AutoPtr newTiffBinaryArray1(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffBinaryArray1(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(
new TiffBinaryArray(tag, group, arrayCfg, 0, 0)); new TiffBinaryArray(tag, group, arrayCfg, 0, 0));
@ -1661,39 +1618,39 @@ namespace Exiv2 {
//! Function to create and initialize a new complex binary array entry //! Function to create and initialize a new complex binary array entry
template<const ArraySet* arraySet, int N, CfgSelFct cfgSelFct> template<const ArraySet* arraySet, int N, CfgSelFct cfgSelFct>
TiffComponent::AutoPtr newTiffBinaryArray2(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffBinaryArray2(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(
new TiffBinaryArray(tag, group, arraySet, N, cfgSelFct)); new TiffBinaryArray(tag, group, arraySet, N, cfgSelFct));
} }
//! Function to create and initialize a new TIFF entry for a thumbnail (data) //! Function to create and initialize a new TIFF entry for a thumbnail (data)
template<uint16_t szTag, uint16_t szGroup> template<uint16_t szTag, IfdId szGroup>
TiffComponent::AutoPtr newTiffThumbData(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffThumbData(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(
new TiffDataEntry(tag, group, szTag, szGroup)); new TiffDataEntry(tag, group, szTag, szGroup));
} }
//! Function to create and initialize a new TIFF entry for a thumbnail (size) //! Function to create and initialize a new TIFF entry for a thumbnail (size)
template<uint16_t dtTag, uint16_t dtGroup> template<uint16_t dtTag, IfdId dtGroup>
TiffComponent::AutoPtr newTiffThumbSize(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffThumbSize(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(
new TiffSizeEntry(tag, group, dtTag, dtGroup)); new TiffSizeEntry(tag, group, dtTag, dtGroup));
} }
//! Function to create and initialize a new TIFF entry for image data //! Function to create and initialize a new TIFF entry for image data
template<uint16_t szTag, uint16_t szGroup> template<uint16_t szTag, IfdId szGroup>
TiffComponent::AutoPtr newTiffImageData(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffImageData(uint16_t tag, IfdId group)
{ {
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(
new TiffImageEntry(tag, group, szTag, szGroup)); new TiffImageEntry(tag, group, szTag, szGroup));
} }
//! Function to create and initialize a new TIFF entry for image data (size) //! Function to create and initialize a new TIFF entry for image data (size)
template<uint16_t dtTag, uint16_t dtGroup> template<uint16_t dtTag, IfdId dtGroup>
TiffComponent::AutoPtr newTiffImageSize(uint16_t tag, uint16_t group) TiffComponent::AutoPtr newTiffImageSize(uint16_t tag, IfdId group)
{ {
// Todo: Same as newTiffThumbSize - consolidate (rename)? // Todo: Same as newTiffThumbSize - consolidate (rename)?
return TiffComponent::AutoPtr( return TiffComponent::AutoPtr(

@ -32,6 +32,7 @@
// ***************************************************************************** // *****************************************************************************
// included header files // included header files
#include "types.hpp" #include "types.hpp"
#include "tags_int.hpp"
// + standard includes // + standard includes
#include <memory> #include <memory>
@ -91,27 +92,27 @@ namespace Exiv2 {
*/ */
typedef DecoderFct (*FindDecoderFct)(const std::string& make, typedef DecoderFct (*FindDecoderFct)(const std::string& make,
uint32_t extendedTag, uint32_t extendedTag,
uint16_t group); IfdId group);
/*! /*!
@brief Type for a function pointer for a function to encode a TIFF component. @brief Type for a function pointer for a function to encode a TIFF component.
*/ */
typedef EncoderFct (*FindEncoderFct)( typedef EncoderFct (*FindEncoderFct)(
const std::string& make, const std::string& make,
uint32_t extendedTag, uint32_t extendedTag,
uint16_t group IfdId group
); );
/*! /*!
@brief Type for a function pointer for a function to create a TIFF component. @brief Type for a function pointer for a function to create a TIFF component.
Use TiffComponent::AutoPtr, it is not used in this declaration only Use TiffComponent::AutoPtr, it is not used in this declaration only
to reduce dependencies. to reduce dependencies.
*/ */
typedef std::auto_ptr<TiffComponent> (*NewTiffCompFct)(uint16_t tag, uint16_t group); typedef std::auto_ptr<TiffComponent> (*NewTiffCompFct)(uint16_t tag, IfdId group);
//! Stack to hold a path from the TIFF root element to a TIFF entry //! Stack to hold a path from the TIFF root element to a TIFF entry
typedef std::stack<TiffPathItem> TiffPath; typedef std::stack<TiffPathItem> TiffPath;
//! Type for a list of primary image groups //! Type for a list of primary image groups
typedef std::vector<uint16_t> PrimaryGroups; typedef std::vector<IfdId> PrimaryGroups;
}} // namespace Internal, Exiv2 }} // namespace Internal, Exiv2

File diff suppressed because it is too large Load Diff

@ -127,7 +127,7 @@ namespace Exiv2 {
@return The default implementation returns \c false. @return The default implementation returns \c false.
*/ */
virtual bool isImageTag( uint16_t tag, virtual bool isImageTag( uint16_t tag,
uint16_t group, IfdId group,
const PrimaryGroups* pPrimaryGroups) const; const PrimaryGroups* pPrimaryGroups) const;
//@} //@}
@ -156,8 +156,8 @@ namespace Exiv2 {
//@} //@}
//@{ //@{
//! @name Accessors //! @name Accessors
bool isImageTag( uint16_t tag, bool isImageTag( uint16_t tag,
uint16_t group, IfdId group,
const PrimaryGroups* pPrimaryGroups) const; const PrimaryGroups* pPrimaryGroups) const;
//@} //@}
@ -173,9 +173,9 @@ namespace Exiv2 {
//! Search key for TIFF image tag structure. //! Search key for TIFF image tag structure.
struct Key { struct Key {
//! Constructor //! Constructor
Key(uint16_t t, uint16_t g) : t_(t), g_(g) {} Key(uint16_t t, IfdId g) : t_(t), g_(g) {}
uint16_t t_; //!< %Tag uint16_t t_; //!< %Tag
uint16_t g_; //!< %Group IfdId g_; //!< %Group
}; };
//! Comparison operator to compare a TiffImgTagStruct with a TiffImgTagStruct::Key //! Comparison operator to compare a TiffImgTagStruct with a TiffImgTagStruct::Key
@ -186,7 +186,7 @@ namespace Exiv2 {
// DATA // DATA
uint16_t tag_; //!< Image tag uint16_t tag_; //!< Image tag
uint16_t group_; //!< Group that contains the image tag IfdId group_; //!< Group that contains the image tag
}; // struct TiffImgTagStruct }; // struct TiffImgTagStruct
/*! /*!
@ -197,9 +197,9 @@ namespace Exiv2 {
//! Search key for TIFF group structure. //! Search key for TIFF group structure.
struct Key { struct Key {
//! Constructor //! Constructor
Key(uint32_t e, uint16_t g) : e_(e), g_(g) {} Key(uint32_t e, IfdId g) : e_(e), g_(g) {}
uint32_t e_; //!< Extended tag uint32_t e_; //!< Extended tag
uint16_t g_; //!< %Group IfdId g_; //!< %Group
}; };
//! Comparison operator to compare a TiffGroupStruct with a TiffGroupStruct::Key //! Comparison operator to compare a TiffGroupStruct with a TiffGroupStruct::Key
@ -213,7 +213,7 @@ namespace Exiv2 {
// DATA // DATA
uint32_t extendedTag_; //!< Tag (32 bit so that it can contain special tags) uint32_t extendedTag_; //!< Tag (32 bit so that it can contain special tags)
uint16_t group_; //!< Group that contains the tag IfdId group_; //!< Group that contains the tag
NewTiffCompFct newTiffCompFct_; //!< Function to create the correct TIFF component NewTiffCompFct newTiffCompFct_; //!< Function to create the correct TIFF component
}; };
@ -229,17 +229,17 @@ namespace Exiv2 {
// DATA // DATA
uint32_t root_; //!< Tree root element, identifies a tree uint32_t root_; //!< Tree root element, identifies a tree
uint16_t group_; //!< Each group is a node in the tree IfdId group_; //!< Each group is a node in the tree
uint16_t parentGroup_; //!< Parent group IfdId parentGroup_; //!< Parent group
uint32_t parentExtTag_; //!< Parent tag (32 bit so that it can contain special tags) uint32_t parentExtTag_; //!< Parent tag (32 bit so that it can contain special tags)
}; };
//! Search key for TIFF tree structure. //! Search key for TIFF tree structure.
struct TiffTreeStruct::Key { struct TiffTreeStruct::Key {
//! Constructor //! Constructor
Key(uint32_t r, uint16_t g) : r_(r), g_(g) {} Key(uint32_t r, IfdId g) : r_(r), g_(g) {}
uint32_t r_; //!< Root uint32_t r_; //!< Root
uint16_t g_; //!< %Group IfdId g_; //!< %Group
}; };
/*! /*!
@ -254,7 +254,7 @@ namespace Exiv2 {
is 0, then the TIFF entry should be ignored. is 0, then the TIFF entry should be ignored.
*/ */
static std::auto_ptr<TiffComponent> create(uint32_t extendedTag, static std::auto_ptr<TiffComponent> create(uint32_t extendedTag,
uint16_t group); IfdId group);
/*! /*!
@brief Get the path, i.e., a list of extended tag and group pairs, from @brief Get the path, i.e., a list of extended tag and group pairs, from
the \em root TIFF element to the TIFF entry \em extendedTag and the \em root TIFF element to the TIFF entry \em extendedTag and
@ -262,7 +262,7 @@ namespace Exiv2 {
*/ */
static void getPath(TiffPath& tiffPath, static void getPath(TiffPath& tiffPath,
uint32_t extendedTag, uint32_t extendedTag,
uint16_t group, IfdId group,
uint32_t root); uint32_t root);
private: private:
@ -388,7 +388,7 @@ namespace Exiv2 {
*/ */
static DecoderFct findDecoder(const std::string& make, static DecoderFct findDecoder(const std::string& make,
uint32_t extendedTag, uint32_t extendedTag,
uint16_t group); IfdId group);
/*! /*!
@brief Find special encoder function for a key. @brief Find special encoder function for a key.
@ -405,7 +405,7 @@ namespace Exiv2 {
static EncoderFct findEncoder( static EncoderFct findEncoder(
const std::string& make, const std::string& make,
uint32_t extendedTag, uint32_t extendedTag,
uint16_t group IfdId group
); );
private: private:
@ -413,6 +413,7 @@ namespace Exiv2 {
}; // class TiffMapping }; // class TiffMapping
// Todo: Move this class to metadatum_int.hpp or tags_int.hpp
//! Unary predicate that matches an Exifdatum with a given IfdId. //! Unary predicate that matches an Exifdatum with a given IfdId.
class FindExifdatum { class FindExifdatum {
public: public:

@ -59,8 +59,8 @@ namespace {
class FindExifdatum2 { class FindExifdatum2 {
public: public:
//! Constructor, initializes the object with the group and index to look for. //! Constructor, initializes the object with the group and index to look for.
FindExifdatum2(uint16_t group, int idx) FindExifdatum2(Exiv2::Internal::IfdId group, int idx)
: groupName_(Exiv2::Internal::tiffGroupName(group)), idx_(idx) {} : groupName_(Exiv2::Internal::groupName(group)), idx_(idx) {}
//! Returns true if group and index match. //! Returns true if group and index match.
bool operator()(const Exiv2::Exifdatum& md) const bool operator()(const Exiv2::Exifdatum& md) const
{ {
@ -127,7 +127,7 @@ namespace Exiv2 {
{ {
} }
void TiffFinder::init(uint16_t tag, uint16_t group) void TiffFinder::init(uint16_t tag, IfdId group)
{ {
tag_ = tag; tag_ = tag;
group_ = group; group_ = group;
@ -226,7 +226,7 @@ namespace Exiv2 {
TiffCreator::getPath(tiffPath, object->tag(), object->group(), root_); TiffCreator::getPath(tiffPath, object->tag(), object->group(), root_);
pRoot_->addPath(object->tag(), tiffPath, pRoot_, clone); pRoot_->addPath(object->tag(), tiffPath, pRoot_, clone);
#ifdef DEBUG #ifdef DEBUG
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
std::cerr << "Copied " << key << "\n"; std::cerr << "Copied " << key << "\n";
#endif #endif
} }
@ -303,7 +303,7 @@ namespace Exiv2 {
xmpData_.clear(); xmpData_.clear();
// Find camera make // Find camera make
TiffFinder finder(0x010f, Group::ifd0); TiffFinder finder(0x010f, ifd0Id);
pRoot_->accept(finder); pRoot_->accept(finder);
TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result()); TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result());
if (te && te->pValue()) { if (te && te->pValue()) {
@ -372,7 +372,7 @@ namespace Exiv2 {
void TiffDecoder::getObjData(byte const*& pData, void TiffDecoder::getObjData(byte const*& pData,
long& size, long& size,
uint16_t tag, uint16_t tag,
uint16_t group, IfdId group,
const TiffEntryBase* object) const TiffEntryBase* object)
{ {
if (object && object->tag() == tag && object->group() == group) { if (object && object->tag() == tag && object->group() == group) {
@ -397,7 +397,7 @@ namespace Exiv2 {
byte const* pData = 0; byte const* pData = 0;
long size = 0; long size = 0;
getObjData(pData, size, 0x02bc, Group::ifd0, object); getObjData(pData, size, 0x02bc, ifd0Id, object);
if (pData) { if (pData) {
std::string xmpPacket; std::string xmpPacket;
xmpPacket.assign(reinterpret_cast<const char*>(pData), size); xmpPacket.assign(reinterpret_cast<const char*>(pData), size);
@ -431,7 +431,7 @@ namespace Exiv2 {
// 1st choice: IPTCNAA // 1st choice: IPTCNAA
byte const* pData = 0; byte const* pData = 0;
long size = 0; long size = 0;
getObjData(pData, size, 0x83bb, Group::ifd0, object); getObjData(pData, size, 0x83bb, ifd0Id, object);
if (pData) { if (pData) {
if (0 == IptcParser::decode(iptcData_, pData, size)) { if (0 == IptcParser::decode(iptcData_, pData, size)) {
return; return;
@ -448,7 +448,7 @@ namespace Exiv2 {
// ImageResources // ImageResources
pData = 0; pData = 0;
size = 0; size = 0;
getObjData(pData, size, 0x8649, Group::ifd0, object); getObjData(pData, size, 0x8649, ifd0Id, object);
if (pData) { if (pData) {
byte const* record = 0; byte const* record = 0;
uint32_t sizeHdr = 0; uint32_t sizeHdr = 0;
@ -488,9 +488,7 @@ namespace Exiv2 {
void TiffDecoder::decodeStdTiffEntry(const TiffEntryBase* object) void TiffDecoder::decodeStdTiffEntry(const TiffEntryBase* object)
{ {
assert(object != 0); assert(object != 0);
// Todo: ExifKey should have an appropriate c'tor, it should not be ExifKey key(object->tag(), groupName(object->group()));
// necessary to use groupName here
ExifKey key(object->tag(), tiffGroupName(object->group()));
key.setIdx(object->idx()); key.setIdx(object->idx());
exifData_.add(key, object->pValue()); exifData_.add(key, object->pValue());
@ -548,7 +546,7 @@ namespace Exiv2 {
make_ = pos->toString(); make_ = pos->toString();
} }
if (make_.empty() && pRoot_) { if (make_.empty() && pRoot_) {
TiffFinder finder(0x010f, Group::ifd0); TiffFinder finder(0x010f, ifd0Id);
pRoot_->accept(finder); pRoot_->accept(finder);
TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result()); TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result());
if (te && te->pValue()) { if (te && te->pValue()) {
@ -725,7 +723,7 @@ namespace Exiv2 {
} }
else if (del_) { else if (del_) {
// The makernote is made up of decoded tags, delete binary tag // The makernote is made up of decoded tags, delete binary tag
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
ExifData::iterator pos = exifData_.findKey(key); ExifData::iterator pos = exifData_.findKey(key);
if (pos != exifData_.end()) exifData_.erase(pos); if (pos != exifData_.end()) exifData_.erase(pos);
} }
@ -804,7 +802,7 @@ namespace Exiv2 {
byteOrder_ = boOrig; byteOrder_ = boOrig;
} }
bool TiffEncoder::isImageTag(uint16_t tag, uint16_t group) const bool TiffEncoder::isImageTag(uint16_t tag, IfdId group) const
{ {
if (!isNewImage_ && pHeader_->isImageTag(tag, group, pPrimaryGroups_)) { if (!isNewImage_ && pHeader_->isImageTag(tag, group, pPrimaryGroups_)) {
return true; return true;
@ -827,7 +825,7 @@ namespace Exiv2 {
const Exifdatum* ed = datum; const Exifdatum* ed = datum;
if (ed == 0) { if (ed == 0) {
// Non-intrusive writing: find matching tag // Non-intrusive writing: find matching tag
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
pos = exifData_.findKey(key); pos = exifData_.findKey(key);
if (pos != exifData_.end()) { if (pos != exifData_.end()) {
ed = &(*pos); ed = &(*pos);
@ -894,7 +892,7 @@ namespace Exiv2 {
if ( object->sizeDataArea_ if ( object->sizeDataArea_
< static_cast<uint32_t>(object->pValue()->sizeDataArea())) { < static_cast<uint32_t>(object->pValue()->sizeDataArea())) {
#ifdef DEBUG #ifdef DEBUG
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
std::cerr << "DATAAREA GREW " << key << "\n"; std::cerr << "DATAAREA GREW " << key << "\n";
#endif #endif
setDirty(); setDirty();
@ -902,7 +900,7 @@ namespace Exiv2 {
else { else {
// Write the new dataarea, fill with 0x0 // Write the new dataarea, fill with 0x0
#ifdef DEBUG #ifdef DEBUG
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
std::cerr << "Writing data area for " << key << "\n"; std::cerr << "Writing data area for " << key << "\n";
#endif #endif
DataBuf buf = object->pValue()->dataArea(); DataBuf buf = object->pValue()->dataArea();
@ -939,7 +937,7 @@ namespace Exiv2 {
std::cerr << "\t DATAAREA IS SET (INTRUSIVE WRITING)"; std::cerr << "\t DATAAREA IS SET (INTRUSIVE WRITING)";
#endif #endif
// Set pseudo strips (without a data pointer) from the size tag // Set pseudo strips (without a data pointer) from the size tag
ExifKey key(object->szTag(), tiffGroupName(object->szGroup())); ExifKey key(object->szTag(), groupName(object->szGroup()));
ExifData::const_iterator pos = exifData_.findKey(key); ExifData::const_iterator pos = exifData_.findKey(key);
const byte* zero = 0; const byte* zero = 0;
if (pos == exifData_.end()) { if (pos == exifData_.end()) {
@ -960,7 +958,7 @@ namespace Exiv2 {
} }
if (sizeTotal != sizeDataArea) { if (sizeTotal != sizeDataArea) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
ExifKey key2(object->tag(), tiffGroupName(object->group())); ExifKey key2(object->tag(), groupName(object->group()));
std::cerr << "Error: Sum of all sizes of " << key std::cerr << "Error: Sum of all sizes of " << key
<< " != data size of " << key2 << ". " << " != data size of " << key2 << ". "
<< "This results in an invalid image.\n"; << "This results in an invalid image.\n";
@ -985,7 +983,7 @@ namespace Exiv2 {
} }
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
else { else {
ExifKey key2(object->tag(), tiffGroupName(object->group())); ExifKey key2(object->tag(), groupName(object->group()));
std::cerr << "Warning: No image data to encode " << key2 << ".\n"; std::cerr << "Warning: No image data to encode " << key2 << ".\n";
} }
#endif #endif
@ -1026,7 +1024,7 @@ namespace Exiv2 {
} }
object->updateValue(datum->getValue(), byteOrder()); // clones the value object->updateValue(datum->getValue(), byteOrder()); // clones the value
#ifdef DEBUG #ifdef DEBUG
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
std::cerr << "UPDATING DATA " << key; std::cerr << "UPDATING DATA " << key;
if (tooLarge) { if (tooLarge) {
std::cerr << "\t\t\t ALLOCATED " << std::dec << object->size_ << " BYTES"; std::cerr << "\t\t\t ALLOCATED " << std::dec << object->size_ << " BYTES";
@ -1044,7 +1042,7 @@ namespace Exiv2 {
setDirty(); setDirty();
object->updateValue(datum->getValue(), byteOrder()); // clones the value object->updateValue(datum->getValue(), byteOrder()); // clones the value
#ifdef DEBUG #ifdef DEBUG
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
std::cerr << "UPDATING DATA " << key; std::cerr << "UPDATING DATA " << key;
std::cerr << "\t\t\t ALLOCATED " << object->size() << " BYTES"; std::cerr << "\t\t\t ALLOCATED " << object->size() << " BYTES";
#endif #endif
@ -1052,7 +1050,7 @@ namespace Exiv2 {
else { else {
object->setValue(datum->getValue()); // clones the value object->setValue(datum->getValue()); // clones the value
#ifdef DEBUG #ifdef DEBUG
ExifKey key(object->tag(), tiffGroupName(object->group())); ExifKey key(object->tag(), groupName(object->group()));
std::cerr << "NOT UPDATING " << key; std::cerr << "NOT UPDATING " << key;
std::cerr << "\t\t\t PRESERVE VALUE DATA"; std::cerr << "\t\t\t PRESERVE VALUE DATA";
#endif #endif
@ -1079,9 +1077,9 @@ namespace Exiv2 {
for (ExifData::const_iterator i = exifData_.begin(); for (ExifData::const_iterator i = exifData_.begin();
i != exifData_.end(); ++i) { i != exifData_.end(); ++i) {
uint16_t group = tiffGroupId(i->groupName()); IfdId group = groupId(i->groupName());
// Skip synthesized info tags // Skip synthesized info tags
if (group == Group::mn) { if (group == mnId) {
if (i->tag() == 0x0002) { if (i->tag() == 0x0002) {
posBo = i; posBo = i;
} }
@ -1119,7 +1117,7 @@ namespace Exiv2 {
*/ */
if (posBo == exifData_.end()) return; if (posBo == exifData_.end()) return;
TiffFinder finder(0x927c, Group::exif); TiffFinder finder(0x927c, exifId);
pRootDir->accept(finder); pRootDir->accept(finder);
TiffMnEntry* te = dynamic_cast<TiffMnEntry*>(finder.result()); TiffMnEntry* te = dynamic_cast<TiffMnEntry*>(finder.result());
if (te) { if (te) {
@ -1224,14 +1222,14 @@ namespace Exiv2 {
} }
} }
bool TiffReader::circularReference(const byte* start, uint16_t group) bool TiffReader::circularReference(const byte* start, IfdId group)
{ {
DirList::const_iterator pos = dirList_.find(start); DirList::const_iterator pos = dirList_.find(start);
if (pos != dirList_.end()) { if (pos != dirList_.end()) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< tiffGroupName(group) << " pointer references previously read " << groupName(group) << " pointer references previously read "
<< tiffGroupName(pos->second) << " directory. Ignored.\n"; << groupName(pos->second) << " directory. Ignored.\n";
#endif #endif
return true; return true;
} }
@ -1239,7 +1237,7 @@ namespace Exiv2 {
return false; return false;
} }
int TiffReader::nextIdx(uint16_t group) int TiffReader::nextIdx(IfdId group)
{ {
return ++idxSeq_[group]; return ++idxSeq_[group];
} }
@ -1265,7 +1263,7 @@ namespace Exiv2 {
if (p + 2 > pLast_) { if (p + 2 > pLast_) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ": IFD exceeds data buffer, cannot read entry count.\n"; << ": IFD exceeds data buffer, cannot read entry count.\n";
#endif #endif
return; return;
@ -1276,7 +1274,7 @@ namespace Exiv2 {
if (n > 256) { if (n > 256) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< "Directory " << tiffGroupName(object->group()) << " with " << "Directory " << groupName(object->group()) << " with "
<< n << " entries considered invalid; not read.\n"; << n << " entries considered invalid; not read.\n";
#endif #endif
return; return;
@ -1285,7 +1283,7 @@ namespace Exiv2 {
if (p + 12 > pLast_) { if (p + 12 > pLast_) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ": IFD entry " << i << ": IFD entry " << i
<< " lies outside of the data buffer.\n"; << " lies outside of the data buffer.\n";
#endif #endif
@ -1305,7 +1303,7 @@ namespace Exiv2 {
if (p + 4 > pLast_) { if (p + 4 > pLast_) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ": IFD exceeds data buffer, cannot read next pointer.\n"; << ": IFD exceeds data buffer, cannot read next pointer.\n";
#endif #endif
return; return;
@ -1317,7 +1315,7 @@ namespace Exiv2 {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
if (tc.get() == 0) { if (tc.get() == 0) {
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< " has an unhandled next pointer.\n"; << " has an unhandled next pointer.\n";
} }
#endif #endif
@ -1326,7 +1324,7 @@ namespace Exiv2 {
if (baseOffset() + next > size_) { if (baseOffset() + next > size_) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ": Next pointer is out of bounds; ignored.\n"; << ": Next pointer is out of bounds; ignored.\n";
#endif #endif
return; return;
@ -1352,7 +1350,7 @@ namespace Exiv2 {
|| static_cast<int32_t>(baseOffset()) + offset < 0) { || static_cast<int32_t>(baseOffset()) + offset < 0) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: " std::cerr << "Error: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< " Sub-IFD pointer " << i << " Sub-IFD pointer " << i
@ -1360,10 +1358,10 @@ namespace Exiv2 {
#endif #endif
return; return;
} }
if (object->newGroup_ + i == Group::subimgX) { if (object->newGroup_ + i == subImage9Id + 1) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< ": Skipping sub-IFDs beyond the first " << i << ".\n"; << ": Skipping sub-IFDs beyond the first " << i << ".\n";
@ -1372,7 +1370,7 @@ namespace Exiv2 {
} }
// If there are multiple dirs, group is incremented for each // If there are multiple dirs, group is incremented for each
TiffComponent::AutoPtr td(new TiffDirectory(object->tag(), TiffComponent::AutoPtr td(new TiffDirectory(object->tag(),
object->newGroup_ + i)); static_cast<IfdId>(object->newGroup_ + i)));
td->setStart(pData_ + baseOffset() + offset); td->setStart(pData_ + baseOffset() + offset);
object->addChild(td); object->addChild(td);
} }
@ -1380,7 +1378,7 @@ namespace Exiv2 {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
else { else {
std::cerr << "Warning: " std::cerr << "Warning: "
<< "Directory " << tiffGroupName(object->group()) << "Directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< " doesn't look like a sub-IFD.\n"; << " doesn't look like a sub-IFD.\n";
@ -1395,7 +1393,7 @@ namespace Exiv2 {
readTiffEntry(object); readTiffEntry(object);
// Find camera make // Find camera make
TiffFinder finder(0x010f, Group::ifd0); TiffFinder finder(0x010f, ifd0Id);
pRoot_->accept(finder); pRoot_->accept(finder);
TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result()); TiffEntryBase* te = dynamic_cast<TiffEntryBase*>(finder.result());
std::string make; std::string make;
@ -1424,7 +1422,7 @@ namespace Exiv2 {
byteOrder())) { byteOrder())) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: Failed to read " std::cerr << "Error: Failed to read "
<< tiffGroupName(object->ifd_.group()) << groupName(object->ifd_.group())
<< " IFD Makernote header.\n"; << " IFD Makernote header.\n";
#ifdef DEBUG #ifdef DEBUG
if (static_cast<uint32_t>(pLast_ - object->start()) >= 16) { if (static_cast<uint32_t>(pLast_ - object->start()) >= 16) {
@ -1462,7 +1460,7 @@ namespace Exiv2 {
if (p + 12 > pLast_) { if (p + 12 > pLast_) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: Entry in directory " << tiffGroupName(object->group()) std::cerr << "Error: Entry in directory " << groupName(object->group())
<< "requests access to memory beyond the data buffer. " << "requests access to memory beyond the data buffer. "
<< "Skipping entry.\n"; << "Skipping entry.\n";
#endif #endif
@ -1475,7 +1473,7 @@ namespace Exiv2 {
long typeSize = TypeInfo::typeSize(typeId); long typeSize = TypeInfo::typeSize(typeId);
if (0 == typeSize) { if (0 == typeSize) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Warning: Directory " << tiffGroupName(object->group()) std::cerr << "Warning: Directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< " has unknown Exif (TIFF) type " << std::dec << tiffType << " has unknown Exif (TIFF) type " << std::dec << tiffType
@ -1487,7 +1485,7 @@ namespace Exiv2 {
uint32_t count = getULong(p, byteOrder()); uint32_t count = getULong(p, byteOrder());
if (count >= 0x10000000) { if (count >= 0x10000000) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: Directory " << tiffGroupName(object->group()) std::cerr << "Error: Directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< " has invalid size " << " has invalid size "
@ -1505,7 +1503,7 @@ namespace Exiv2 {
|| static_cast<int32_t>(baseOffset()) + offset <= 0)) { || static_cast<int32_t>(baseOffset()) + offset <= 0)) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: Offset of " std::cerr << "Error: Offset of "
<< "directory " << tiffGroupName(object->group()) << "directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< " is out of bounds: " << " is out of bounds: "
@ -1520,7 +1518,7 @@ namespace Exiv2 {
if (size > static_cast<uint32_t>(pLast_ - pData)) { if (size > static_cast<uint32_t>(pLast_ - pData)) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
std::cerr << "Error: Upper boundary of data for " std::cerr << "Error: Upper boundary of data for "
<< "directory " << tiffGroupName(object->group()) << "directory " << groupName(object->group())
<< ", entry 0x" << std::setw(4) << ", entry 0x" << std::setw(4)
<< std::setfill('0') << std::hex << object->tag() << std::setfill('0') << std::hex << object->tag()
<< " is out of bounds: " << " is out of bounds: "

@ -168,7 +168,7 @@ namespace Exiv2 {
//! @name Creators //! @name Creators
//@{ //@{
//! Constructor, taking \em tag and \em group of the component to find. //! Constructor, taking \em tag and \em group of the component to find.
TiffFinder(uint16_t tag, uint16_t group) TiffFinder(uint16_t tag, IfdId group)
: tag_(tag), group_(group), tiffComponent_(0) {} : tag_(tag), group_(group), tiffComponent_(0) {}
//! Virtual destructor //! Virtual destructor
virtual ~TiffFinder(); virtual ~TiffFinder();
@ -200,7 +200,7 @@ namespace Exiv2 {
//! Check if \em object matches \em tag and \em group //! Check if \em object matches \em tag and \em group
void findObject(TiffComponent* object); void findObject(TiffComponent* object);
//! Initialize the Finder for a new search. //! Initialize the Finder for a new search.
void init(uint16_t tag, uint16_t group); void init(uint16_t tag, IfdId group);
//@} //@}
//! @name Accessors //! @name Accessors
@ -214,7 +214,7 @@ namespace Exiv2 {
private: private:
uint16_t tag_; uint16_t tag_;
uint16_t group_; IfdId group_;
TiffComponent* tiffComponent_; TiffComponent* tiffComponent_;
}; // class TiffFinder }; // class TiffFinder
@ -350,7 +350,7 @@ namespace Exiv2 {
void getObjData(byte const*& pData, void getObjData(byte const*& pData,
long& size, long& size,
uint16_t tag, uint16_t tag,
uint16_t group, IfdId group,
const TiffEntryBase* object); const TiffEntryBase* object);
//@} //@}
@ -556,7 +556,7 @@ namespace Exiv2 {
is considered an image tag of this image - whether or not is considered an image tag of this image - whether or not
it's actually present in the existing image doesn't matter. it's actually present in the existing image doesn't matter.
*/ */
bool isImageTag(uint16_t tag, uint16_t group) const; bool isImageTag(uint16_t tag, IfdId group) const;
//@} //@}
private: private:
@ -687,9 +687,9 @@ namespace Exiv2 {
//! Reset the state to the original state as set in the constructor. //! Reset the state to the original state as set in the constructor.
void resetState(); void resetState();
//! Check IFD directory pointer \em start for circular reference //! Check IFD directory pointer \em start for circular reference
bool circularReference(const byte* start, uint16_t group); bool circularReference(const byte* start, IfdId group);
//! Return the next idx sequence number for \em group //! Return the next idx sequence number for \em group
int nextIdx(uint16_t group); int nextIdx(IfdId group);
/*! /*!
@brief Read deferred components. @brief Read deferred components.
@ -712,7 +712,7 @@ namespace Exiv2 {
//@} //@}
private: private:
typedef std::map<const byte*, uint16_t> DirList; typedef std::map<const byte*, IfdId> DirList;
typedef std::map<uint16_t, int> IdxSeq; typedef std::map<uint16_t, int> IdxSeq;
typedef std::vector<TiffComponent*> PostList; typedef std::vector<TiffComponent*> PostList;

Loading…
Cancel
Save