add missing commas

Formats the structs properly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
main
Rosen Penev 2 years ago
parent e1b3dfa278
commit c827648127

@ -190,7 +190,8 @@ const std::map<AsfVideo::GUIDTag, std::string> GUIDReferenceTags = {
{{0x6698B84E, 0x0AFA, 0x4330, {0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D}},
"Payload_Extension_System_Encryption_Sample_ID"},
{{0x00E1AF06, 0x7BEC, 0x11D1, {0xA5, 0x82, 0x00, 0xC0, 0x4F, 0xC2, 0x9C, 0xFB}},
"Payload_Extension_System_Degradable_JPEG"}};
"Payload_Extension_System_Degradable_JPEG"},
};
/*!
@brief Function used to check if data stored in buf is equivalent to

@ -28,7 +28,10 @@
// class member definitions
namespace Exiv2::Internal {
//! OffOn, multiple tags
constexpr TagDetails canonOffOn[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails canonOffOn[] = {
{0, N_("Off")},
{1, N_("On")},
};
std::ostream& printCsLensTypeByMetadata(std::ostream& os, const Value& value, const ExifData* metadata);
@ -36,7 +39,8 @@ std::ostream& printCsLensTypeByMetadata(std::ostream& os, const Value& value, co
std::ostream& printCsLensFFFF(std::ostream& os, const Value& value, const ExifData* metadata);
//! ModelId, tag 0x0010
constexpr TagDetails canonModelId[] = {{0x00000412, "EOS M50 / Kiss M"},
constexpr TagDetails canonModelId[] = {
{0x00000412, "EOS M50 / Kiss M"},
{0x00000801, "PowerShot SX740 HS"},
{0x00000804, "Powershot G5 X Mark II"},
{0x00000805, "PowerShot SX70 HS"},
@ -384,7 +388,8 @@ constexpr TagDetails canonModelId[] = {{0x00000412, "EOS M50 / Kiss M"},
{0x80000481, "EOS R6 Mark II"},
{0x80000487, "EOS R8"},
{0x80000520, "EOS D2000C"},
{0x80000560, "EOS D6000C"}};
{0x80000560, "EOS D6000C"},
};
//! SerialNumberFormat, tag 0x0015
constexpr TagDetails canonSerialNumberFormat[] = {
@ -393,15 +398,24 @@ constexpr TagDetails canonSerialNumberFormat[] = {
};
//! SuperMacro, tag 0x001a
constexpr TagDetails canonSuperMacro[] = {{0, N_("Off")}, {1, N_("On (1)")}, {2, N_("On (2)")}};
constexpr TagDetails canonSuperMacro[] = {
{0, N_("Off")},
{1, N_("On (1)")},
{2, N_("On (2)")},
};
// DateStampMode, tag 0x001c
constexpr TagDetails canonDateStampMode[] = {{0, N_("Off")}, {1, N_("Date")}, {2, N_("Date & Time")}};
constexpr TagDetails canonDateStampMode[] = {
{0, N_("Off")},
{1, N_("Date")},
{2, N_("Date & Time")},
};
// Categories, tag 0x0023
[[maybe_unused]] constexpr TagDetails canonCategories[] = {
{0x0001, N_("People")}, {0x0002, N_("Scenery")}, {0x0004, N_("Events")}, {0x0008, N_("User 1")},
{0x0016, N_("User 2")}, {0x0032, N_("User 3")}, {0x0064, N_("To Do")}};
{0x0016, N_("User 2")}, {0x0032, N_("User 3")}, {0x0064, N_("To Do")},
};
//! PictureStyle Values
constexpr TagDetails canonPictureStyle[] = {
@ -410,10 +424,12 @@ constexpr TagDetails canonPictureStyle[] = {
{0x21, N_("User Def. 1")}, {0x22, N_("User Def. 2")}, {0x23, N_("User Def. 3")}, {0x41, N_("PC 1")},
{0x42, N_("PC 2")}, {0x43, N_("PC 3")}, {0x81, N_("Standard")}, {0x82, N_("Portrait")},
{0x83, N_("Landscape")}, {0x84, N_("Neutral")}, {0x85, N_("Faithful")}, {0x86, N_("Monochrome")},
{0x87, N_("Auto")}, {0x88, N_("Fine Detail")}};
{0x87, N_("Auto")}, {0x88, N_("Fine Detail")},
};
//! WhiteBalance, multiple tags
constexpr TagDetails canonSiWhiteBalance[] = {{0, N_("Auto")}, {1, N_("Daylight")},
constexpr TagDetails canonSiWhiteBalance[] = {
{0, N_("Auto")}, {1, N_("Daylight")},
{2, N_("Cloudy")}, {3, N_("Tungsten")},
{4, N_("Fluorescent")}, {5, N_("Flash")},
{6, N_("Custom")}, {7, N_("Black & White")},
@ -423,10 +439,15 @@ constexpr TagDetails canonSiWhiteBalance[] = {{0, N_("Auto")}, {1, N_("Da
{15, N_("Custom 1")}, {16, N_("Custom 2")},
{17, N_("Underwater")}, {18, N_("Custom 3")},
{19, N_("Custom 3")}, {20, N_("PC Set 4")},
{21, N_("PC Set 5")}, {23, N_("Auto (ambience priority)")}};
{21, N_("PC Set 5")}, {23, N_("Auto (ambience priority)")},
};
//! ColorSpace, tag 0x00b4
constexpr TagDetails canonColorSpace[] = {{1, N_("sRGB")}, {2, N_("Adobe RGB")}, {65535, N_("n/a")}};
constexpr TagDetails canonColorSpace[] = {
{1, N_("sRGB")},
{2, N_("Adobe RGB")},
{65535, N_("n/a")},
};
//! Canon AF Area Mode, tag 0x2601
constexpr TagDetails canonAFAreaMode[] = {
@ -687,7 +708,8 @@ constexpr TagDetails canonMyColors[] = {
{0, N_("Off")}, {1, N_("Positive Film")}, {2, N_("Light Skin Tone")}, {3, N_("Dark Skin Tone")},
{4, N_("Vivid Blue")}, {5, N_("Vivid Green")}, {6, N_("Vivid Red")}, {7, N_("Color Accent")},
{8, N_("Color Swap")}, {9, N_("Custom")}, {12, N_("Vivid")}, {13, N_("Neutral")},
{14, N_("Sepia")}, {15, N_("B&W")}};
{14, N_("Sepia")}, {15, N_("B&W")},
};
// Canon My Colors Info Tag
constexpr TagInfo CanonMakerNote::tagInfoMc_[] = {
@ -742,7 +764,11 @@ const TagInfo* CanonMakerNote::tagListFcd2() {
}
// Canon ContrastInfo, tag 0x001d
constexpr TagDetails canonContrastInfo[] = {{0x0, N_("Off")}, {0x8, N_("On")}, {0xfff, N_("n/a")}};
constexpr TagDetails canonContrastInfo[] = {
{0x0, N_("Off")},
{0x8, N_("On")},
{0xfff, N_("n/a")},
};
// Canon Contrast Info Tag
constexpr TagInfo CanonMakerNote::tagInfoCo_[] = {
@ -862,11 +888,16 @@ const TagInfo* CanonMakerNote::tagListFl() {
}
// Canon Modified ToneCurve Info, tag 0x0001
constexpr TagDetails canonModifiedToneCurve[] = {{0, N_("Standard")}, {1, N_("Manual")}, {2, N_("Custom")}};
constexpr TagDetails canonModifiedToneCurve[] = {
{0, N_("Standard")},
{1, N_("Manual")},
{2, N_("Custom")},
};
// Canon Modified Sharpness Freq Info, tag 0x0002
constexpr TagDetails canonModifiedSharpnessFreq[] = {{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")},
{3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}};
constexpr TagDetails canonModifiedSharpnessFreq[] = {
{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")},
};
// Canon ModifiedInfo Tag
constexpr TagInfo CanonMakerNote::tagInfoMo_[] = {
@ -901,7 +932,8 @@ const TagInfo* CanonMakerNote::tagListMo() {
// Canon Preview Quality Info, tag 0x0001
constexpr TagDetails canonPreviewQuality[] = {
{-1, N_("n/a")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}, {4, N_("RAW")},
{5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")}};
{5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")},
};
// Canon Preview Image Info Tag
constexpr TagInfo CanonMakerNote::tagInfoPreI_[] = {
@ -937,7 +969,10 @@ const TagInfo* CanonMakerNote::tagListCi() {
// Canon AFMicroAdjMode Quality Info, tag 0x0001
constexpr TagDetails canonAFMicroAdjMode[] = {
{0, N_("Disable")}, {1, N_("Adjust all by the same amount")}, {2, N_("Adjust by lens")}};
{0, N_("Disable")},
{1, N_("Adjust all by the same amount")},
{2, N_("Adjust by lens")},
};
// Canon AFMicroAdj Info Tag
constexpr TagInfo CanonMakerNote::tagInfoAfMiAdj_[] = {
@ -946,7 +981,8 @@ constexpr TagInfo CanonMakerNote::tagInfoAfMiAdj_[] = {
{0x0002, "AFMicroAdjValue", N_("AF Micro Adj Value"), N_("AF Micro Adj Value"), IfdId::canonAfMiAdjId,
SectionId::makerTags, signedRational, -1, printValue},
{0xffff, "(UnknownCanonAFMicroAdjTag)", "(UnknownCanonAFMicroAdjTag)", N_("Unknown Canon AFMicroAdj tag"),
IfdId::canonAfMiAdjId, SectionId::makerTags, signedShort, 1, printValue}};
IfdId::canonAfMiAdjId, SectionId::makerTags, signedShort, 1, printValue},
};
const TagInfo* CanonMakerNote::tagListAfMiAdj() {
return tagInfoAfMiAdj_;
@ -996,14 +1032,26 @@ const TagInfo* CanonMakerNote::tagListVigCor2() {
// Canon AutoLightingOptimizer, tag 0x0002
constexpr TagDetails canonAutoLightingOptimizer[] = {
{0, N_("Standard")}, {1, N_("Low")}, {2, N_("Strong")}, {3, N_("Off")}};
{0, N_("Standard")},
{1, N_("Low")},
{2, N_("Strong")},
{3, N_("Off")},
};
// Canon HighISONoiseReduction, tag 0x0004
constexpr TagDetails canonLongExposureNoiseReduction[] = {{0, N_("Off")}, {1, N_("Auto")}, {2, N_("On")}};
constexpr TagDetails canonLongExposureNoiseReduction[] = {
{0, N_("Off")},
{1, N_("Auto")},
{2, N_("On")},
};
// Canon HighISONoiseReduction, tag 0x0005
constexpr TagDetails canonHighISONoiseReduction[] = {
{0, N_("Standard")}, {1, N_("Low")}, {2, N_("Strong")}, {3, N_("off")}};
{0, N_("Standard")},
{1, N_("Low")},
{2, N_("Strong")},
{3, N_("off")},
};
// Canon LightingOpt Tag
constexpr TagInfo CanonMakerNote::tagInfoLiOp_[] = {
@ -1039,9 +1087,10 @@ const TagInfo* CanonMakerNote::tagListLe() {
}
// Canon AmbienceSelection, tag 0x0001
constexpr TagDetails canonAmbienceSelection[] = {{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Warm")},
{3, N_("Soft")}, {4, N_("Cool")}, {5, N_("Intense")},
{6, N_("Brighter")}, {7, N_("Darker")}, {8, N_("Monochrome")}};
constexpr TagDetails canonAmbienceSelection[] = {
{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Warm")}, {3, N_("Soft")}, {4, N_("Cool")},
{5, N_("Intense")}, {6, N_("Brighter")}, {7, N_("Darker")}, {8, N_("Monochrome")},
};
// Canon Ambience Tag
constexpr TagInfo CanonMakerNote::tagInfoAm_[] = {
@ -1056,11 +1105,19 @@ const TagInfo* CanonMakerNote::tagListAm() {
}
// Canon MultiExposure, tag 0x0001
constexpr TagDetails canonMultiExposure[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (RAW)")}};
constexpr TagDetails canonMultiExposure[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("On (RAW)")},
};
// Canon MultiExposureControl, tag 0x0001
constexpr TagDetails canonMultiExposureControl[] = {
{0, N_("Additive")}, {1, N_("Average")}, {2, N_("Bright (comparative)")}, {3, N_("Dark (comparative)")}};
{0, N_("Additive")},
{1, N_("Average")},
{2, N_("Bright (comparative)")},
{3, N_("Dark (comparative)")},
};
// Canon MultiExp Tag
constexpr TagInfo CanonMakerNote::tagInfoMe_[] = {
@ -1079,10 +1136,15 @@ const TagInfo* CanonMakerNote::tagListMe() {
}
// Canon FilterInfo, tag 0x0001
constexpr TagDetails canonFilterInfo[] = {{-1, N_("Off")}};
constexpr TagDetails canonFilterInfo[] = {
{-1, N_("Off")},
};
// Canon MiniatureFilterOrientation, tag 0x0001
constexpr TagDetails canonMiniatureFilterOrientation[] = {{0, N_("Horizontal")}, {1, N_("Vertical")}};
constexpr TagDetails canonMiniatureFilterOrientation[] = {
{0, N_("Horizontal")},
{1, N_("Vertical")},
};
// Canon Filter Info Tag
constexpr TagInfo CanonMakerNote::tagInfoFil_[] = {
@ -1115,14 +1177,17 @@ const TagInfo* CanonMakerNote::tagListFil() {
}
// Canon HDR, tag 0x0001
constexpr TagDetails canonHdr[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (RAW")}};
constexpr TagDetails canonHdr[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("On (RAW")},
};
// Canon HDREffect, tag 0x0001
constexpr TagDetails canonHdrEffect[] = {{0, N_("Natural")},
{1, N_("Art (standard)")},
{2, N_("Art (vivid)")},
{3, N_("Art (bold)")},
{4, N_("Art (embossed)")}};
constexpr TagDetails canonHdrEffect[] = {
{0, N_("Natural")}, {1, N_("Art (standard)")}, {2, N_("Art (vivid)")},
{3, N_("Art (bold)")}, {4, N_("Art (embossed)")},
};
// Canon HDR Info Tag
constexpr TagInfo CanonMakerNote::tagInfoHdr_[] = {
@ -1131,7 +1196,8 @@ constexpr TagInfo CanonMakerNote::tagInfoHdr_[] = {
{0x0002, "HDREffect", N_("HDR Effect"), N_("HDR Effect"), IfdId::canonHdrId, SectionId::makerTags, signedLong, -1,
EXV_PRINT_TAG(canonHdrEffect)},
{0xffff, "(UnknownHDRTag)", "(UnknownHDRTag)", N_("Unknown Canon HDR Tag"), IfdId::canonHdrId, SectionId::makerTags,
signedLong, 1, printValue}};
signedLong, 1, printValue},
};
const TagInfo* CanonMakerNote::tagListHdr() {
return tagInfoHdr_;
@ -1139,7 +1205,10 @@ const TagInfo* CanonMakerNote::tagListHdr() {
// Canon AIServoFirstImage, tag 0x0001
constexpr TagDetails canonAIServoFirstImage[] = {
{0, N_("Equal Priority")}, {1, N_("Release Priority")}, {2, N_("Focus Priority")}};
{0, N_("Equal Priority")},
{1, N_("Release Priority")},
{2, N_("Focus Priority")},
};
// Canon AIServoSecondImage, tag 0x0001
constexpr TagDetails canonAIServoSecondImage[] = {
@ -1149,43 +1218,67 @@ constexpr TagDetails canonAIServoSecondImage[] = {
// Canon USMLensElectronicMF, tag 0x0001
constexpr TagDetails canonUSMLensElectronicMF[] = {
{0, N_("Enable After AF")}, {1, N_("Disable After AF")}, {2, N_("Disable in AF Mode")}};
{0, N_("Enable After AF")},
{1, N_("Disable After AF")},
{2, N_("Disable in AF Mode")},
};
// Canon AFAssistBeam, tag 0x0001
constexpr TagDetails canonAFAssistBeam[] = {{0, N_("Enable")}, {1, N_("Disable")}, {2, N_("IR AF Assist Beam Mode")}};
constexpr TagDetails canonAFAssistBeam[] = {
{0, N_("Enable")},
{1, N_("Disable")},
{2, N_("IR AF Assist Beam Mode")},
};
// Canon OneShotAFRelease, tag 0x0001
constexpr TagDetails canonOneShotAFRelease[] = {{0, N_("Focus Priority")}, {1, N_("Release Priority")}};
constexpr TagDetails canonOneShotAFRelease[] = {
{0, N_("Focus Priority")},
{1, N_("Release Priority")},
};
// Canon AutoAFPointSelEOSiTRAF, tag 0x0001
constexpr TagDetails canonAutoAFPointSelEOSiTRAF[] = {{0, N_("Enable")}, {1, N_("Disable")}};
constexpr TagDetails canonAutoAFPointSelEOSiTRAF[] = {
{0, N_("Enable")},
{1, N_("Disable")},
};
// Canon LensDriveWhenAFImpossible, tag 0x0001
constexpr TagDetails canonLensDriveWhenAFImpossible[] = {{0, N_("Continue Focus Search")},
{1, N_("Stop Focus Search")}};
constexpr TagDetails canonLensDriveWhenAFImpossible[] = {
{0, N_("Continue Focus Search")},
{1, N_("Stop Focus Search")},
};
// Canon SelectAFAreaSelectionMode, tag 0x0001
constexpr TagDetails canonSelectAFAreaSelectionMode[] = {
{0, N_("Single-Point-AF")}, {1, N_("Auto")},
{2, N_("Zone AF")}, {3, N_("AF Point Expansion (4 point)")},
{4, N_("Spot AF")}, {5, N_("AF Point Expansion (8 point)")}};
{4, N_("Spot AF")}, {5, N_("AF Point Expansion (8 point)")},
};
// Canon AFAreaSelectionMethod, tag 0x0001
constexpr TagDetails canonAFAreaSelectionMethod[] = {{0, N_("M-Fn Button")}, {1, N_("Main Dial")}};
constexpr TagDetails canonAFAreaSelectionMethod[] = {
{0, N_("M-Fn Button")},
{1, N_("Main Dial")},
};
// Canon OrientationLinkedAF, tag 0x0001
constexpr TagDetails canonOrientationLinkedAF[] = {
{0, N_("Same for Vert/Horiz Points")}, {1, N_("Separate for Vert/Horiz Points")}, {2, N_("Separate Area+Points")}};
{0, N_("Same for Vert/Horiz Points")},
{1, N_("Separate for Vert/Horiz Points")},
{2, N_("Separate Area+Points")},
};
// Canon ManualAFPointSelPattern, tag 0x0001
constexpr TagDetails canonManualAFPointSelPattern[] = {{0, N_("Stops at AF Area Edges")}, {1, N_("Continuous")}};
constexpr TagDetails canonManualAFPointSelPattern[] = {
{0, N_("Stops at AF Area Edges")},
{1, N_("Continuous")},
};
// Canon AFPointDisplayDuringFocus, tag 0x0001
constexpr TagDetails canonAFPointDisplayDuringFocus[] = {{0, N_("Selected (constant)")},
{1, N_("All (constant)")},
{1, N_("Selected (pre-AF, focused)")},
{1, N_("Selected (focused)")},
{1, N_("Disabled")}};
constexpr TagDetails canonAFPointDisplayDuringFocus[] = {
{0, N_("Selected (constant)")}, {1, N_("All (constant)")}, {1, N_("Selected (pre-AF, focused)")},
{1, N_("Selected (focused)")}, {1, N_("Disabled")},
};
// Canon VFDisplayIllumination, tag 0x0001
constexpr TagDetails canonAVFDisplayIllumination[] = {
@ -1271,12 +1364,16 @@ const TagInfo* CanonMakerNote::tagListRawB() {
}
//! Macro, tag 0x0001
constexpr TagDetails canonCsMacro[] = {{1, N_("On")}, {2, N_("Off")}};
constexpr TagDetails canonCsMacro[] = {
{1, N_("On")},
{2, N_("Off")},
};
//! Quality, tag 0x0003
constexpr TagDetails canonCsQuality[] = {
{-1, N_("n/a")}, {0, N_("unkown")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")},
{4, N_("RAW")}, {5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")}};
{4, N_("RAW")}, {5, N_("Superfine")}, {7, N_("CRAW")}, {130, N_("Normal Movie")}, {131, N_("Movie (2)")},
};
//! FlashMode, tag 0x0004
constexpr TagDetails canonCsFlashMode[] = {
@ -1286,7 +1383,8 @@ constexpr TagDetails canonCsFlashMode[] = {
};
//! DriveMode, tag 0x0005
constexpr TagDetails canonCsDriveMode[] = {{0, N_("Single / timer")},
constexpr TagDetails canonCsDriveMode[] = {
{0, N_("Single / timer")},
{1, N_("Continuous")},
{2, N_("Movie")},
{3, N_("Continuous, speed priority")},
@ -1295,7 +1393,8 @@ constexpr TagDetails canonCsDriveMode[] = {{0, N_("Single / timer")},
{5, N_("Continuous, high")},
{6, N_("Silent Single")},
{9, N_("Single, Silent")},
{10, N_("Continuous, Silent")}};
{10, N_("Continuous, Silent")},
};
//! FocusMode, tag 0x0007
constexpr TagDetails canonCsFocusMode[] = {
@ -1311,10 +1410,12 @@ constexpr TagDetails canonCsFocusMode[] = {
constexpr TagDetails canonCsRecordMode[] = {
{1, N_("JPEG")}, {2, N_("CRW+THM")}, {3, N_("AVI+THM")}, {4, N_("TIF")}, {5, N_("TIF+JPEG")},
{6, N_("CR2")}, {7, N_("CR2+JPEG")}, {9, N_("MOV")}, {10, N_("MP4")}, {11, N_("CRM")},
{12, N_("CR3")}, {13, N_("CR3+JPEG")}, {14, N_("HIF")}, {15, N_("CR3+HIF")}};
{12, N_("CR3")}, {13, N_("CR3+JPEG")}, {14, N_("HIF")}, {15, N_("CR3+HIF")},
};
//! ImageSize, tag 0x000a
constexpr TagDetails canonCsImageSize[] = {{0, N_("Large")},
constexpr TagDetails canonCsImageSize[] = {
{0, N_("Large")},
{1, N_("Medium")},
{2, N_("Small")},
{5, N_("Medium 1")},
@ -1331,10 +1432,12 @@ constexpr TagDetails canonCsImageSize[] = {{0, N_("Large")},
{130, N_("Small Movie")},
{137, N_("1280x720 Movie")},
{142, N_("1920x1080 Movie")},
{143, N_("4096x2160 Movie")}};
{143, N_("4096x2160 Movie")},
};
//! EasyMode, tag 0x000b
constexpr TagDetails canonCsEasyMode[] = {{0, N_("Full auto")},
constexpr TagDetails canonCsEasyMode[] = {
{0, N_("Full auto")},
{1, N_("Manual")},
{2, N_("Landscape")},
{3, N_("Fast shutter")},
@ -1404,7 +1507,8 @@ constexpr TagDetails canonCsEasyMode[] = {{0, N_("Full auto")},
{261, N_("Sunset")},
{263, N_("Night Scene")},
{264, N_("Surface")},
{265, N_("Low Light 2")}};
{265, N_("Low Light 2")},
};
//! DigitalZoom, tag 0x000c
constexpr TagDetails canonCsDigitalZoom[] = {
@ -1412,7 +1516,11 @@ constexpr TagDetails canonCsDigitalZoom[] = {
};
//! Contrast, Saturation Sharpness, tags 0x000d, 0x000e, 0x000f
constexpr TagDetails canonCsLnh[] = {{0xffff, N_("Low")}, {0x0000, N_("Normal")}, {0x0001, N_("High")}};
constexpr TagDetails canonCsLnh[] = {
{0xffff, N_("Low")},
{0x0000, N_("Normal")},
{0x0001, N_("High")},
};
//! ISOSpeeds, tag 0x0010
constexpr TagDetails canonCsISOSpeed[] = {
@ -1422,41 +1530,49 @@ constexpr TagDetails canonCsISOSpeed[] = {
{17184, "800"}, {17384, "1000"}, {17634, "1250"}, {17984, "1600"}, {18384, "2000"}, {18884, "2500"},
{19584, "3200"}, {20384, "4000"}, {21384, "5000"}, {22784, "6400"}, {24384, "8000"}, {26384, "10000"},
{29184, "12800"}, {29184, "16000"}, {29184, "20000"}, {29184, "25600"}, {29184, "32000"}, {29184, "40000"},
{29184, "H1(51200)"}, {29184, "H2(102400)"}};
{29184, "H1(51200)"}, {29184, "H2(102400)"},
};
//! MeteringMode, tag 0x0011
constexpr TagDetails canonCsMeteringMode[] = {{0, N_("Default")}, {1, N_("Spot")},
{2, N_("Average")}, {3, N_("Evaluative")},
{4, N_("Partial")}, {5, N_("Center-weighted average")}};
constexpr TagDetails canonCsMeteringMode[] = {
{0, N_("Default")}, {1, N_("Spot")}, {2, N_("Average")},
{3, N_("Evaluative")}, {4, N_("Partial")}, {5, N_("Center-weighted average")},
};
//! FocusType, tag 0x0012
constexpr TagDetails canonCsFocusType[] = {{0, N_("Manual")}, {1, N_("Auto")}, {2, N_("Not known")},
{3, N_("Macro")}, {4, N_("Very close")}, {5, N_("Close")},
{6, N_("Middle range")}, {7, N_("Far range")}, {8, N_("Pan focus")},
{9, N_("Super macro")}, {10, N_("Infinity")}};
constexpr TagDetails canonCsFocusType[] = {
{0, N_("Manual")}, {1, N_("Auto")}, {2, N_("Not known")}, {3, N_("Macro")},
{4, N_("Very close")}, {5, N_("Close")}, {6, N_("Middle range")}, {7, N_("Far range")},
{8, N_("Pan focus")}, {9, N_("Super macro")}, {10, N_("Infinity")},
};
//! AFPoint, tag 0x0013
constexpr TagDetails canonCsAfPoint[] = {{0x2005, N_("Manual AF point selection")},
constexpr TagDetails canonCsAfPoint[] = {
{0x2005, N_("Manual AF point selection")},
{0x3000, N_("None (MF)")},
{0x3001, N_("Auto-selected")},
{0x3002, N_("Right")},
{0x3003, N_("Center")},
{0x3004, N_("Left")},
{0x4001, N_("Auto AF point selection")},
{0x4006, N_("Face Detect")}};
{0x4006, N_("Face Detect")},
};
//! ExposureProgram, tag 0x0014
constexpr TagDetails canonCsExposureProgram[] = {{0, N_("Easy shooting (Auto)")},
constexpr TagDetails canonCsExposureProgram[] = {
{0, N_("Easy shooting (Auto)")},
{1, N_("Program (P)")},
{2, N_("Shutter priority (Tv)")},
{3, N_("Aperture priority (Av)")},
{4, N_("Manual (M)")},
{5, N_("A-DEP")},
{6, N_("M-DEP")},
{7, N_("Bulb")}};
{7, N_("Bulb")},
};
//! LensType, tag 0x0016
constexpr TagDetails canonCsLensType[] = {{1, "Canon EF 50mm f/1.8"},
constexpr TagDetails canonCsLensType[] = {
{1, "Canon EF 50mm f/1.8"},
{2, "Canon EF 28mm f/2.8"},
{2, "Sigma 24mm f/2.8 Super Wide II"}, // 1
{3, "Canon EF 135mm f/2.8 Soft"},
@ -1956,10 +2072,14 @@ constexpr TagDetails canonCsLensType[] = {{1, "Canon EF 50mm f/1.8"},
{61182, "Canon RF 135mm F1.8 L IS USM"},
{61182, "Canon RF 24-50mm F4.5-6.3 IS STM"},
{61182, "Canon RF-S 55-210mm F5-7.1 IS STM"},
{65535, "n/a"}};
{65535, "n/a"},
};
//! FlashActivity, tag 0x001c
constexpr TagDetails canonCsFlashActivity[] = {{0, N_("Did not fire")}, {1, N_("Fired")}};
constexpr TagDetails canonCsFlashActivity[] = {
{0, N_("Did not fire")},
{1, N_("Fired")},
};
//! FlashDetails, tag 0x001d
constexpr TagDetailsBitmask canonCsFlashDetails[] = {
@ -1967,36 +2087,56 @@ constexpr TagDetailsBitmask canonCsFlashDetails[] = {
{0x0001, N_("Manual")}, {0x0002, N_("TTL")},
{0x0004, N_("A-TTL")}, {0x0008, N_("E-TTL")},
{0x0010, N_("FP sync enabled")}, {0x0080, N_("2nd-curtain sync used")},
{0x0800, N_("FP sync used")}};
{0x0800, N_("FP sync used")},
};
//! FocusContinuous, tag 0x0020
constexpr TagDetails canonCsFocusContinuous[] = {{0, N_("Single")}, {1, N_("Continuous")}, {8, N_("Manual")}};
constexpr TagDetails canonCsFocusContinuous[] = {
{0, N_("Single")},
{1, N_("Continuous")},
{8, N_("Manual")},
};
//! AESetting, tag 0x0021
constexpr TagDetails canonCsAESetting[] = {{0, N_("Normal AE")}, {1, N_("Exposure compensation")},
constexpr TagDetails canonCsAESetting[] = {
{0, N_("Normal AE")}, {1, N_("Exposure compensation")},
{2, N_("AE lock")}, {3, N_("AE lock + exposure compensation")},
{4, N_("No AE")}, {65535, N_("n/a")}};
{4, N_("No AE")}, {65535, N_("n/a")},
};
//! ImageStabilization, tag 0x0022
constexpr TagDetails canonCsImageStabilization[] = {
{0, N_("Off")}, {1, N_("On")}, {2, N_("Shoot Only")}, {3, N_("Panning")},
{4, N_("Dynamic")}, {256, N_("Off (2)")}, {257, N_("On (2)")}, {258, N_("Shoot Only (2)")},
{259, N_("Panning (2)")}, {260, N_("Dynamic (2)")}};
{0, N_("Off")}, {1, N_("On")},
{2, N_("Shoot Only")}, {3, N_("Panning")},
{4, N_("Dynamic")}, {256, N_("Off (2)")},
{257, N_("On (2)")}, {258, N_("Shoot Only (2)")},
{259, N_("Panning (2)")}, {260, N_("Dynamic (2)")},
};
//! SpotMeteringMode, tag 0x0027
constexpr TagDetails canonCsSpotMeteringMode[] = {{0, N_("Center")}, {1, N_("AF Point")}, {65535, N_("n/a")}};
constexpr TagDetails canonCsSpotMeteringMode[] = {
{0, N_("Center")},
{1, N_("AF Point")},
{65535, N_("n/a")},
};
//! PhotoEffect, tag 0x0028
constexpr TagDetails canonCsPhotoEffect[] = {{0, N_("Off")}, {1, N_("Vivid")}, {2, N_("Neutral")},
{3, N_("Smooth")}, {4, N_("Sepia")}, {5, N_("B&W")},
{6, N_("Custom")}, {100, N_("My color data")}, {65535, N_("n/a")}};
constexpr TagDetails canonCsPhotoEffect[] = {
{0, N_("Off")}, {1, N_("Vivid")}, {2, N_("Neutral")}, {3, N_("Smooth")}, {4, N_("Sepia")},
{5, N_("B&W")}, {6, N_("Custom")}, {100, N_("My color data")}, {65535, N_("n/a")},
};
//! ManualFlashOutput, tag 0x0029
[[maybe_unused]] constexpr TagDetails canonCsManualFlashOutput[] = {
{0x0000, N_("n/a")}, {0x0500, N_("Full")}, {0x0502, N_("Medium")}, {0x0504, N_("Low")}, {0x7fff, N_("n/a")}};
{0x0000, N_("n/a")}, {0x0500, N_("Full")}, {0x0502, N_("Medium")}, {0x0504, N_("Low")}, {0x7fff, N_("n/a")},
};
//! SRAWQuality, tag 0x002e
constexpr TagDetails canonCsSRAWQuality[] = {{0, N_("n/a")}, {1, N_("sRAW1 (mRAW)")}, {2, N_("sRAW2 (sRAW)")}};
constexpr TagDetails canonCsSRAWQuality[] = {
{0, N_("n/a")},
{1, N_("sRAW1 (mRAW)")},
{2, N_("sRAW2 (sRAW)")},
};
// Canon Camera Settings Tag Info
constexpr TagInfo CanonMakerNote::tagInfoCs_[] = {
@ -2092,14 +2232,18 @@ const TagInfo* CanonMakerNote::tagListCs() {
//! AFPointUsed, tag 0x000e
constexpr TagDetailsBitmask canonSiAFPointUsed[] = {
{0x0004, N_("left")}, {0x0002, N_("center")}, {0x0001, N_("right")}};
{0x0004, N_("left")},
{0x0002, N_("center")},
{0x0001, N_("right")},
};
//! FlashBias, tag 0x000f
constexpr TagDetails canonSiFlashBias[] = {
{0xffc0, "-2 EV"}, {0xffcc, "-1.67 EV"}, {0xffd0, "-1.50 EV"}, {0xffd4, "-1.33 EV"}, {0xffe0, "-1 EV"},
{0xffec, "-0.67 EV"}, {0xfff0, "-0.50 EV"}, {0xfff4, "-0.33 EV"}, {0x0000, "0 EV"}, {0x000c, "0.33 EV"},
{0x0010, "0.50 EV"}, {0x0014, "0.67 EV"}, {0x0020, "1 EV"}, {0x002c, "1.33 EV"}, {0x0030, "1.50 EV"},
{0x0034, "1.67 EV"}, {0x0040, "2 EV"}};
{0x0034, "1.67 EV"}, {0x0040, "2 EV"},
};
constexpr TagDetails cameraType[] = {
{0, "n/a"}, {248, "EOS High-end"}, {250, "Compact"}, {252, "EOS Mid-range"}, {255, "DV Camera"},
@ -2109,14 +2253,25 @@ constexpr TagDetails autoExposureBracketing[] = {
{65535, "On"}, {0, "Off"}, {1, "On (shot 1)"}, {2, "On (shot 2)"}, {3, "On (shot 3)"},
};
constexpr TagDetails slowShutter[] = {{65535, "n/a"}, {0, "Off"}, {1, "Night Scene"}, {2, "On"}, {3, "None"}};
constexpr TagDetails slowShutter[] = {
{65535, "n/a"}, {0, "Off"}, {1, "Night Scene"}, {2, "On"}, {3, "None"},
};
constexpr TagDetails autoRotate[] = {
{-1, "n/a"}, {0, "None"}, {1, "Rotate 90 CW"}, {2, "Rotate 180"}, {3, "Rotate 270 CW"}};
{-1, "n/a"}, {0, "None"}, {1, "Rotate 90 CW"}, {2, "Rotate 180"}, {3, "Rotate 270 CW"},
};
constexpr TagDetails ndRotate[] = {{65535, "n/a"}, {0, "Off"}, {1, "On"}};
constexpr TagDetails ndRotate[] = {
{65535, "n/a"},
{0, "Off"},
{1, "On"},
};
constexpr TagDetails selfTimer2[] = {{65535, "n/a"}, {0, "Selftimer 2s"}, {1, "Selftimer 10s"}};
constexpr TagDetails selfTimer2[] = {
{65535, "n/a"},
{0, "Selftimer 2s"},
{1, "Selftimer 10s"},
};
// Canon Shot Info Tag
constexpr TagInfo CanonMakerNote::tagInfoSi_[] = {
@ -2187,11 +2342,10 @@ const TagInfo* CanonMakerNote::tagListSi() {
}
//! PanoramaDirection, tag 0x0005
constexpr TagDetails canonPaDirection[] = {{0, N_("Left to right")},
{1, N_("Right to left")},
{2, N_("Bottom to top")},
{3, N_("Top to bottom")},
{4, N_("2x2 matrix (Clockwise)")}};
constexpr TagDetails canonPaDirection[] = {
{0, N_("Left to right")}, {1, N_("Right to left")}, {2, N_("Bottom to top")},
{3, N_("Top to bottom")}, {4, N_("2x2 matrix (Clockwise)")},
};
// Canon Panorama Info
constexpr TagInfo CanonMakerNote::tagInfoPa_[] = {
@ -2252,13 +2406,15 @@ const TagInfo* CanonMakerNote::tagListCf() {
//! AFPointsUsed, tag 0x0016
constexpr TagDetailsBitmask canonPiAFPointsUsed[] = {
{0x01, N_("right")}, {0x02, N_("mid-right")}, {0x04, N_("bottom")}, {0x08, N_("center")},
{0x10, N_("top")}, {0x20, N_("mid-left")}, {0x40, N_("left")}};
{0x10, N_("top")}, {0x20, N_("mid-left")}, {0x40, N_("left")},
};
//! AFPointsUsed20D, tag 0x001a
constexpr TagDetailsBitmask canonPiAFPointsUsed20D[] = {
{0x001, N_("top")}, {0x002, N_("upper-left")}, {0x004, N_("upper-right")},
{0x008, N_("left")}, {0x010, N_("center")}, {0x020, N_("right")},
{0x040, N_("lower-left")}, {0x080, N_("lower-right")}, {0x100, N_("bottom")}};
{0x040, N_("lower-left")}, {0x080, N_("lower-right")}, {0x100, N_("bottom")},
};
// Canon Picture Info Tag
constexpr TagInfo CanonMakerNote::tagInfoPi_[] = {
@ -2285,10 +2441,12 @@ const TagInfo* CanonMakerNote::tagListPi() {
//! BracketMode, tag 0x0003
constexpr TagDetails canonBracketMode[] = {
{0, N_("Off")}, {1, N_("AEB")}, {2, N_("FEB")}, {3, N_("ISO")}, {4, N_("WB")}};
{0, N_("Off")}, {1, N_("AEB")}, {2, N_("FEB")}, {3, N_("ISO")}, {4, N_("WB")},
};
//! RawJpgSize, tag 0x0007
constexpr TagDetails canonRawJpgSize[] = {{-1, N_("n/a")},
constexpr TagDetails canonRawJpgSize[] = {
{-1, N_("n/a")},
{0, N_("Large")},
{1, N_("Medium")},
{2, N_("Small")},
@ -2306,26 +2464,35 @@ constexpr TagDetails canonRawJpgSize[] = {{-1, N_("n/a")},
{130, N_("Small Movie")},
{137, N_("1280x720 Movie")},
{142, N_("1920x1080 Movie")},
{143, N_("4096x2160 Movie")}};
{143, N_("4096x2160 Movie")},
};
//! NoiseReduction, tag 0x0008
constexpr TagDetails canonNoiseReduction[] = {
{0, N_("Off")}, {1, N_("On 1")}, {2, N_("On 2")}, {3, N_("On")}, {4, N_("Auto")}};
{0, N_("Off")}, {1, N_("On 1")}, {2, N_("On 2")}, {3, N_("On")}, {4, N_("Auto")},
};
//! WBBracketMode, tag 0x0009
constexpr TagDetails canonWBBracketMode[] = {{0, N_("Off")}, {1, N_("On (shift AB)")}, {2, N_("On (shift GM)")}};
constexpr TagDetails canonWBBracketMode[] = {
{0, N_("Off")},
{1, N_("On (shift AB)")},
{2, N_("On (shift GM)")},
};
//! FilterEffect, tag 0x000e
constexpr TagDetails canonFilterEffect[] = {
{0, N_("None")}, {1, N_("Yellow")}, {2, N_("Orange")}, {3, N_("Red")}, {4, N_("Green")}};
{0, N_("None")}, {1, N_("Yellow")}, {2, N_("Orange")}, {3, N_("Red")}, {4, N_("Green")},
};
//! ToningEffect, tag 0x000e
constexpr TagDetails canonToningEffect[] = {
{0, N_("None")}, {1, N_("Sepia")}, {2, N_("Blue")}, {3, N_("Purple")}, {4, N_("Green")}};
{0, N_("None")}, {1, N_("Sepia")}, {2, N_("Blue")}, {3, N_("Purple")}, {4, N_("Green")},
};
//! RFLensType, tag 0x003D
// from https://github.com/exiftool/exiftool/blob/12.49/lib/Image/ExifTool/Canon.pm#L6791
constexpr TagDetails canonRFLensType[] = {{0, N_("n/a")},
constexpr TagDetails canonRFLensType[] = {
{0, N_("n/a")},
{257, "Canon RF 50mm F1.2L USM"},
{258, "Canon RF 24-105mm F4L IS USM"},
{259, "Canon RF 28-70mm F2L USM"},
@ -2371,7 +2538,8 @@ constexpr TagDetails canonRFLensType[] = {{0, N_("n/a")},
{302, "Canon RF 15-30mm F4.5-6.3 IS STM"},
{303, "Canon RF 135mm F1.8 L IS USM"},
{304, "Canon RF 24-50mm F4.5-6.3 IS STM"},
{305, "Canon RF-S 55-210mm F5-7.1 IS STM"}};
{305, "Canon RF-S 55-210mm F5-7.1 IS STM"},
};
// Canon File Info Tag
constexpr TagInfo CanonMakerNote::tagInfoFi_[] = {
@ -2421,11 +2589,16 @@ const TagInfo* CanonMakerNote::tagListFi() {
}
//! Tone Curve Values
constexpr TagDetails canonToneCurve[] = {{0, N_("Standard")}, {1, N_("Manual")}, {2, N_("Custom")}};
constexpr TagDetails canonToneCurve[] = {
{0, N_("Standard")},
{1, N_("Manual")},
{2, N_("Custom")},
};
//! Sharpness Frequency Values
constexpr TagDetails canonSharpnessFrequency[] = {{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")},
{3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}};
constexpr TagDetails canonSharpnessFrequency[] = {
{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")},
};
// Canon Processing Info Tag
constexpr TagInfo CanonMakerNote::tagInfoPr_[] = {

@ -21,62 +21,84 @@
// class member definitions
namespace Exiv2::Internal {
//! RecordingMode, tag 0x0001
constexpr TagDetails casioRecordingMode[] = {{1, N_("Single Shutter")}, {2, N_("Panorama")}, {3, N_("Night Scene")},
constexpr TagDetails casioRecordingMode[] = {
{1, N_("Single Shutter")}, {2, N_("Panorama")}, {3, N_("Night Scene")},
{4, N_("Portrait")}, {5, N_("Landscape")}, {7, N_("Panorama")},
{10, N_("Night Scene")}, {15, N_("Portrait")}, {16, N_("Landscape")}};
{10, N_("Night Scene")}, {15, N_("Portrait")}, {16, N_("Landscape")},
};
//! Quality, tag 0x0002
constexpr TagDetails casioQuality[] = {{1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}};
constexpr TagDetails casioQuality[] = {
{1, N_("Economy")},
{2, N_("Normal")},
{3, N_("Fine")},
};
//! Focus Mode, tag 0x0003
constexpr TagDetails casioFocusMode[] = {
{2, N_("Macro")}, {3, N_("Auto")}, {4, N_("Manual")}, {5, N_("Infinity")}, {7, N_("Sport AF")}};
{2, N_("Macro")}, {3, N_("Auto")}, {4, N_("Manual")}, {5, N_("Infinity")}, {7, N_("Sport AF")},
};
//! FlashMode, tag 0x0004
constexpr TagDetails casioFlashMode[] = {
{1, N_("Auto")}, {2, N_("On")}, {3, N_("Off")}, {4, N_("Off")}, {5, N_("Red-eye Reduction")}};
{1, N_("Auto")}, {2, N_("On")}, {3, N_("Off")}, {4, N_("Off")}, {5, N_("Red-eye Reduction")},
};
//! Flash intensity, tag 0x0005
constexpr TagDetails casioFlashIntensity[] = {
{11, N_("Weak")}, {12, N_("Low")}, {13, N_("Normal")}, {14, N_("High")}, {15, N_("Strong")}};
{11, N_("Weak")}, {12, N_("Low")}, {13, N_("Normal")}, {14, N_("High")}, {15, N_("Strong")},
};
//! white balance, tag 0x0007
constexpr TagDetails casioWhiteBalance[] = {{1, N_("Auto")}, {2, N_("Tungsten")}, {3, N_("Daylight")},
{4, N_("Fluorescent")}, {5, N_("Shade")}, {129, N_("Manual")}};
constexpr TagDetails casioWhiteBalance[] = {
{1, N_("Auto")}, {2, N_("Tungsten")}, {3, N_("Daylight")},
{4, N_("Fluorescent")}, {5, N_("Shade")}, {129, N_("Manual")},
};
//! Flash intensity, tag 0x0005
constexpr TagDetails casioDigitalZoom[] = {{0x10000, N_("Off")}, {0x10001, N_("2x")}, {0x13333, N_("1.2x")},
{0x13ae1, N_("1.23x")}, {0x19999, N_("1.6x")}, {0x20000, N_("2x")},
{0x33333, N_("3.2x")}, {0x40000, N_("4x")}};
constexpr TagDetails casioDigitalZoom[] = {
{0x10000, N_("Off")}, {0x10001, N_("2x")}, {0x13333, N_("1.2x")}, {0x13ae1, N_("1.23x")},
{0x19999, N_("1.6x")}, {0x20000, N_("2x")}, {0x33333, N_("3.2x")}, {0x40000, N_("4x")},
};
//! Sharpness, tag 0x000b
constexpr TagDetails casioSharpness[] = {{0, N_("Normal")}, {1, N_("Soft")}, {2, N_("Hard")},
{16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}};
constexpr TagDetails casioSharpness[] = {
{0, N_("Normal")}, {1, N_("Soft")}, {2, N_("Hard")}, {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")},
};
//! Contrast, tag 0x000c
constexpr TagDetails casioContrast[] = {{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")},
{16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}};
constexpr TagDetails casioContrast[] = {
{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}, {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")},
};
//! Saturation, tag 0x000d
constexpr TagDetails casioSaturation[] = {{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")},
{16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")}};
constexpr TagDetails casioSaturation[] = {
{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}, {16, N_("Normal")}, {17, N_("+1")}, {18, N_("-1")},
};
//! Enhancement, tag 0x0016
constexpr TagDetails casioEnhancement[] = {
{1, N_("Off")}, {2, N_("Red")}, {3, N_("Green")}, {4, N_("Blue")}, {5, N_("Flesh Tones")}};
{1, N_("Off")}, {2, N_("Red")}, {3, N_("Green")}, {4, N_("Blue")}, {5, N_("Flesh Tones")},
};
//! Color filter, tag 0x0017
constexpr TagDetails casioColorFilter[] = {{1, N_("Off")}, {2, N_("Black & White")}, {3, N_("Sepia")},
{4, N_("Red")}, {5, N_("Green")}, {6, N_("Blue")},
{7, N_("Yellow")}, {8, N_("Pink")}, {9, N_("Purple")}};
constexpr TagDetails casioColorFilter[] = {
{1, N_("Off")}, {2, N_("Black & White")}, {3, N_("Sepia")}, {4, N_("Red")}, {5, N_("Green")},
{6, N_("Blue")}, {7, N_("Yellow")}, {8, N_("Pink")}, {9, N_("Purple")},
};
//! flash intensity 2, tag 0x0019
constexpr TagDetails casioFlashIntensity2[] = {{1, N_("Normal")}, {2, N_("Weak")}, {3, N_("Strong")}};
constexpr TagDetails casioFlashIntensity2[] = {
{1, N_("Normal")},
{2, N_("Weak")},
{3, N_("Strong")},
};
//! CCD Sensitivity intensity, tag 0x0020
constexpr TagDetails casioCCDSensitivity[] = {
{64, N_("Normal")}, {125, N_("+1.0")}, {250, N_("+2.0")}, {244, N_("+3.0")}, {80, N_("Normal (ISO 80 equivalent)")},
{100, N_("High")}};
{100, N_("High")},
};
// Casio MakerNote Tag Info
constexpr TagInfo CasioMakerNote::tagInfo_[] = {
@ -167,66 +189,106 @@ std::ostream& CasioMakerNote::print0x0015(std::ostream& os, const Value& value,
// Casio Makernotes, Type 2
//! Quality Mode, tag 0x0004
constexpr TagDetails casio2QualityMode[] = {{0, N_("Economy")}, {1, N_("Normal")}, {2, N_("Fine")}};
constexpr TagDetails casio2QualityMode[] = {
{0, N_("Economy")},
{1, N_("Normal")},
{2, N_("Fine")},
};
//! Image Size, tag 0x0009
constexpr TagDetails casio2ImageSize[] = {{0, "640x480"}, {4, "1600x1200"}, {5, "2048x1536"}, {20, "2288x1712"},
{21, "2592x1944"}, {22, "2304x1728"}, {36, "3008x2008"}};
constexpr TagDetails casio2ImageSize[] = {
{0, "640x480"}, {4, "1600x1200"}, {5, "2048x1536"}, {20, "2288x1712"},
{21, "2592x1944"}, {22, "2304x1728"}, {36, "3008x2008"},
};
//! Focus Mode, tag 0x000d
constexpr TagDetails casio2FocusMode[] = {{0, N_("Normal")}, {1, N_("Macro")}};
constexpr TagDetails casio2FocusMode[] = {
{0, N_("Normal")},
{1, N_("Macro")},
};
//! ISO Speed, tag 0x0014
constexpr TagDetails casio2IsoSpeed[] = {{3, "50"}, {4, "64"}, {6, "100"}, {9, "200"}};
constexpr TagDetails casio2IsoSpeed[] = {
{3, "50"},
{4, "64"},
{6, "100"},
{9, "200"},
};
//! White Balance, tag 0x0019
constexpr TagDetails casio2WhiteBalance[] = {{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Shade")},
{3, N_("Tungsten")}, {4, N_("Fluorescent")}, {5, N_("Manual")}};
constexpr TagDetails casio2WhiteBalance[] = {
{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Shade")},
{3, N_("Tungsten")}, {4, N_("Fluorescent")}, {5, N_("Manual")},
};
//! Saturation, tag 0x001f
constexpr TagDetails casio2Saturation[] = {{0, N_("Low")}, {1, N_("Normal")}, {2, N_("High")}};
constexpr TagDetails casio2Saturation[] = {
{0, N_("Low")},
{1, N_("Normal")},
{2, N_("High")},
};
//! Contrast, tag 0x0020
constexpr TagDetails casio2Contrast[] = {{0, N_("Low")}, {1, N_("Normal")}, {2, N_("High")}};
constexpr TagDetails casio2Contrast[] = {
{0, N_("Low")},
{1, N_("Normal")},
{2, N_("High")},
};
//! Sharpness, tag 0x0021
constexpr TagDetails casio2Sharpness[] = {{0, N_("Soft")}, {1, N_("Normal")}, {2, N_("Hard")}};
constexpr TagDetails casio2Sharpness[] = {
{0, N_("Soft")},
{1, N_("Normal")},
{2, N_("Hard")},
};
//! White Balance2, tag 0x2012
constexpr TagDetails casio2WhiteBalance2[] = {{0, N_("Manual")}, {1, N_("Daylight")}, {2, N_("Cloudy")},
{3, N_("Shade")}, {4, N_("Flash")}, {6, N_("Fluorescent")},
{9, N_("Tungsten")}, {10, N_("Tungsten")}, {12, N_("Flash")}};
constexpr TagDetails casio2WhiteBalance2[] = {
{0, N_("Manual")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, {4, N_("Flash")},
{6, N_("Fluorescent")}, {9, N_("Tungsten")}, {10, N_("Tungsten")}, {12, N_("Flash")},
};
//! Release Mode, tag 0x3001
constexpr TagDetails casio2ReleaseMode[] = {{1, N_("Normal")},
constexpr TagDetails casio2ReleaseMode[] = {
{1, N_("Normal")},
{3, N_("AE Bracketing")},
{11, N_("WB Bracketing")},
{13, N_("Contrast Bracketing")},
{19, N_("High Speed Burst")}};
{19, N_("High Speed Burst")},
};
//! Quality, tag 0x3002
constexpr TagDetails casio2Quality[] = {{1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}};
constexpr TagDetails casio2Quality[] = {
{1, N_("Economy")},
{2, N_("Normal")},
{3, N_("Fine")},
};
//! Focus Mode 2, tag 0x3003
constexpr TagDetails casio2FocusMode2[] = {{0, N_("Manual")}, {1, N_("Focus Lock")},
constexpr TagDetails casio2FocusMode2[] = {
{0, N_("Manual")}, {1, N_("Focus Lock")},
{2, N_("Macro")}, {3, N_("Single-Area Auto Focus")},
{5, N_("Infinity")}, {6, N_("Multi-Area Auto Focus")},
{8, N_("Super Macro")}};
{8, N_("Super Macro")},
};
//! AutoISO, tag 0x3008
constexpr TagDetails casio2AutoISO[] = {{1, N_("On")},
{2, N_("Off")},
{7, N_("On (high sensitivity)")},
{8, N_("On (anti-shake)")},
{10, N_("High Speed")}};
constexpr TagDetails casio2AutoISO[] = {
{1, N_("On")}, {2, N_("Off")}, {7, N_("On (high sensitivity)")}, {8, N_("On (anti-shake)")}, {10, N_("High Speed")},
};
//! AFMode, tag 0x3009
constexpr TagDetails casio2AFMode[] = {{0, N_("Off")}, {1, N_("Spot")},
{2, N_("Multi")}, {3, N_("Face Detection")},
{4, N_("Tracking")}, {5, N_("Intelligent")}};
constexpr TagDetails casio2AFMode[] = {
{0, N_("Off")}, {1, N_("Spot")}, {2, N_("Multi")}, {3, N_("Face Detection")},
{4, N_("Tracking")}, {5, N_("Intelligent")},
};
//! ColorMode, tag 0x3015
constexpr TagDetails casio2ColorMode[] = {{0, N_("Off")}, {2, N_("Black & White")}, {3, N_("Sepia")}};
constexpr TagDetails casio2ColorMode[] = {
{0, N_("Off")},
{2, N_("Black & White")},
{3, N_("Sepia")},
};
//! Enhancement, tag 0x3016
constexpr TagDetails casio2Enhancement[] = {
@ -235,8 +297,10 @@ constexpr TagDetails casio2Enhancement[] = {
};
//! Color Filter, tag 0x3017
constexpr TagDetails casio2ColorFilter[] = {{0, N_("Off")}, {1, N_("Blue")}, {3, N_("Green")}, {4, N_("Yellow")},
{5, N_("Red")}, {6, N_("Purple")}, {7, N_("Pink")}};
constexpr TagDetails casio2ColorFilter[] = {
{0, N_("Off")}, {1, N_("Blue")}, {3, N_("Green")}, {4, N_("Yellow")},
{5, N_("Red")}, {6, N_("Purple")}, {7, N_("Pink")},
};
//! Art Mode, tag 0x301b
constexpr TagDetails casio2ArtMode[] = {
@ -244,32 +308,48 @@ constexpr TagDetails casio2ArtMode[] = {
{45, N_("Premium Auto")}, {47, N_("Painting")}, {49, N_("Crayon Drawing")},
{51, N_("Panorama")}, {52, N_("Art HDR")}, {62, N_("High Speed Night Shot")},
{64, N_("Monochrome")}, {67, N_("Toy Camera")}, {68, N_("Pop Art")},
{69, N_("Light Tone")}};
{69, N_("Light Tone")},
};
//! Lighting Mode, tag 0x302a
constexpr TagDetails casio2LightingMode[] = {
{0, N_("Off")}, {1, N_("High Dynamic Range")}, {5, N_("Shadow Enhance Low")}, {6, N_("Shadow Enhance High")}};
{0, N_("Off")},
{1, N_("High Dynamic Range")},
{5, N_("Shadow Enhance Low")},
{6, N_("Shadow Enhance High")},
};
//! Portrait Refiner, tag 0x302b
constexpr TagDetails casio2PortraitRefiner[] = {{0, N_("Off")}, {1, N_("+1")}, {2, N_("+2")}};
constexpr TagDetails casio2PortraitRefiner[] = {
{0, N_("Off")},
{1, N_("+1")},
{2, N_("+2")},
};
//! Special Effect Setting, tag 0x3031
constexpr TagDetails casio2SpecialEffectSetting[] = {
{0, N_("Off")}, {1, N_("Makeup")}, {2, N_("Mist Removal")}, {3, N_("Vivid Landscape")}, {16, N_("Art Shot")}};
{0, N_("Off")}, {1, N_("Makeup")}, {2, N_("Mist Removal")}, {3, N_("Vivid Landscape")}, {16, N_("Art Shot")},
};
//! Drive Mode, tag 0x3103
constexpr TagDetails casio2DriveMode[] = {{0, N_("Single Shot")}, {1, N_("Continuous Shooting")},
constexpr TagDetails casio2DriveMode[] = {
{0, N_("Single Shot")}, {1, N_("Continuous Shooting")},
{2, N_("Continuous (2 fps)")}, {3, N_("Continuous (3 fps)")},
{4, N_("Continuous (4 fps)")}, {5, N_("Continuous (5 fps)")},
{6, N_("Continuous (6 fps)")}, {7, N_("Continuous (7 fps)")},
{10, N_("Continuous (10 fps)")}, {12, N_("Continuous (12 fps)")},
{15, N_("Continuous (15 fps)")}, {20, N_("Continuous (20 fps)")},
{30, N_("Continuous (30 fps)")}, {40, N_("Continuous (40 fps)")},
{60, N_("Continuous (60 fps)")}, {240, N_("Auto-N")}};
{60, N_("Continuous (60 fps)")}, {240, N_("Auto-N")},
};
//! Video Quality, tag 0x4003
constexpr TagDetails casio2VideoQuality[] = {
{1, N_("Standard")}, {3, N_("HD (720p)")}, {4, N_("Full HD (1080p)")}, {5, N_("Low")}};
{1, N_("Standard")},
{3, N_("HD (720p)")},
{4, N_("Full HD (1080p)")},
{5, N_("Low")},
};
// Casio2 MakerNote Tag Info
constexpr TagInfo Casio2MakerNote::tagInfo_[] = {

@ -19,16 +19,21 @@
// class member definitions
namespace Exiv2::Internal {
//! OffOn, multiple tags
constexpr TagDetails fujiOffOn[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails fujiOffOn[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Sharpness, tag 0x1001
constexpr TagDetails fujiSharpness[] = {
{0, N_("-4 (softest)")}, {1, N_("-3 (very soft)")}, {2, N_("-2 (soft)")},
{3, N_("0 (normal)")}, {4, N_("+2 (hard)")}, {5, N_("+3 (very hard)")},
{6, N_("+4 (hardest)")}, {130, N_("-1 (medium soft)")}, {132, N_("+1 (medium hard)")}};
{6, N_("+4 (hardest)")}, {130, N_("-1 (medium soft)")}, {132, N_("+1 (medium hard)")},
};
//! WhiteBalance, tag 0x1002
constexpr TagDetails fujiWhiteBalance[] = {{0, N_("Auto")},
constexpr TagDetails fujiWhiteBalance[] = {
{0, N_("Auto")},
{1, N_("Auto White Priority")},
{2, N_("Auto Ambience Priority")},
{256, N_("Daylight")},
@ -44,10 +49,12 @@ constexpr TagDetails fujiWhiteBalance[] = {{0, N_("Auto")},
{3842, N_("Custom 3")},
{3843, N_("Custom 4")},
{3844, N_("Custom 5")},
{4080, N_("Kelvin")}};
{4080, N_("Kelvin")},
};
//! Color, tag 0x1003
constexpr TagDetails fujiColor[] = {{0, N_("0 (normal)")},
constexpr TagDetails fujiColor[] = {
{0, N_("0 (normal)")},
{128, N_("+1 (medium high)")},
{192, N_("+3 (very high)")},
{224, N_("+4 (highest)")},
@ -66,14 +73,21 @@ constexpr TagDetails fujiColor[] = {{0, N_("0 (normal)")},
{1281, N_("ACROS + R Filter")},
{1282, N_("ACROS + Ye Filter")},
{1283, N_("ACROS + G Filter")},
{32768, N_("Film Simulation")}};
{32768, N_("Film Simulation")},
};
//! Tone, tag 0x1004
constexpr TagDetails fujiTone[] = {{0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")},
{384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")}};
constexpr TagDetails fujiTone[] = {
{0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")},
{384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")},
};
//! Tone, tag 0x1006
constexpr TagDetails fujiContrast[] = {{0, N_("Normal")}, {256, N_("High")}, {768, N_("Low")}};
constexpr TagDetails fujiContrast[] = {
{0, N_("Normal")},
{256, N_("High")},
{768, N_("Low")},
};
//! WhiteBalanceFineTune, tag 0x100a
static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value& value, const ExifData*) {
@ -91,21 +105,28 @@ static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value
}
//! NoiseReduction, tag 0x100b
constexpr TagDetails fujiNoiseReduction[]{{64, N_("Low")}, {128, N_("Normal")}, {256, N_("n/a")}};
constexpr TagDetails fujiNoiseReduction[]{
{64, N_("Low")},
{128, N_("Normal")},
{256, N_("n/a")},
};
//! High ISO NR, tag 0x100e
constexpr TagDetails fujiHighIsoNR[] = {
{0, N_("0 (normal)")}, {256, N_("+2 (strong)")}, {384, N_("+1 (medium strong)")},
{448, N_("+3 (very strong)")}, {480, N_("+4 (strongest)")}, {512, N_("-2 (weak)")},
{640, N_("-1 (medium weak)")}, {704, N_("-3 (very weak)")}, {736, N_("-4 (weakest)")}};
{640, N_("-1 (medium weak)")}, {704, N_("-3 (very weak)")}, {736, N_("-4 (weakest)")},
};
//! Clarity, tag 0x100f
constexpr TagDetails fujiClarity[] = {{-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")},
{-1000, N_("-1")}, {0, N_("0")}, {1000, N_("+1")}, {2000, N_("+2")},
{3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")}};
constexpr TagDetails fujiClarity[] = {
{-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")}, {-1000, N_("-1")}, {0, N_("0")},
{1000, N_("+1")}, {2000, N_("+2")}, {3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")},
};
//! FlashMode, tag 0x1010
constexpr TagDetails fujiFlashMode[] = {{0x0000, N_("Auto")},
constexpr TagDetails fujiFlashMode[] = {
{0x0000, N_("Auto")},
{0x0001, N_("On")},
{0x0002, N_("Off")},
{0x0003, N_("Red-eye reduction")},
@ -129,17 +150,27 @@ constexpr TagDetails fujiFlashMode[] = {{0x0000, N_("Auto")},
{0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")},
{0xce20, N_("TTL Slow - Red-eye Flash - 2nd Curtain (rear)")},
{0xcf20, N_("TTL Auto - Red-eye Flash - 2nd Curtain (rear)")},
{0xe920, N_("High Speed Sync (HSS)")}};
{0xe920, N_("High Speed Sync (HSS)")},
};
//! FocusMode, tag 0x1021
constexpr TagDetails fujiFocusMode[] = {{0, N_("Auto")}, {1, N_("Manual")}, {65535, N_("Movie")}};
constexpr TagDetails fujiFocusMode[] = {
{0, N_("Auto")},
{1, N_("Manual")},
{65535, N_("Movie")},
};
//! FocusArea, tag 0x1022
constexpr TagDetails fujiFocusArea[] = {
{0, N_("Wide")}, {1, N_("Single Point")}, {256, N_("Zone")}, {512, N_("Tracking")}};
{0, N_("Wide")},
{1, N_("Single Point")},
{256, N_("Zone")},
{512, N_("Tracking")},
};
//! PictureMode, tag 0x1031
constexpr TagDetails fujiPictureMode[] = {{0, N_("Auto")},
constexpr TagDetails fujiPictureMode[] = {
{0, N_("Auto")},
{1, N_("Portrait")},
{2, N_("Landscape")},
{3, N_("Macro")},
@ -171,19 +202,23 @@ constexpr TagDetails fujiPictureMode[] = {{0, N_("Auto")},
{64, N_("Advanced Filter")},
{256, N_("Aperture-priority AE")},
{512, N_("Shutter speed priority AE")},
{768, N_("Manual")}};
{768, N_("Manual")},
};
//! EXRMode, tag 0x1034
constexpr TagDetails fujiExrMode[] = {{0x100, N_("HR (High Resolution)")},
constexpr TagDetails fujiExrMode[] = {
{0x100, N_("HR (High Resolution)")},
{0x200, N_("SN (Signal to Noise priority)")},
{0x300, N_("DR (Dynamic Range priority)")}};
{0x300, N_("DR (Dynamic Range priority)")},
};
//! ShadowTone, tag 0x1040
//! HighlightTone, tag 0x041
constexpr TagDetails fujiSHTone[] = {{-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")},
{-32, N_("+2")}, {-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")},
{0, N_("0")}, {8, N_("-0.5")}, {16, N_("-1")}, {24, N_("-1.5")},
{32, N_("-2")}};
constexpr TagDetails fujiSHTone[] = {
{-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")}, {-32, N_("+2")},
{-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")}, {0, N_("0")}, {8, N_("-0.5")},
{16, N_("-1")}, {24, N_("-1.5")}, {32, N_("-2")},
};
//! DigitalZoom, tag 0x1044
static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value, const ExifData*) {
@ -197,7 +232,11 @@ static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value,
//! GrainEffectRoughness, tag 0x104c
//! ColorChromeEffect, tag 0x1048
//! ColorChromeFXBlue, tag 0x104e
constexpr TagDetails fujiOff0Weak32Strong64[] = {{0, N_("Off")}, {32, N_("Weak")}, {64, N_("Strong")}};
constexpr TagDetails fujiOff0Weak32Strong64[] = {
{0, N_("Off")},
{32, N_("Weak")},
{64, N_("Strong")},
};
//! CropMode, tag 0x104d
constexpr TagDetails fujiCropMode[] = {
@ -219,20 +258,27 @@ static std::ostream& printFujiMonochromaticColor(std::ostream& os, const Value&
}
//! ShutterType, tag 0x1050
constexpr TagDetails fujiShutterType[] = {{0, N_("Mechanical")},
constexpr TagDetails fujiShutterType[] = {
{0, N_("Mechanical")},
{1, N_("Electronic")},
{2, N_("Electronic (long shutter speed)")},
{3, N_("Electronic Front Curtain")}};
{3, N_("Electronic Front Curtain")},
};
//! Continuous, tag 0x1100
constexpr TagDetails fujiContinuous[] = {{0, N_("Off")},
constexpr TagDetails fujiContinuous[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Pre-shot/No flash & flash")}, // TODO newer cameras: Pre-shot
{6, N_("Pixel Shift")}};
{6, N_("Pixel Shift")},
};
//! DriveSetting Byte 1, tag 0x1100
constexpr TagDetails fujiDriveSettingByte1[] = {
{0, N_("Single")}, {1, N_("Continuous Low")}, {2, N_("Continuous High")}};
{0, N_("Single")},
{1, N_("Continuous Low")},
{2, N_("Continuous High")},
};
//! DriveSetting, tag 0x1103
static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value, const ExifData*) {
@ -258,10 +304,16 @@ static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value,
}
//! PanoramaDirection, tag 0x1154
constexpr TagDetails fujiPanoramaDirection[] = {{1, N_("Right")}, {2, N_("Up")}, {3, N_("Left")}, {4, N_("Down")}};
constexpr TagDetails fujiPanoramaDirection[] = {
{1, N_("Right")},
{2, N_("Up")},
{3, N_("Left")},
{4, N_("Down")},
};
//! AdvancedFilter, tag 0x1201
constexpr TagDetails fujiAdvancedFilter[] = {{0x10000, N_("Pop Color")},
constexpr TagDetails fujiAdvancedFilter[] = {
{0x10000, N_("Pop Color")},
{0x20000, N_("Hi Key")},
{0x30000, N_("Toy Camera")},
{0x40000, N_("Miniature")},
@ -273,16 +325,25 @@ constexpr TagDetails fujiAdvancedFilter[] = {{0x10000, N_("Pop Color")},
{0x60005, N_("Partial Color Orange")},
{0x60006, N_("Partial Color Purple")},
{0x70000, N_("Soft Focus")},
{0x90000, N_("Low Key")}};
{0x90000, N_("Low Key")},
};
//! FinePixColor, tag 0x1210
constexpr TagDetails fujiFinePixColor[] = {{0, N_("Standard")}, {16, N_("Chrome")}, {48, N_("Black & white")}};
constexpr TagDetails fujiFinePixColor[] = {
{0, N_("Standard")},
{16, N_("Chrome")},
{48, N_("Black & white")},
};
//! DynamicRange, tag 0x1400
constexpr TagDetails fujiDynamicRange[] = {{1, N_("Standard")}, {3, N_("Wide")}};
constexpr TagDetails fujiDynamicRange[] = {
{1, N_("Standard")},
{3, N_("Wide")},
};
//! FilmMode, tag 0x1401
constexpr TagDetails fujiFilmMode[] = {{0, N_("PROVIA (F0/Standard)")},
constexpr TagDetails fujiFilmMode[] = {
{0, N_("PROVIA (F0/Standard)")},
{256, N_("F1/Studio Portrait")},
{272, N_("F1a/Studio Portrait Enhanced Saturation")},
{288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")},
@ -296,39 +357,57 @@ constexpr TagDetails fujiFilmMode[] = {{0, N_("PROVIA (F0/Standard)")},
{1792, N_("ETERNA")},
{2048, N_("CLASSIC Neg.")},
{2304, N_("ETERNA Bleach Bypass")},
{2560, N_("Nostalgic Neg.")}};
{2560, N_("Nostalgic Neg.")},
};
//! DynamicRange, tag 0x1402
constexpr TagDetails fujiDynamicRangeSetting[] = {{0, N_("Auto")},
constexpr TagDetails fujiDynamicRangeSetting[] = {
{0, N_("Auto")},
{1, N_("Manual")},
{256, N_("Standard (100%)")},
{512, N_("Wide mode 1 (230%)")},
{513, N_("Wide mode 2 (400%)")},
{32768, N_("Film simulation mode")}};
{32768, N_("Film simulation mode")},
};
//! SceneRecognition, tag 0x1425
constexpr TagDetails fujiSceneRecognition[] = {{0x000, N_("Unrecognized")},
{0x100, N_("Portrait Image")},
{0x103, N_("Night Portrait")},
{0x105, N_("Backlit Portrait")},
{0x200, N_("Landscape Image")},
{0x300, N_("Night Scene")},
{0x400, N_("Macro")}};
constexpr TagDetails fujiSceneRecognition[] = {
{0x000, N_("Unrecognized")}, {0x100, N_("Portrait Image")},
{0x103, N_("Night Portrait")}, {0x105, N_("Backlit Portrait")},
{0x200, N_("Landscape Image")}, {0x300, N_("Night Scene")},
{0x400, N_("Macro")},
};
//! ImageGeneration, tag 0x1426
constexpr TagDetails fujiImageGeneration[] = {{0, N_("Original Image")}, {1, N_("Re-developed from RAW")}};
constexpr TagDetails fujiImageGeneration[] = {
{0, N_("Original Image")},
{1, N_("Re-developed from RAW")},
};
//! DRangePriority, tag 0x1443
constexpr TagDetails fujiDRangePriority[] = {{0, N_("Auto")}, {1, N_("Fixed")}};
constexpr TagDetails fujiDRangePriority[] = {
{0, N_("Auto")},
{1, N_("Fixed")},
};
//! DRangePriorityAuto, tag 0x1444
constexpr TagDetails fujiDRangePriorityAuto[] = {{1, N_("Weak")}, {2, N_("Strong")}};
constexpr TagDetails fujiDRangePriorityAuto[] = {
{1, N_("Weak")},
{2, N_("Strong")},
};
//! DRangePriorityFixed, tag 0x1445
constexpr TagDetails fujiDRangePriorityFixed[] = {{1, N_("Weak")}, {2, N_("Strong")}};
constexpr TagDetails fujiDRangePriorityFixed[] = {
{1, N_("Weak")},
{2, N_("Strong")},
};
//! FaceElementType, every byte at tag 0x4201
constexpr TagDetails fujiFaceElementType[] = {{1, N_("Face")}, {2, N_("Left Eye")}, {3, N_("Right Eye")}};
constexpr TagDetails fujiFaceElementType[] = {
{1, N_("Face")},
{2, N_("Left Eye")},
{3, N_("Right Eye")},
};
//! FaceElementType, tag 0x4203
static std::ostream& printFujiFaceElementTypes(std::ostream& os, const Value& value, const ExifData*) {

@ -206,9 +206,10 @@ Protocol fileProtocol(const std::string& path) {
std::string name;
Protocol prot;
bool isUrl; // path.size() > name.size()
} prots[] = {{"http://", pHttp, true}, {"https://", pHttps, true}, {"ftp://", pFtp, true},
{"sftp://", pSftp, true}, {"file://", pFileUri, true}, {"data://", pDataUri, true},
{"-", pStdin, false}};
} prots[] = {
{"http://", pHttp, true}, {"https://", pHttps, true}, {"ftp://", pFtp, true}, {"sftp://", pSftp, true},
{"file://", pFileUri, true}, {"data://", pDataUri, true}, {"-", pStdin, false},
};
for (const auto& prot : prots) {
if (result != pFile)
break;

@ -1089,7 +1089,8 @@ void ncrypt(Exiv2::byte* pData, uint32_t size, uint32_t count, uint32_t serial)
0xbb, 0xd6, 0x59, 0x4d, 0xbf, 0x6a, 0x2e, 0xaa, 0x2b, 0xef, 0xe6, 0x78, 0xb6, 0x4e, 0xe0, 0x2f, 0xdc, 0x7c, 0xbe,
0x57, 0x19, 0x32, 0x7e, 0x2a, 0xd0, 0xb8, 0xba, 0x29, 0x00, 0x3c, 0x52, 0x7d, 0xa8, 0x49, 0x3b, 0x2d, 0xeb, 0x25,
0x49, 0xfa, 0xa3, 0xaa, 0x39, 0xa7, 0xc5, 0xa7, 0x50, 0x11, 0x36, 0xfb, 0xc6, 0x67, 0x4a, 0xf5, 0xa5, 0x12, 0x65,
0x7e, 0xb0, 0xdf, 0xaf, 0x4e, 0xb3, 0x61, 0x7f, 0x2f}};
0x7e, 0xb0, 0xdf, 0xaf, 0x4e, 0xb3, 0x61, 0x7f, 0x2f},
};
Exiv2::byte key = 0;
for (int i = 0; i < 4; ++i) {
key ^= (count >> (i * 8)) & 0xff;

@ -24,21 +24,28 @@ constexpr TagDetails minoltaWhiteBalanceStd0x0115[] = {
{0x10, N_("Daylight")}, {0x20, N_("Cloudy")},
{0x30, N_("Shade")}, {0x40, N_("Tungsten")},
{0x50, N_("Flash")}, {0x60, N_("Fluorescent")},
{0x70, N_("Custom")}};
{0x70, N_("Custom")},
};
//! Lookup table to translate Minolta color mode values to readable labels
constexpr TagDetails minoltaColorMode[] = {
{0, N_("Natural Color")}, {1, N_("Black & White")}, {2, N_("Vivid Color")}, {3, N_("Solarization")},
{4, N_("AdobeRGB")}, {5, N_("Sepia")}, {9, N_("Natural")}, {12, N_("Portrait")},
{13, N_("Natural sRGB")}, {14, N_("Natural+ sRGB")}, {15, N_("Landscape")}, {16, N_("Evening")},
{17, N_("Night Scene")}, {18, N_("Night Portrait")}};
{17, N_("Night Scene")}, {18, N_("Night Portrait")},
};
//! Lookup table to translate Minolta image quality values to readable labels
constexpr TagDetails minoltaImageQuality[] = {{0, N_("Raw")}, {1, N_("Super Fine")}, {2, N_("Fine")},
{3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra Fine")}};
constexpr TagDetails minoltaImageQuality[] = {
{0, N_("Raw")}, {1, N_("Super Fine")}, {2, N_("Fine")},
{3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra Fine")},
};
//! Lookup table to translate Minolta image stabilization values
constexpr TagDetails minoltaImageStabilization[] = {{1, N_("Off")}, {5, N_("On")}};
constexpr TagDetails minoltaImageStabilization[] = {
{1, N_("Off")},
{5, N_("On")},
};
// Minolta Tag Info
constexpr TagInfo MinoltaMakerNote::tagInfo_[] = {
@ -126,62 +133,92 @@ const TagInfo* MinoltaMakerNote::tagList() {
//! Lookup table to translate Minolta Std camera settings exposure mode values to readable labels
constexpr TagDetails minoltaExposureModeStd[] = {
{0, N_("Program")}, {1, N_("Aperture priority")}, {2, N_("Shutter priority")}, {3, N_("Manual")}};
{0, N_("Program")},
{1, N_("Aperture priority")},
{2, N_("Shutter priority")},
{3, N_("Manual")},
};
//! Lookup table to translate Minolta Std camera settings flash mode values to readable labels
constexpr TagDetails minoltaFlashModeStd[] = {{0, N_("Fill flash")},
{1, N_("Red-eye reduction")},
{2, N_("Rear flash sync")},
{3, N_("Wireless")},
{4, N_("Off")}};
constexpr TagDetails minoltaFlashModeStd[] = {
{0, N_("Fill flash")}, {1, N_("Red-eye reduction")}, {2, N_("Rear flash sync")}, {3, N_("Wireless")},
{4, N_("Off")},
};
//! Lookup table to translate Minolta Std camera settings white balance values to readable labels
constexpr TagDetails minoltaWhiteBalanceStd[] = {{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")},
{3, N_("Tungsten")}, {5, N_("Custom")}, {7, N_("Fluorescent")},
{8, N_("Fluorescent 2")}, {11, N_("Custom 2")}, {12, N_("Custom 3")}};
constexpr TagDetails minoltaWhiteBalanceStd[] = {
{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Tungsten")}, {5, N_("Custom")},
{7, N_("Fluorescent")}, {8, N_("Fluorescent 2")}, {11, N_("Custom 2")}, {12, N_("Custom 3")},
};
//! Lookup table to translate Minolta Std camera settings image size values to readable labels
constexpr TagDetails minoltaImageSizeStd[] = {{0, N_("Full size")}, {1, "1600x1200"}, {2, "1280x960"}, {3, "640x480"},
{6, "2080x1560"}, {7, "2560x1920"}, {8, "3264x2176"}};
constexpr TagDetails minoltaImageSizeStd[] = {
{0, N_("Full size")}, {1, "1600x1200"}, {2, "1280x960"}, {3, "640x480"},
{6, "2080x1560"}, {7, "2560x1920"}, {8, "3264x2176"},
};
//! Lookup table to translate Minolta Std camera settings image quality values to readable labels
constexpr TagDetails minoltaImageQualityStd[] = {{0, N_("Raw")}, {1, N_("Super fine")}, {2, N_("Fine")},
{3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra fine")}};
constexpr TagDetails minoltaImageQualityStd[] = {
{0, N_("Raw")}, {1, N_("Super fine")}, {2, N_("Fine")},
{3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra fine")},
};
//! Lookup table to translate Minolta Std camera settings drive mode values to readable labels
constexpr TagDetails minoltaDriveModeStd[] = {{0, N_("Single Frame")}, {1, N_("Continuous")}, {2, N_("Self-timer")},
{4, N_("Bracketing")}, {5, N_("Interval")}, {6, N_("UHS continuous")},
{7, N_("HS continuous")}};
constexpr TagDetails minoltaDriveModeStd[] = {
{0, N_("Single Frame")}, {1, N_("Continuous")}, {2, N_("Self-timer")}, {4, N_("Bracketing")},
{5, N_("Interval")}, {6, N_("UHS continuous")}, {7, N_("HS continuous")},
};
//! Lookup table to translate Minolta Std camera settings metering mode values to readable labels
constexpr TagDetails minoltaMeteringModeStd[] = {
{0, N_("Multi-segment")}, {1, N_("Center weighted average")}, {2, N_("Spot")}};
{0, N_("Multi-segment")},
{1, N_("Center weighted average")},
{2, N_("Spot")},
};
//! Lookup table to translate Minolta Std camera settings digital zoom values to readable labels
constexpr TagDetails minoltaDigitalZoomStd[] = {{0, N_("Off")}, {1, N_("Electronic magnification")}, {2, "2x"}};
constexpr TagDetails minoltaDigitalZoomStd[] = {
{0, N_("Off")},
{1, N_("Electronic magnification")},
{2, "2x"},
};
//! Lookup table to translate Minolta Std camera bracket step mode values to readable labels
constexpr TagDetails minoltaBracketStepStd[] = {{0, "1/3 EV"}, {1, "2/3 EV"}, {2, "1 EV"}};
constexpr TagDetails minoltaBracketStepStd[] = {
{0, "1/3 EV"},
{1, "2/3 EV"},
{2, "1 EV"},
};
//! Lookup table to translate Minolta Std camera settings AF points values to readable labels
[[maybe_unused]] constexpr TagDetails minoltaAFPointsStd[] = {
{0, N_("Center")}, {1, N_("Top")}, {2, N_("Top-right")}, {3, N_("Right")}, {4, N_("Bottom-right")},
{5, N_("Bottom")}, {6, N_("Bottom-left")}, {7, N_("Left")}, {8, N_("Top-left")}};
{5, N_("Bottom")}, {6, N_("Bottom-left")}, {7, N_("Left")}, {8, N_("Top-left")},
};
//! Lookup table to translate Minolta Std camera settings flash fired values to readable labels
constexpr TagDetails minoltaFlashFired[] = {{0, N_("Did not fire")}, {1, N_("Fired")}};
constexpr TagDetails minoltaFlashFired[] = {
{0, N_("Did not fire")},
{1, N_("Fired")},
};
//! Lookup table to translate Minolta Std camera settings sharpness values to readable labels
constexpr TagDetails minoltaSharpnessStd[] = {{0, N_("Hard")}, {1, N_("Normal")}, {2, N_("Soft")}};
constexpr TagDetails minoltaSharpnessStd[] = {
{0, N_("Hard")},
{1, N_("Normal")},
{2, N_("Soft")},
};
//! Lookup table to translate Minolta Std camera settings subject program values to readable labels
constexpr TagDetails minoltaSubjectProgramStd[] = {{0, N_("None")}, {1, N_("Portrait")},
{2, N_("Text")}, {3, N_("Night portrait")},
{4, N_("Sunset")}, {5, N_("Sports action")}};
constexpr TagDetails minoltaSubjectProgramStd[] = {
{0, N_("None")}, {1, N_("Portrait")}, {2, N_("Text")},
{3, N_("Night portrait")}, {4, N_("Sunset")}, {5, N_("Sports action")},
};
//! Lookup table to translate Minolta Std camera settings ISO settings values to readable labels
constexpr TagDetails minoltaISOSettingStd[] = {{0, "100"}, {1, "200"}, {2, "400"},
{3, "800"}, {4, N_("Auto")}, {5, "64"}};
constexpr TagDetails minoltaISOSettingStd[] = {
{0, "100"}, {1, "200"}, {2, "400"}, {3, "800"}, {4, N_("Auto")}, {5, "64"},
};
//! Lookup table to translate Minolta Std camera settings model values to readable labels
constexpr TagDetails minoltaModelStd[] = {
@ -197,45 +234,69 @@ constexpr TagDetails minoltaModelStd[] = {
};
//! Lookup table to translate Minolta Std camera settings interval mode values to readable labels
constexpr TagDetails minoltaIntervalModeStd[] = {{0, N_("Still image")}, {1, N_("Time-lapse movie")}};
constexpr TagDetails minoltaIntervalModeStd[] = {
{0, N_("Still image")},
{1, N_("Time-lapse movie")},
};
//! Lookup table to translate Minolta Std camera settings folder name values to readable labels
constexpr TagDetails minoltaFolderNameStd[] = {{0, N_("Standard form")}, {1, N_("Data form")}};
constexpr TagDetails minoltaFolderNameStd[] = {
{0, N_("Standard form")},
{1, N_("Data form")},
};
//! Lookup table to translate Minolta Std camera settings color mode values to readable labels
constexpr TagDetails minoltaColorModeStd[] = {{0, N_("Natural color")},
{1, N_("Black and white")},
{2, N_("Vivid color")},
{3, N_("Solarization")},
{4, N_("Adobe RGB")}};
constexpr TagDetails minoltaColorModeStd[] = {
{0, N_("Natural color")}, {1, N_("Black and white")}, {2, N_("Vivid color")},
{3, N_("Solarization")}, {4, N_("Adobe RGB")},
};
//! Lookup table to translate Minolta Std camera settings wide focus zone values to readable labels
constexpr TagDetails minoltaWideFocusZoneStd[] = {{0, N_("No zone")},
constexpr TagDetails minoltaWideFocusZoneStd[] = {
{0, N_("No zone")},
{1, N_("Center zone (horizontal orientation)")},
{1, N_("Center zone (vertical orientation)")},
{1, N_("Left zone")},
{4, N_("Right zone")}};
{4, N_("Right zone")},
};
//! Lookup table to translate Minolta Std camera settings focus mode values to readable labels
constexpr TagDetails minoltaFocusModeStd[] = {{0, N_("Auto focus")}, {1, N_("Manual focus")}};
constexpr TagDetails minoltaFocusModeStd[] = {
{0, N_("Auto focus")},
{1, N_("Manual focus")},
};
//! Lookup table to translate Minolta Std camera settings focus area values to readable labels
constexpr TagDetails minoltaFocusAreaStd[] = {{0, N_("Wide focus (normal)")}, {1, N_("Spot focus")}};
constexpr TagDetails minoltaFocusAreaStd[] = {
{0, N_("Wide focus (normal)")},
{1, N_("Spot focus")},
};
//! Lookup table to translate Minolta Std camera settings DEC switch position values to readable labels
constexpr TagDetails minoltaDECPositionStd[] = {
{0, N_("Exposure")}, {1, N_("Contrast")}, {2, N_("Saturation")}, {3, N_("Filter")}};
{0, N_("Exposure")},
{1, N_("Contrast")},
{2, N_("Saturation")},
{3, N_("Filter")},
};
//! Lookup table to translate Minolta Std camera settings color profile values to readable labels
constexpr TagDetails minoltaColorProfileStd[] = {{0, N_("Not embedded")}, {1, N_("Embedded")}};
constexpr TagDetails minoltaColorProfileStd[] = {
{0, N_("Not embedded")},
{1, N_("Embedded")},
};
//! Lookup table to translate Minolta Std camera settings data Imprint values to readable labels
constexpr TagDetails minoltaDataImprintStd[] = {
{0, N_("None")}, {1, "YYYY/MM/DD"}, {2, "MM/DD/HH:MM"}, {3, N_("Text")}, {4, N_("Text + ID#")}};
{0, N_("None")}, {1, "YYYY/MM/DD"}, {2, "MM/DD/HH:MM"}, {3, N_("Text")}, {4, N_("Text + ID#")},
};
//! Lookup table to translate Minolta Std camera settings flash metering values to readable labels
constexpr TagDetails minoltaFlashMeteringStd[] = {
{0, N_("ADI (Advanced Distance Integration)")}, {1, N_("Pre-flash TTl")}, {2, N_("Manual flash control")}};
{0, N_("ADI (Advanced Distance Integration)")},
{1, N_("Pre-flash TTl")},
{2, N_("Manual flash control")},
};
std::ostream& MinoltaMakerNote::printMinoltaExposureSpeedStd(std::ostream& os, const Value& value, const ExifData*) {
// From the PHP JPEG Metadata Toolkit
@ -419,14 +480,20 @@ const TagInfo* MinoltaMakerNote::tagListCsStd() {
//! Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels
constexpr TagDetails minoltaExposureMode7D[] = {
{0, N_("Program")}, {1, N_("Aperture priority")}, {2, N_("Shutter priority")}, {3, N_("Manual")},
{4, N_("Auto")}, {5, N_("Program-shift A")}, {6, N_("Program-shift S")}};
{4, N_("Auto")}, {5, N_("Program-shift A")}, {6, N_("Program-shift S")},
};
//! Lookup table to translate Minolta Dynax 7D camera settings image size values to readable labels
constexpr TagDetails minoltaImageSize7D[] = {{0, N_("Large")}, {1, N_("Medium")}, {2, N_("Small")}};
constexpr TagDetails minoltaImageSize7D[] = {
{0, N_("Large")},
{1, N_("Medium")},
{2, N_("Small")},
};
//! Lookup table to translate Minolta Dynax 7D camera settings image quality values to readable labels
constexpr TagDetails minoltaImageQuality7D[] = {
{0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}};
{0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")},
};
//! Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels
constexpr TagDetails minoltaWhiteBalance7D[] = {
@ -437,24 +504,36 @@ constexpr TagDetails minoltaWhiteBalance7D[] = {
//! Lookup table to translate Minolta Dynax 7D camera settings focus mode values to readable labels
constexpr TagDetails minoltaFocusMode7D[] = {
{0, N_("Single-shot AF")}, {1, N_("Continuous AF")}, {3, N_("Manual")}, {4, N_("Automatic AF")}};
{0, N_("Single-shot AF")},
{1, N_("Continuous AF")},
{3, N_("Manual")},
{4, N_("Automatic AF")},
};
//! Lookup table to translate Minolta Dynax 7D camera settings AF points values to readable labels
constexpr TagDetails minoltaAFPoints7D[] = {{1, N_("Center")}, {2, N_("Top")}, {4, N_("Top-right")},
{8, N_("Right")}, {16, N_("Bottom-right")}, {32, N_("Bottom")},
{64, N_("Bottom-left")}, {128, N_("Left")}, {256, N_("Top-left")}};
constexpr TagDetails minoltaAFPoints7D[] = {
{1, N_("Center")}, {2, N_("Top")}, {4, N_("Top-right")}, {8, N_("Right")}, {16, N_("Bottom-right")},
{32, N_("Bottom")}, {64, N_("Bottom-left")}, {128, N_("Left")}, {256, N_("Top-left")},
};
//! Lookup table to translate Minolta Dynax 7D camera settings ISO settings values to readable labels
constexpr TagDetails minoltaISOSetting7D[] = {{0, N_("Auto")}, {1, "100"}, {3, "200"}, {4, "400"},
{5, "800"}, {6, "1600"}, {7, "3200"}};
constexpr TagDetails minoltaISOSetting7D[] = {
{0, N_("Auto")}, {1, "100"}, {3, "200"}, {4, "400"}, {5, "800"}, {6, "1600"}, {7, "3200"},
};
//! Lookup table to translate Minolta Dynax 7D camera settings color space values to readable labels
constexpr TagDetails minoltaColorSpace7D[] = {
{0, N_("sRGB (Natural)")}, {1, N_("sRGB (Natural+)")}, {4, N_("Adobe RGB")}};
{0, N_("sRGB (Natural)")},
{1, N_("sRGB (Natural+)")},
{4, N_("Adobe RGB")},
};
//! Lookup table to translate Minolta Dynax 7D camera settings rotation values to readable labels
constexpr TagDetails minoltaRotation7D[] = {
{72, N_("Horizontal (normal)")}, {76, N_("Rotate 90 CW")}, {82, N_("Rotate 270 CW")}};
{72, N_("Horizontal (normal)")},
{76, N_("Rotate 90 CW")},
{82, N_("Rotate 270 CW")},
};
// Minolta Dynax 7D Camera Settings Tag Info
constexpr TagInfo MinoltaMakerNote::tagInfoCs7D_[] = {
@ -523,7 +602,8 @@ const TagInfo* MinoltaMakerNote::tagListCs7D() {
// -- Minolta Dynax 5D camera settings ---------------------------------------------------------------
//! Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels
constexpr TagDetails minoltaExposureMode5D[] = {{0, N_("Program")},
constexpr TagDetails minoltaExposureMode5D[] = {
{0, N_("Program")},
{1, N_("Aperture priority")},
{2, N_("Shutter priority")},
{3, N_("Manual")},
@ -535,25 +615,37 @@ constexpr TagDetails minoltaExposureMode5D[] = {{0, N_("Program")},
{0x1033, N_("Sunset")},
{0x1043, N_("Night View/Portrait")},
{0x1053, N_("Landscape")},
{0x1083, N_("Macro")}};
{0x1083, N_("Macro")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels
constexpr TagDetails minoltaImageSize5D[] = {{0, N_("Large")}, {1, N_("Medium")}, {2, N_("Small")}};
constexpr TagDetails minoltaImageSize5D[] = {
{0, N_("Large")},
{1, N_("Medium")},
{2, N_("Small")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels
constexpr TagDetails minoltaImageQuality5D[] = {
{0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")}};
{0, N_("Raw")}, {16, N_("Fine")}, {32, N_("Normal")}, {34, N_("Raw+Jpeg")}, {48, N_("Economy")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings white balance values to readable labels
constexpr TagDetails minoltaWhiteBalance5D[] = {{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")},
{3, N_("Shade")}, {4, N_("Tungsten")}, {5, N_("Fluorescent")},
{6, N_("Flash")}, {256, N_("Kelvin")}, {512, N_("Manual")}};
constexpr TagDetails minoltaWhiteBalance5D[] = {
{0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, {4, N_("Tungsten")},
{5, N_("Fluorescent")}, {6, N_("Flash")}, {256, N_("Kelvin")}, {512, N_("Manual")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings metering mode values to readable labels
constexpr TagDetails minoltaMeteringMode5D[] = {{0, N_("Multi-segment")}, {1, N_("Center weighted")}, {2, N_("Spot")}};
constexpr TagDetails minoltaMeteringMode5D[] = {
{0, N_("Multi-segment")},
{1, N_("Center weighted")},
{2, N_("Spot")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings ISO settings values to readable labels
constexpr TagDetails minoltaISOSetting5D[] = {{0, N_("Auto")},
constexpr TagDetails minoltaISOSetting5D[] = {
{0, N_("Auto")},
{1, "100"},
{3, "200"},
{4, "400"},
@ -561,35 +653,49 @@ constexpr TagDetails minoltaISOSetting5D[] = {{0, N_("Auto")},
{6, "1600"},
{7, "3200"},
{8, N_("200 (Zone Matching High)")},
{10, N_("80 (Zone Matching Low)")}};
{10, N_("80 (Zone Matching Low)")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings color space values to readable labels
constexpr TagDetails minoltaColorSpace5D[] = {{0, N_("sRGB (Natural)")},
{1, N_("sRGB (Natural+)")},
{2, N_("Monochrome")},
{3, N_("Adobe RGB (ICC)")},
{4, N_("Adobe RGB")}};
constexpr TagDetails minoltaColorSpace5D[] = {
{0, N_("sRGB (Natural)")}, {1, N_("sRGB (Natural+)")}, {2, N_("Monochrome")},
{3, N_("Adobe RGB (ICC)")}, {4, N_("Adobe RGB")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels
constexpr TagDetails minoltaRotation5D[] = {
{72, N_("Horizontal (normal)")}, {76, N_("Rotate 90 CW")}, {82, N_("Rotate 270 CW")}};
{72, N_("Horizontal (normal)")},
{76, N_("Rotate 90 CW")},
{82, N_("Rotate 270 CW")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings focus position values to readable labels
constexpr TagDetails minoltaFocusPosition5D[] = {
{0, N_("Wide")}, {1, N_("Central")}, {2, N_("Up")}, {3, N_("Up right")}, {4, N_("Right")},
{5, N_("Down right")}, {6, N_("Down")}, {7, N_("Down left")}, {8, N_("Left")}, {9, N_("Up left")}};
{5, N_("Down right")}, {6, N_("Down")}, {7, N_("Down left")}, {8, N_("Left")}, {9, N_("Up left")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings focus area values to readable labels
constexpr TagDetails minoltaFocusArea5D[] = {{0, N_("Wide")}, {1, N_("Selection")}, {2, N_("Spot")}};
constexpr TagDetails minoltaFocusArea5D[] = {
{0, N_("Wide")},
{1, N_("Selection")},
{2, N_("Spot")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels
constexpr TagDetails minoltaAFMode5D[] = {{0, "AF-A"}, {1, "AF-S"}, {2, "AF-D"}, {3, "DMF"}};
constexpr TagDetails minoltaAFMode5D[] = {
{0, "AF-A"},
{1, "AF-S"},
{2, "AF-D"},
{3, "DMF"},
};
//! Lookup table to translate Minolta Dynax 5D camera settings picture finish values to readable labels
constexpr TagDetails minoltaPictureFinish5D[] = {
{0, N_("Natural")}, {1, N_("Natural+")}, {2, N_("Portrait")}, {3, N_("Wind Scene")},
{4, N_("Evening Scene")}, {5, N_("Night Scene")}, {6, N_("Night Portrait")}, {7, N_("Monochrome")},
{8, N_("Adobe RGB")}, {9, N_("Adobe RGB (ICC)")}};
{8, N_("Adobe RGB")}, {9, N_("Adobe RGB (ICC)")},
};
//! Method to convert Minolta Dynax 5D exposure manual bias values.
std::ostream& MinoltaMakerNote::printMinoltaExposureManualBias5D(std::ostream& os, const Value& value,
@ -698,7 +804,8 @@ const TagInfo* MinoltaMakerNote::tagListCs5D() {
// -- Sony A100 camera settings ---------------------------------------------------------------
//! Lookup table to translate Sony A100 camera settings drive mode 2 values to readable labels
constexpr TagDetails sonyDriveMode2A100[] = {{0, N_("Self-timer 10 sec")},
constexpr TagDetails sonyDriveMode2A100[] = {
{0, N_("Self-timer 10 sec")},
{1, N_("Continuous")},
{4, N_("Self-timer 2 sec")},
{5, N_("Single Frame")},
@ -707,112 +814,199 @@ constexpr TagDetails sonyDriveMode2A100[] = {{0, N_("Self-timer 10 sec")},
{770, N_("Single-frame Bracketing Low")},
{771, N_("Continuous Bracketing Low")},
{1794, N_("Single-frame Bracketing High")},
{1795, N_("Continuous Bracketing High")}};
{1795, N_("Continuous Bracketing High")},
};
//! Lookup table to translate Sony A100 camera settings focus mode values to readable labels
constexpr TagDetails sonyFocusModeA100[] = {{0, "AF-S"}, {1, "AF-C"}, {4, "AF-A"}, {5, "Manual"}, {6, "DMF"}};
constexpr TagDetails sonyFocusModeA100[] = {
{0, "AF-S"}, {1, "AF-C"}, {4, "AF-A"}, {5, "Manual"}, {6, "DMF"},
};
//! Lookup table to translate Sony A100 camera settings flash mode values to readable labels
constexpr TagDetails sonyFlashModeA100[] = {
{0, N_("Auto")}, {2, N_("Rear flash sync")}, {3, N_("Wireless")}, {4, N_("Fill flash")}};
{0, N_("Auto")},
{2, N_("Rear flash sync")},
{3, N_("Wireless")},
{4, N_("Fill flash")},
};
//! Lookup table to translate Sony A100 camera settings metering mode values to readable labels
constexpr TagDetails sonyMeteringModeA100[] = {
{0, N_("Multi-segment")}, {1, N_("Center weighted average")}, {2, N_("Spot")}};
{0, N_("Multi-segment")},
{1, N_("Center weighted average")},
{2, N_("Spot")},
};
//! Lookup table to translate Sony A100 camera settings zone matching mode values to readable labels
constexpr TagDetails sonyZoneMatchingModeA100[] = {{0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced")}};
constexpr TagDetails sonyZoneMatchingModeA100[] = {
{0, N_("Off")},
{1, N_("Standard")},
{2, N_("Advanced")},
};
//! Lookup table to translate Sony A100 camera settings color space values to readable labels
constexpr TagDetails sonyColorSpaceA100[] = {{0, N_("sRGB")}, {5, N_("Adobe RGB")}};
constexpr TagDetails sonyColorSpaceA100[] = {
{0, N_("sRGB")},
{5, N_("Adobe RGB")},
};
//! Lookup table to translate Sony A100 camera settings drive mode values to readable labels
constexpr TagDetails sonyDriveModeA100[] = {{0, N_("Single Frame")},
constexpr TagDetails sonyDriveModeA100[] = {
{0, N_("Single Frame")},
{1, N_("Continuous")},
{2, N_("Self-timer")},
{3, N_("Continuous Bracketing")},
{4, N_("Single-Frame Bracketing")},
{5, N_("White Balance Bracketing")}};
{5, N_("White Balance Bracketing")},
};
//! Lookup table to translate Sony A100 camera settings self timer time values to readable labels
constexpr TagDetails sonySelfTimerTimeA100[] = {{0, "10s"}, {4, "2s"}};
constexpr TagDetails sonySelfTimerTimeA100[] = {
{0, "10s"},
{4, "2s"},
};
//! Lookup table to translate Sony A100 camera settings continuous bracketing values to readable labels
constexpr TagDetails sonyContinuousBracketingA100[] = {{0x303, N_("Low")}, {0x703, N_("High")}};
constexpr TagDetails sonyContinuousBracketingA100[] = {
{0x303, N_("Low")},
{0x703, N_("High")},
};
//! Lookup table to translate Sony A100 camera settings single frame bracketing values to readable labels
constexpr TagDetails sonySingleFrameBracketingA100[] = {{0x302, N_("Low")}, {0x702, N_("High")}};
constexpr TagDetails sonySingleFrameBracketingA100[] = {
{0x302, N_("Low")},
{0x702, N_("High")},
};
//! Lookup table to translate Sony A100 camera settings white balance bracketing values to readable labels
constexpr TagDetails sonyWhiteBalanceBracketingA100[] = {{0x8, N_("Low")}, {0x9, N_("High")}};
constexpr TagDetails sonyWhiteBalanceBracketingA100[] = {
{0x8, N_("Low")},
{0x9, N_("High")},
};
//! Lookup table to translate Sony A100 camera settings white balance setting values to readable labels
constexpr TagDetails sonyWhiteBalanceSettingA100[] = {{0x0000, N_("Auto")},
constexpr TagDetails sonyWhiteBalanceSettingA100[] = {
{0x0000, N_("Auto")},
{0x0001, N_("Preset")},
{0x0002, N_("Custom")},
{0x0003, N_("Color Temperature/Color Filter")},
{0x8001, N_("Preset")},
{0x8002, N_("Custom")},
{0x8003, N_("Color Temperature/Color Filter")}};
{0x8003, N_("Color Temperature/Color Filter")},
};
//! Lookup table to translate Sony A100 camera settings preset white balance values to readable labels
constexpr TagDetails sonyPresetWhiteBalanceA100[] = {{1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")},
{4, N_("Tungsten")}, {5, N_("Fluorescent")}, {6, N_("Flash")}};
constexpr TagDetails sonyPresetWhiteBalanceA100[] = {
{1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")},
{4, N_("Tungsten")}, {5, N_("Fluorescent")}, {6, N_("Flash")},
};
//! Lookup table to translate Sony A100 camera settings color temperature setting values to readable labels
constexpr TagDetails sonyColorTemperatureSettingA100[] = {{0, N_("Temperature")}, {2, N_("Color Filter")}};
constexpr TagDetails sonyColorTemperatureSettingA100[] = {
{0, N_("Temperature")},
{2, N_("Color Filter")},
};
//! Lookup table to translate Sony A100 camera settings custom WB setting values to readable labels
constexpr TagDetails sonyCustomWBSettingA100[] = {{0, N_("Setup")}, {2, N_("Recall")}};
constexpr TagDetails sonyCustomWBSettingA100[] = {
{0, N_("Setup")},
{2, N_("Recall")},
};
//! Lookup table to translate Sony A100 camera settings custom WB error values to readable labels
constexpr TagDetails sonyCustomWBErrorA100[] = {{0, N_("Ok")}, {2, N_("Error")}};
constexpr TagDetails sonyCustomWBErrorA100[] = {
{0, N_("Ok")},
{2, N_("Error")},
};
//! Lookup table to translate Sony A100 camera settings image size values to readable labels
constexpr TagDetails sonyImageSizeA100[] = {{0, N_("Standard")}, {1, N_("Medium")}, {2, N_("Small")}};
constexpr TagDetails sonyImageSizeA100[] = {
{0, N_("Standard")},
{1, N_("Medium")},
{2, N_("Small")},
};
//! Lookup table to translate Sony A100 camera settings instant playback setup values to readable labels
constexpr TagDetails sonyInstantPlaybackSetupA100[] = {
{0, N_("Image and Information")}, {1, N_("Image Only")}, {3, N_("Image and Histogram")}};
{0, N_("Image and Information")},
{1, N_("Image Only")},
{3, N_("Image and Histogram")},
};
//! Lookup table to translate Sony A100 camera settings flash default setup values to readable labels
constexpr TagDetails sonyFlashDefaultA100[] = {{0, N_("Auto")}, {1, N_("Fill Flash")}};
constexpr TagDetails sonyFlashDefaultA100[] = {
{0, N_("Auto")},
{1, N_("Fill Flash")},
};
//! Lookup table to translate Sony A100 camera settings auto bracket order values to readable labels
constexpr TagDetails sonyAutoBracketOrderA100[] = {{0, "0-+"}, {1, "-0+"}};
constexpr TagDetails sonyAutoBracketOrderA100[] = {
{0, "0-+"},
{1, "-0+"},
};
//! Lookup table to translate Sony A100 camera settings focus hold button values to readable labels
constexpr TagDetails sonyFocusHoldButtonA100[] = {{0, N_("Focus Hold")}, {1, N_("DOF Preview")}};
constexpr TagDetails sonyFocusHoldButtonA100[] = {
{0, N_("Focus Hold")},
{1, N_("DOF Preview")},
};
//! Lookup table to translate Sony A100 camera settings AEL button values to readable labels
constexpr TagDetails sonyAELButtonA100[] = {
{0, N_("Hold")}, {1, N_("Toggle")}, {2, N_("Spot Hold")}, {3, N_("Spot Toggle")}};
{0, N_("Hold")},
{1, N_("Toggle")},
{2, N_("Spot Hold")},
{3, N_("Spot Toggle")},
};
//! Lookup table to translate Sony A100 camera settings control dial set values to readable labels
constexpr TagDetails sonyControlDialSetA100[] = {{0, N_("Shutter Speed")}, {1, N_("Aperture")}};
constexpr TagDetails sonyControlDialSetA100[] = {
{0, N_("Shutter Speed")},
{1, N_("Aperture")},
};
//! Lookup table to translate Sony A100 camera settings exposure compensation mode values to readable labels
constexpr TagDetails sonyExposureCompensationModeA100[] = {{0, N_("Ambient and Flash")}, {1, N_("Ambient Only")}};
constexpr TagDetails sonyExposureCompensationModeA100[] = {
{0, N_("Ambient and Flash")},
{1, N_("Ambient Only")},
};
//! Lookup table to translate Sony A100 camera settings sony AF area illumination values to readable labels
constexpr TagDetails sonyAFAreaIlluminationA100[] = {{0, N_("0.3 seconds")}, {1, N_("0.6 seconds")}, {2, N_("Off")}};
constexpr TagDetails sonyAFAreaIlluminationA100[] = {
{0, N_("0.3 seconds")},
{1, N_("0.6 seconds")},
{2, N_("Off")},
};
//! Lookup table to translate Sony A100 camera settings monitor display off values to readable labels
constexpr TagDetails sonyMonitorDisplayOffA100[] = {{0, N_("Automatic")}, {1, N_("Manual")}};
constexpr TagDetails sonyMonitorDisplayOffA100[] = {
{0, N_("Automatic")},
{1, N_("Manual")},
};
//! Lookup table to translate Sony A100 camera settings record display values to readable labels
constexpr TagDetails sonyRecordDisplayA100[] = {{0, N_("Auto-rotate")}, {1, N_("Horizontal")}};
constexpr TagDetails sonyRecordDisplayA100[] = {
{0, N_("Auto-rotate")},
{1, N_("Horizontal")},
};
//! Lookup table to translate Sony A100 camera settings play display values to readable labels
constexpr TagDetails sonyPlayDisplayA100[] = {{0, N_("Auto-rotate")}, {1, N_("Manual Rotate")}};
constexpr TagDetails sonyPlayDisplayA100[] = {
{0, N_("Auto-rotate")},
{1, N_("Manual Rotate")},
};
//! Lookup table to translate Sony A100 camera settings metering off scale indicator values to readable labels
constexpr TagDetails sonyMeteringOffScaleIndicatorA100[] = {
{0, N_("Within Range")}, {1, N_("Under/Over Range")}, {255, N_("Out of Range")}};
{0, N_("Within Range")},
{1, N_("Under/Over Range")},
{255, N_("Out of Range")},
};
//! Lookup table to translate Sony A100 camera settings exposure indicator values to readable labels
constexpr TagDetails sonyExposureIndicatorA100[] = {{0, N_("Not Indicated")},
constexpr TagDetails sonyExposureIndicatorA100[] = {
{0, N_("Not Indicated")},
{1, N_("Under Scale")},
{119, N_("Bottom of Scale")},
{120, "-2.0"},
@ -833,17 +1027,29 @@ constexpr TagDetails sonyExposureIndicatorA100[] = {{0, N_("Not Indicated")},
{135, "+1.7"},
{136, "+2.0"},
{253, N_("Top of Scale")},
{254, N_("Over Scale")}};
{254, N_("Over Scale")},
};
//! Lookup table to translate Sony A100 camera settings focus mode switch values to readable labels
constexpr TagDetails sonyFocusModeSwitchA100[] = {{0, N_("AM")}, {1, N_("MF")}};
constexpr TagDetails sonyFocusModeSwitchA100[] = {
{0, N_("AM")},
{1, N_("MF")},
};
//! Lookup table to translate Sony A100 camera settings flash type switch values to readable labels
constexpr TagDetails sonyFlashTypeA100[] = {{0, N_("Off")}, {1, N_("Built-in")}, {2, N_("External")}};
constexpr TagDetails sonyFlashTypeA100[] = {
{0, N_("Off")},
{1, N_("Built-in")},
{2, N_("External")},
};
//! Lookup table to translate Sony A100 camera settings battery level switch values to readable labels
constexpr TagDetails sonyBatteryLevelA100[] = {
{3, N_("Very Low")}, {4, N_("Low")}, {5, N_("Half Full")}, {6, N_("Sufficient Power Remaining")}};
{3, N_("Very Low")},
{4, N_("Low")},
{5, N_("Half Full")},
{6, N_("Sufficient Power Remaining")},
};
// Sony A100 Camera Settings Tag Info
constexpr TagInfo MinoltaMakerNote::tagInfoCsA100_[] = {
@ -1390,7 +1596,8 @@ static constexpr TagDetails minoltaSonyLensID[] = {
"Manual lens | " // 1
"Sony E 50mm F1.8 OSS | " // 2
"E PZ 16-50mm F3.5-5.6 OSS" // 3
}};
},
};
// ----------------------------------------------------------------------
// #1145 begin - respect lenses with shared LensID
@ -1692,7 +1899,8 @@ constexpr TagDetails minoltaSonyColorMode[] = {
{0, N_("Standard")}, {1, N_("Vivid Color")}, {2, N_("Portrait")}, {3, N_("Landscape")},
{4, N_("Sunset")}, {5, N_("Night View/Portrait")}, {6, N_("Black & White")}, {7, N_("AdobeRGB")},
{12, N_("Neutral")}, {100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")},
{103, N_("Light")}, {104, N_("Night View")}, {105, N_("Autumn Leaves")}};
{103, N_("Light")}, {104, N_("Night View")}, {105, N_("Autumn Leaves")},
};
std::ostream& printMinoltaSonyColorMode(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyColorMode)(os, value, metadata);
@ -1701,7 +1909,10 @@ std::ostream& printMinoltaSonyColorMode(std::ostream& os, const Value& value, co
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Minolta/Sony bool function values to readable labels
constexpr TagDetails minoltaSonyBoolFunction[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails minoltaSonyBoolFunction[] = {
{0, N_("Off")},
{1, N_("On")},
};
std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyBoolFunction)(os, value, metadata);
@ -1710,7 +1921,10 @@ std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, co
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Minolta/Sony bool inverse function values to readable labels
constexpr TagDetails minoltaSonyBoolInverseFunction[] = {{0, N_("On")}, {1, N_("Off")}};
constexpr TagDetails minoltaSonyBoolInverseFunction[] = {
{0, N_("On")},
{1, N_("Off")},
};
std::ostream& printMinoltaSonyBoolInverseValue(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyBoolInverseFunction)(os, value, metadata);
@ -1719,7 +1933,11 @@ std::ostream& printMinoltaSonyBoolInverseValue(std::ostream& os, const Value& va
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Sony camera settings focus mode values to readable labels
constexpr TagDetails minoltaSonyAFAreaMode[] = {{0, N_("Wide")}, {1, N_("Local")}, {2, N_("Spot")}};
constexpr TagDetails minoltaSonyAFAreaMode[] = {
{0, N_("Wide")},
{1, N_("Local")},
{2, N_("Spot")},
};
std::ostream& printMinoltaSonyAFAreaMode(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyAFAreaMode)(os, value, metadata);
@ -1731,7 +1949,8 @@ std::ostream& printMinoltaSonyAFAreaMode(std::ostream& os, const Value& value, c
constexpr TagDetails minoltaSonyLocalAFAreaPoint[] = {
{1, N_("Center")}, {2, N_("Top")}, {3, N_("Top-Right")}, {4, N_("Right")},
{5, N_("Bottom-Right")}, {6, N_("Bottom")}, {7, N_("Bottom-Left")}, {8, N_("Left")},
{9, N_("Top-Left")}, {10, N_("Far-Right")}, {11, N_("Far-Left")}};
{9, N_("Top-Left")}, {10, N_("Far-Right")}, {11, N_("Far-Left")},
};
std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyLocalAFAreaPoint)(os, value, metadata);
@ -1741,7 +1960,8 @@ std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream& os, const Value& va
//! Lookup table to translate Sony camera settings dynamic range optimizer mode values to readable labels
constexpr TagDetails minoltaSonyDynamicRangeOptimizerMode[] = {
{0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced Auto")}, {3, N_("Advanced Level")}, {4097, N_("Auto")}};
{0, N_("Off")}, {1, N_("Standard")}, {2, N_("Advanced Auto")}, {3, N_("Advanced Level")}, {4097, N_("Auto")},
};
std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream& os, const Value& value,
const ExifData* metadata) {
@ -1751,7 +1971,10 @@ std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream& os, const
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Sony camera settings priority setup shutter release values to readable labels
constexpr TagDetails minoltaSonyPrioritySetupShutterRelease[] = {{0, N_("AF")}, {1, N_("Release")}};
constexpr TagDetails minoltaSonyPrioritySetupShutterRelease[] = {
{0, N_("AF")},
{1, N_("Release")},
};
std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream& os, const Value& value,
const ExifData* metadata) {
@ -1761,9 +1984,10 @@ std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream& os, cons
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Sony camera settings quality values to readable labels
constexpr TagDetails minoltaSonyQualityCs[] = {{0, N_("RAW")}, {2, N_("CRAW")}, {16, N_("Extra Fine")},
{32, N_("Fine")}, {34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")},
{48, N_("Standard")}};
constexpr TagDetails minoltaSonyQualityCs[] = {
{0, N_("RAW")}, {2, N_("CRAW")}, {16, N_("Extra Fine")}, {32, N_("Fine")},
{34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")}, {48, N_("Standard")},
};
std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyQualityCs)(os, value, metadata);
@ -1773,7 +1997,10 @@ std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, co
//! Lookup table to translate Sony camera settings rotation values to readable labels
constexpr TagDetails minoltaSonyRotation[] = {
{0, N_("Horizontal (normal)")}, {1, N_("Rotate 90 CW")}, {2, N_("Rotate 270 CW")}};
{0, N_("Horizontal (normal)")},
{1, N_("Rotate 90 CW")},
{2, N_("Rotate 270 CW")},
};
std::ostream& printMinoltaSonyRotation(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyRotation)(os, value, metadata);
@ -1817,7 +2044,8 @@ std::ostream& printMinoltaSonySceneMode(std::ostream& os, const Value& value, co
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Sony/Minolta teleconverter model values to readable labels
constexpr TagDetails minoltaSonyTeleconverterModel[] = {{0x00, N_("None")},
constexpr TagDetails minoltaSonyTeleconverterModel[] = {
{0x00, N_("None")},
{0x04, N_("Minolta/Sony AF 1.4x APO (D) (0x04)")},
{0x05, N_("Minolta/Sony AF 2x APO (D) (0x05)")},
{0x48, N_("Minolta/Sony AF 2x APO (D)")},
@ -1825,7 +2053,8 @@ constexpr TagDetails minoltaSonyTeleconverterModel[] = {{0x00, N_("None")},
{0x60, N_("Minolta AF 2x APO")},
{0x88, N_("Minolta/Sony AF 1.4x APO (D)")},
{0x90, N_("Minolta AF 1.4x APO II")},
{0xa0, N_("Minolta AF 1.4x APO")}};
{0xa0, N_("Minolta AF 1.4x APO")},
};
std::ostream& printMinoltaSonyTeleconverterModel(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyTeleconverterModel)(os, value, metadata);
@ -1834,7 +2063,11 @@ std::ostream& printMinoltaSonyTeleconverterModel(std::ostream& os, const Value&
// ----------------------------------------------------------------------------------------------------
//! Lookup table to translate Sony/Minolta zone matching values to readable labels
constexpr TagDetails minoltaSonyZoneMatching[] = {{0, N_("ISO Setting Used")}, {1, N_("High Key")}, {2, N_("Low Key")}};
constexpr TagDetails minoltaSonyZoneMatching[] = {
{0, N_("ISO Setting Used")},
{1, N_("High Key")},
{2, N_("Low Key")},
};
std::ostream& printMinoltaSonyZoneMatching(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyZoneMatching)(os, value, metadata);

@ -54,25 +54,32 @@ constexpr auto nikonFocuspoints = std::array{
//! Shutter Modes (credits to exiftool)
constexpr TagDetails nikonShutterModes[] = {
{0, "Mechanical"}, {16, "Electronic"}, {48, "Electronic Front Curtain"},
{64, "Electronic (Movie)"}, {80, "Auto (Mechanical)"}, {81, "Auto (Electronic Front Curtain)"}};
{64, "Electronic (Movie)"}, {80, "Auto (Mechanical)"}, {81, "Auto (Electronic Front Curtain)"},
};
//! FlashComp, tag 0x0012
constexpr TagDetails nikonFlashComp[] = {
// From the PHP JPEG Metadata Toolkit
{0x06, "+1.0 EV"}, {0x04, "+0.7 EV"}, {0x03, "+0.5 EV"}, {0x02, "+0.3 EV"}, {0x00, "0.0 EV"}, {0xfe, "-0.3 EV"},
{0xfd, "-0.5 EV"}, {0xfc, "-0.7 EV"}, {0xfa, "-1.0 EV"}, {0xf8, "-1.3 EV"}, {0xf7, "-1.5 EV"}, {0xf6, "-1.7 EV"},
{0xf4, "-2.0 EV"}, {0xf2, "-2.3 EV"}, {0xf1, "-2.5 EV"}, {0xf0, "-2.7 EV"}, {0xee, "-3.0 EV"}};
{0xf4, "-2.0 EV"}, {0xf2, "-2.3 EV"}, {0xf1, "-2.5 EV"}, {0xf0, "-2.7 EV"}, {0xee, "-3.0 EV"},
};
//! ColorSpace, tag 0x001e
constexpr TagDetails nikonColorSpace[] = {{1, N_("sRGB")}, {2, N_("Adobe RGB")}};
constexpr TagDetails nikonColorSpace[] = {
{1, N_("sRGB")},
{2, N_("Adobe RGB")},
};
//! FlashMode, tag 0x0087
constexpr TagDetails nikonFlashMode[] = {
{0, N_("Did not fire")}, {1, N_("Fire, manual")}, {3, N_("Not ready")}, {6, N_("Off")},
{7, N_("Fire, external")}, {8, N_("Fire, commander mode")}, {9, N_("Fire, TTL mode")}, {18, N_("LED Light")}};
{7, N_("Fire, external")}, {8, N_("Fire, commander mode")}, {9, N_("Fire, TTL mode")}, {18, N_("LED Light")},
};
//! ShootingMode, tag 0x0089
constexpr TagDetailsBitmask nikonShootingMode[] = {{0x0001, N_("Continuous")},
constexpr TagDetailsBitmask nikonShootingMode[] = {
{0x0001, N_("Continuous")},
{0x0002, N_("Delay")},
{0x0004, N_("PC Control")},
{0x0008, N_("Self-timer")},
@ -80,33 +87,46 @@ constexpr TagDetailsBitmask nikonShootingMode[] = {{0x0001, N_("Continuous")},
{0x0020, N_("Auto ISO")},
{0x0040, N_("White-Balance Bracketing")},
{0x0080, N_("IR Control")},
{0x0100, N_("D-Lighting Bracketing")}};
{0x0100, N_("D-Lighting Bracketing")},
};
//! ShootingMode D70, tag 0x0089
constexpr TagDetailsBitmask nikonShootingModeD70[] = {{0x0001, N_("Continuous")},
constexpr TagDetailsBitmask nikonShootingModeD70[] = {
{0x0001, N_("Continuous")},
{0x0002, N_("Delay")},
{0x0004, N_("PC control")},
{0x0010, N_("Exposure bracketing")},
{0x0020, N_("Unused LE-NR slowdown")},
{0x0040, N_("White balance bracketing")},
{0x0080, N_("IR control")}};
{0x0080, N_("IR control")},
};
//! AutoBracketRelease, tag 0x008a
constexpr TagDetails nikonAutoBracketRelease[] = {{0, N_("None")}, {1, N_("Auto release")}, {2, N_("Manual release")}};
constexpr TagDetails nikonAutoBracketRelease[] = {
{0, N_("None")},
{1, N_("Auto release")},
{2, N_("Manual release")},
};
//! NEFCompression, tag 0x0093
constexpr TagDetails nikonNefCompression[] = {
{1, N_("Lossy (type 1)")}, {2, N_("Uncompressed")}, {3, N_("Lossless")}, {4, N_("Lossy (type 2)")}};
{1, N_("Lossy (type 1)")},
{2, N_("Uncompressed")},
{3, N_("Lossless")},
{4, N_("Lossy (type 2)")},
};
//! RetouchHistory, tag 0x009e
constexpr TagDetails nikonRetouchHistory[] = {
{0, N_("None")}, {3, N_("B & W")}, {4, N_("Sepia")}, {5, N_("Trim")},
{6, N_("Small picture")}, {7, N_("D-Lighting")}, {8, N_("Red eye")}, {9, N_("Cyanotype")},
{10, N_("Sky light")}, {11, N_("Warm tone")}, {12, N_("Color custom")}, {13, N_("Image overlay")}};
{10, N_("Sky light")}, {11, N_("Warm tone")}, {12, N_("Color custom")}, {13, N_("Image overlay")},
};
//! HighISONoiseReduction, tag 0x00b1
constexpr TagDetails nikonHighISONoiseReduction[] = {
{0, N_("Off")}, {1, N_("Minimal")}, {2, N_("Low")}, {4, N_("Normal")}, {6, N_("High")}};
{0, N_("Off")}, {1, N_("Minimal")}, {2, N_("Low")}, {4, N_("Normal")}, {6, N_("High")},
};
// Nikon1 MakerNote Tag Info
constexpr TagInfo Nikon1MakerNote::tagInfo_[] = {
@ -292,23 +312,35 @@ std::ostream& Nikon1MakerNote::print0x0088(std::ostream& os, const Value& value,
}
//! Quality, tag 0x0003
constexpr TagDetails nikon2Quality[] = {{1, N_("VGA Basic")}, {2, N_("VGA Normal")}, {3, N_("VGA Fine")},
{4, N_("SXGA Basic")}, {5, N_("SXGA Normal")}, {6, N_("SXGA Fine")}};
constexpr TagDetails nikon2Quality[] = {
{1, N_("VGA Basic")}, {2, N_("VGA Normal")}, {3, N_("VGA Fine")},
{4, N_("SXGA Basic")}, {5, N_("SXGA Normal")}, {6, N_("SXGA Fine")},
};
//! ColorMode, tag 0x0004
constexpr TagDetails nikon2ColorMode[] = {{1, N_("Color")}, {2, N_("Monochrome")}};
constexpr TagDetails nikon2ColorMode[] = {
{1, N_("Color")},
{2, N_("Monochrome")},
};
//! ImageAdjustment, tag 0x0005
constexpr TagDetails nikon2ImageAdjustment[] = {
{0, N_("Normal")}, {1, N_("Bright+")}, {2, N_("Bright-")}, {3, N_("Contrast+")}, {4, N_("Contrast-")}};
{0, N_("Normal")}, {1, N_("Bright+")}, {2, N_("Bright-")}, {3, N_("Contrast+")}, {4, N_("Contrast-")},
};
//! ISOSpeed, tag 0x0006
constexpr TagDetails nikon2IsoSpeed[] = {{0, "80"}, {2, "160"}, {4, "320"}, {5, "100"}};
constexpr TagDetails nikon2IsoSpeed[] = {
{0, "80"},
{2, "160"},
{4, "320"},
{5, "100"},
};
//! WhiteBalance, tag 0x0007
constexpr TagDetails nikon2WhiteBalance[] = {{0, N_("Auto")}, {1, N_("Preset")}, {2, N_("Daylight")},
{3, N_("Incandescent")}, {4, N_("Fluorescent")}, {5, N_("Cloudy")},
{6, N_("Speedlight")}};
constexpr TagDetails nikon2WhiteBalance[] = {
{0, N_("Auto")}, {1, N_("Preset")}, {2, N_("Daylight")}, {3, N_("Incandescent")},
{4, N_("Fluorescent")}, {5, N_("Cloudy")}, {6, N_("Speedlight")},
};
// Nikon2 MakerNote Tag Info
constexpr TagInfo Nikon2MakerNote::tagInfo_[] = {
@ -551,13 +583,23 @@ const TagInfo* Nikon3MakerNote::tagList() {
}
//! YesNo, used for DaylightSavings, tag index 2, et al.
constexpr TagDetails nikonYesNo[] = {{0, N_("No")}, {1, N_("Yes")}};
constexpr TagDetails nikonYesNo[] = {
{0, N_("No")},
{1, N_("Yes")},
};
//! DateDisplayFormat, tag index 3
constexpr TagDetails nikonDateDisplayFormat[] = {{0, N_("Y/M/D")}, {1, N_("M/D/Y")}, {2, N_("D/M/Y")}};
constexpr TagDetails nikonDateDisplayFormat[] = {
{0, N_("Y/M/D")},
{1, N_("M/D/Y")},
{2, N_("D/M/Y")},
};
//! OnOff
constexpr TagDetails nikonOnOff[] = {{1, N_("On")}, {2, N_("Off")}};
constexpr TagDetails nikonOnOff[] = {
{1, N_("On")},
{2, N_("Off")},
};
// Nikon3 Vibration Reduction Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoVr_[] = {
@ -575,17 +617,24 @@ const TagInfo* Nikon3MakerNote::tagListVr() {
}
//! Adjust
constexpr TagDetails nikonAdjust[] = {{0, N_("Default Settings")}, {1, N_("Quick Adjust")}, {2, N_("Full Control")}};
constexpr TagDetails nikonAdjust[] = {
{0, N_("Default Settings")},
{1, N_("Quick Adjust")},
{2, N_("Full Control")},
};
//! FilterEffect
constexpr TagDetails nikonFilterEffect[] = {{0x80, N_("Off")}, {0x81, N_("Yellow")}, {0x82, N_("Orange")},
{0x83, N_("Red")}, {0x84, N_("Green")}, {0xff, N_("n/a")}};
constexpr TagDetails nikonFilterEffect[] = {
{0x80, N_("Off")}, {0x81, N_("Yellow")}, {0x82, N_("Orange")},
{0x83, N_("Red")}, {0x84, N_("Green")}, {0xff, N_("n/a")},
};
//! ToningEffect
constexpr TagDetails nikonToningEffect[] = {{0x80, N_("B&W")}, {0x81, N_("Sepia")}, {0x82, N_("Cyanotype")},
{0x83, N_("Red")}, {0x84, N_("Yellow")}, {0x85, N_("Green")},
{0x86, N_("Blue-green")}, {0x87, N_("Blue")}, {0x88, N_("Purple-blue")},
{0x89, N_("Red-purple")}, {0xff, N_("n/a")}};
constexpr TagDetails nikonToningEffect[] = {
{0x80, N_("B&W")}, {0x81, N_("Sepia")}, {0x82, N_("Cyanotype")}, {0x83, N_("Red")},
{0x84, N_("Yellow")}, {0x85, N_("Green")}, {0x86, N_("Blue-green")}, {0x87, N_("Blue")},
{0x88, N_("Purple-blue")}, {0x89, N_("Red-purple")}, {0xff, N_("n/a")},
};
// Nikon3 Picture Control Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoPc_[] = {
@ -623,7 +672,11 @@ const TagInfo* Nikon3MakerNote::tagListPc() {
}
//! OnOff
constexpr TagDetails aftOnOff[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On")}};
constexpr TagDetails aftOnOff[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("On")},
};
// Nikon3 AF Fine Tune
constexpr TagInfo Nikon3MakerNote::tagInfoAFT_[] = {
@ -665,7 +718,8 @@ constexpr TagDetails nikonIsoExpansion[] = {
{0x105, N_("Hi 1.3")}, {0x106, N_("Hi 1.5")}, {0x107, N_("Hi 1.7")}, {0x108, N_("Hi 2.0")}, {0x109, N_("Hi 2.3")},
{0x10a, N_("Hi 2.5")}, {0x10b, N_("Hi 2.7")}, {0x10c, N_("Hi 3.0")}, {0x10d, N_("Hi 3.3")}, {0x10e, N_("Hi 3.5")},
{0x10f, N_("Hi 3.7")}, {0x110, N_("Hi 4.0")}, {0x111, N_("Hi 4.3")}, {0x112, N_("Hi 4.5")}, {0x113, N_("Hi 4.7")},
{0x114, N_("Hi 5.0")}, {0x201, N_("Lo 0.3")}, {0x202, N_("Lo 0.5")}, {0x203, N_("Lo 0.7")}, {0x204, N_("Lo 1.0")}};
{0x114, N_("Hi 5.0")}, {0x201, N_("Lo 0.3")}, {0x202, N_("Lo 0.5")}, {0x203, N_("Lo 0.7")}, {0x204, N_("Lo 1.0")},
};
// Nikon3 ISO Info Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoIi_[] = {
@ -687,19 +741,22 @@ const TagInfo* Nikon3MakerNote::tagListIi() {
//! AfAreaMode
constexpr TagDetails nikonAfAreaMode[] = {
{0, N_("Single Area")}, {1, N_("Dynamic Area")}, {2, N_("Dynamic Area, Closest Subject")},
{3, N_("Group Dynamic")}, {4, N_("Single Area (wide)")}, {5, N_("Dynamic Area (wide)")}};
{3, N_("Group Dynamic")}, {4, N_("Single Area (wide)")}, {5, N_("Dynamic Area (wide)")},
};
//! AfPoint
constexpr TagDetails nikonAfPoint[] = {{0, N_("Center")}, {1, N_("Top")}, {2, N_("Bottom")},
{3, N_("Mid-left")}, {4, N_("Mid-right")}, {5, N_("Upper-left")},
{6, N_("Upper-right")}, {7, N_("Lower-left")}, {8, N_("Lower-right")},
{9, N_("Far Left")}, {10, N_("Far Right")}};
constexpr TagDetails nikonAfPoint[] = {
{0, N_("Center")}, {1, N_("Top")}, {2, N_("Bottom")}, {3, N_("Mid-left")},
{4, N_("Mid-right")}, {5, N_("Upper-left")}, {6, N_("Upper-right")}, {7, N_("Lower-left")},
{8, N_("Lower-right")}, {9, N_("Far Left")}, {10, N_("Far Right")},
};
//! AfPointsInFocus
constexpr TagDetailsBitmask nikonAfPointsInFocus[] = {
{0x0001, N_("Center")}, {0x0002, N_("Top")}, {0x0004, N_("Bottom")}, {0x0008, N_("Mid-left")},
{0x0010, N_("Mid-right")}, {0x0020, N_("Upper-left")}, {0x0040, N_("Upper-right")}, {0x0080, N_("Lower-left")},
{0x0100, N_("Lower-right")}, {0x0200, N_("Far Left")}, {0x0400, N_("Far Right")}};
{0x0100, N_("Lower-right")}, {0x0200, N_("Far Left")}, {0x0400, N_("Far Right")},
};
// Nikon3 Auto Focus Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoAf_[] = {
@ -817,7 +874,10 @@ const TagInfo* Nikon3MakerNote::tagListFi() {
//! MultiExposureMode
constexpr TagDetails nikonMultiExposureMode[] = {
{0, N_("Off")}, {1, N_("Multiple Exposure")}, {2, N_("Image Overlay")}};
{0, N_("Off")},
{1, N_("Multiple Exposure")},
{2, N_("Image Overlay")},
};
// Nikon3 Multi Exposure Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoMe_[] = {
@ -839,10 +899,15 @@ const TagInfo* Nikon3MakerNote::tagListMe() {
}
//! FlashSource
constexpr TagDetails nikonFlashSource[] = {{0, N_("None")}, {1, N_("External")}, {2, N_("Internal")}};
constexpr TagDetails nikonFlashSource[] = {
{0, N_("None")},
{1, N_("External")},
{2, N_("Internal")},
};
//! FlashFirmware
constexpr TagDetails nikonFlashFirmware[] = {{0x0000, N_("n/a")},
constexpr TagDetails nikonFlashFirmware[] = {
{0x0000, N_("n/a")},
{0x0101, N_("1.01 (SB-800 or Metz 58 AF-1)")},
{0x0103, "1.03 (SB-800)"},
{0x0201, "2.01 (SB-800)"},
@ -860,7 +925,8 @@ constexpr TagDetails nikonFlashFirmware[] = {{0x0000, N_("n/a")},
{0x0a00, "10.00 (SB-N7)"},
{0x0b00, "11.00 (SB-300)"},
{0x0d00, "13.00 (SB-500)"},
{0x0e00, "14.00 (SB-5000)"}};
{0x0e00, "14.00 (SB-5000)"},
};
//! FlashGNDistance
constexpr TagDetails nikonFlashGNDistance[] = {
@ -877,7 +943,8 @@ constexpr TagDetails nikonFlashGNDistance[] = {
{148, "10.0 ft"}, {149, "12.0 ft"}, {150, "13.0 ft"}, {151, "15.0 ft"}, {152, "17.0 ft"}, {153, "19.0 ft"},
{154, "21.0 ft"}, {155, "23.0 ft"}, {156, "26.0 ft"}, {157, "29.0 ft"}, {158, "33.0 ft"}, {159, "37.0 ft"},
{160, "42.0 ft"}, {161, "47.0 ft"}, {162, "52.0 ft"}, {163, "59.0 ft"}, {164, "66.0 ft"}, {165, "74.0 ft"},
{166, "83.0 ft"}, {167, "94.0 ft"}, {255, N_("n/a")}};
{166, "83.0 ft"}, {167, "94.0 ft"}, {255, N_("n/a")},
};
//! FlashControlMode
constexpr TagDetails nikonFlashControlMode[] = {
@ -896,10 +963,14 @@ static constexpr bool flashModeUsesManualScale(const int64_t mode) {
//! ExternalFlashFlags
constexpr TagDetails nikonExternalFlashFlags[] = {
{0, N_("Fired")}, {2, N_("Bounce Flash")}, {4, N_("Wide Flash Adapter")}};
{0, N_("Fired")},
{2, N_("Bounce Flash")},
{4, N_("Wide Flash Adapter")},
};
//! FlashColorFilter
constexpr TagDetails nikonFlashColorFilter[] = {{0, N_("None")},
constexpr TagDetails nikonFlashColorFilter[] = {
{0, N_("None")},
{1, N_("FL-GL1 (for fluorescent light)")},
{2, N_("FL-GL2 (for fluorescent light)")},
{9, N_("TN-A1 (for incandescent light)")},
@ -908,24 +979,36 @@ constexpr TagDetails nikonFlashColorFilter[] = {{0, N_("None")},
{66, N_("Blue")},
{67, N_("Yellow")},
{68, N_("Amber")},
{79, N_("Other")}};
{79, N_("Other")},
};
//! FlashWirelessOptions
constexpr TagDetails nikonFlashAWLMode[] = {
{0, N_("AWL Off")}, {1, N_("Optical AWL")}, {2, N_("Optical/Radio AWL")}, {3, N_("Radio AWL")}};
{0, N_("AWL Off")},
{1, N_("Optical AWL")},
{2, N_("Optical/Radio AWL")},
{3, N_("Radio AWL")},
};
//! FlashExposureComp
constexpr TagDetails nikonFlashExposureComp[] = {{0, N_("Exposure Comp.: Entire frame")},
{4, N_("Exposure Comp.: Background Only")}};
constexpr TagDetails nikonFlashExposureComp[] = {
{0, N_("Exposure Comp.: Entire frame")},
{4, N_("Exposure Comp.: Background Only")},
};
//! FlashIlluminationPattern
constexpr TagDetails nikonFlashIlluminationPat[] = {{0, N_("Illumination Pat.: Standard")},
constexpr TagDetails nikonFlashIlluminationPat[] = {
{0, N_("Illumination Pat.: Standard")},
{1, N_("Illumination Pat.: Center-weighted")},
{2, N_("Illumination Pat.: Even")}};
{2, N_("Illumination Pat.: Even")},
};
//! FlashAdaptors
constexpr TagDetailsBitmask nikonFlashAdaptors[] = {
{0x04, N_("Bounce Flash adaptor")}, {0x10, N_("Wide Flash adaptor")}, {0x20, N_("Nikon Diffusion Dome")}};
{0x04, N_("Bounce Flash adaptor")},
{0x10, N_("Wide Flash adaptor")},
{0x20, N_("Nikon Diffusion Dome")},
};
static void printFlashCompensationValue(std::ostream& os, const unsigned char value, const bool manualScale) {
std::ios::fmtflags f(os.flags());
@ -1309,7 +1392,8 @@ constexpr TagDetails nikonAfFineTuneAdj1[] = {
{0x30c2, "-19"}, {0x403c, "+5"}, {0x403d, "+10"}, {0x403e, "+20"}, {0x40c2, "-20"}, {0x40c3, "-10"},
{0x40c4, "-5"}, {0x603d, "+11"}, {0x60c3, "-11"}, {0x803b, "+3"}, {0x803c, "+6"}, {0x803d, "+12"},
{0x80c3, "-12"}, {0x80c4, "-6"}, {0x80c5, "-3"}, {0xa03d, "+13"}, {0xa0c3, "-13"}, {0xc03c, "+7"},
{0xc03d, "+14"}, {0xc0c3, "-14"}, {0xc0c4, "-7"}, {0xe03d, "+15"}, {0xe0c3, "-15"}};
{0xc03d, "+14"}, {0xc0c3, "-14"}, {0xc0c4, "-7"}, {0xe03d, "+15"}, {0xe0c3, "-15"},
};
// Nikon3 Shot Info D300 (a) Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoSi3_[] = {
@ -1337,7 +1421,8 @@ constexpr TagDetails nikonAfFineTuneAdj2[] = {
{0x40c6, "-1"}, {0x543e, "+17"}, {0x54c2, "-17"}, {0x683d, "+9"}, {0x683e, "+18"}, {0x68c2, "-18"},
{0x68c3, "-9"}, {0x7c3e, "+19"}, {0x7cc2, "-19"}, {0x903c, "+5"}, {0x903d, "+10"}, {0x903e, "+20"},
{0x90c2, "-20"}, {0x90c3, "-10"}, {0x90c4, "-5"}, {0xb83d, "+11"}, {0xb8c3, "-11"}, {0xe03b, "+3"},
{0xe03c, "+6"}, {0xe03d, "+12"}, {0xe0c3, "-12"}, {0xe0c4, "-6"}, {0xe0c5, "-3"}};
{0xe03c, "+6"}, {0xe03d, "+12"}, {0xe0c3, "-12"}, {0xe0c4, "-6"}, {0xe0c5, "-3"},
};
// Nikon3 Shot Info D300 (b) Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoSi4_[] = {
@ -1358,10 +1443,19 @@ const TagInfo* Nikon3MakerNote::tagListSi4() {
}
//! VibrationReduction
constexpr TagDetails nikonOffOn2[] = {{0, N_("Off")}, {1, N_("On (1)")}, {2, N_("On (2)")}, {3, N_("On (3)")}};
constexpr TagDetails nikonOffOn2[] = {
{0, N_("Off")},
{1, N_("On (1)")},
{2, N_("On (2)")},
{3, N_("On (3)")},
};
//! VibrationReduction2
constexpr TagDetails nikonOffOn3[] = {{0x0, N_("n/a")}, {0xc, N_("Off")}, {0xf, N_("On")}};
constexpr TagDetails nikonOffOn3[] = {
{0x0, N_("n/a")},
{0xc, N_("Off")},
{0xf, N_("On")},
};
// Nikon3 Shot Info Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoSi5_[] = {

@ -17,25 +17,42 @@
// class member definitions
namespace Exiv2::Internal {
//! OffOn, multiple tags
constexpr TagDetails olympusOffOn[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails olympusOffOn[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! NoYes, multiple tags
constexpr TagDetails olympusNoYes[] = {{0, N_("No")}, {1, N_("Yes")}};
constexpr TagDetails olympusNoYes[] = {
{0, N_("No")},
{1, N_("Yes")},
};
//! Quality, tag 0x0201
constexpr TagDetails olympusQuality[] = {{1, N_("Standard Quality (SQ)")},
constexpr TagDetails olympusQuality[] = {
{1, N_("Standard Quality (SQ)")},
{2, N_("High Quality (HQ)")},
{3, N_("Super High Quality (SHQ)")},
{6, N_("Raw")}};
{6, N_("Raw")},
};
//! Macro, tag 0x0202
constexpr TagDetails olympusMacro[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Super macro")}};
constexpr TagDetails olympusMacro[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Super macro")},
};
//! OneTouchWB, tag 0x0302
constexpr TagDetails olympusOneTouchWb[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (preset)")}};
constexpr TagDetails olympusOneTouchWb[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("On (preset)")},
};
//! SceneMode, tag 0x403 and CameraSettings tag 0x509
constexpr TagDetails olympusSceneMode[] = {{0, N_("Standard")},
constexpr TagDetails olympusSceneMode[] = {
{0, N_("Standard")},
{6, N_("Auto")},
{7, N_("Sport")},
{8, N_("Portrait")},
@ -79,26 +96,48 @@ constexpr TagDetails olympusSceneMode[] = {{0, N_("Standard")},
{47, N_("Vivid")},
{48, N_("Nature Macro")},
{49, N_("Underwater Snapshot")},
{50, N_("Shooting Guide")}};
{50, N_("Shooting Guide")},
};
//! FlashDevice, tag 0x1005
constexpr TagDetails olympusFlashDevice[] = {
{0, N_("None")}, {1, N_("Internal")}, {4, N_("External")}, {5, N_("Internal + External")}};
{0, N_("None")},
{1, N_("Internal")},
{4, N_("External")},
{5, N_("Internal + External")},
};
//! FocusRange, tag 0x100a
constexpr TagDetails olympusFocusRange[] = {{0, N_("Normal")}, {1, N_("Macro")}};
constexpr TagDetails olympusFocusRange[] = {
{0, N_("Normal")},
{1, N_("Macro")},
};
//! FocusMode, tag 0x100b
constexpr TagDetails olympusFocusMode[] = {{0, N_("Auto")}, {1, N_("Manual")}};
constexpr TagDetails olympusFocusMode[] = {
{0, N_("Auto")},
{1, N_("Manual")},
};
//! Sharpness, tag 0x100f
constexpr TagDetails olympusSharpness[] = {{0, N_("Normal")}, {1, N_("Hard")}, {2, N_("Soft")}};
constexpr TagDetails olympusSharpness[] = {
{0, N_("Normal")},
{1, N_("Hard")},
{2, N_("Soft")},
};
//! Contrast, tag 0x1029
constexpr TagDetails olympusContrast[] = {{0, N_("High")}, {1, N_("Normal")}, {2, N_("Low")}};
constexpr TagDetails olympusContrast[] = {
{0, N_("High")},
{1, N_("Normal")},
{2, N_("Low")},
};
//! CCDScanMode, tag 0x1039
constexpr TagDetails olympusCCDScanMode[] = {{0, N_("Interlaced")}, {1, N_("Progressive")}};
constexpr TagDetails olympusCCDScanMode[] = {
{0, N_("Interlaced")},
{1, N_("Progressive")},
};
// Olympus Tag Info
constexpr TagInfo OlympusMakerNote::tagInfo_[] = {
@ -287,43 +326,55 @@ const TagInfo* OlympusMakerNote::tagList() {
// Olympus CameraSettings Tags
//! ExposureMode, tag 0x0200
constexpr TagDetails olympusExposureMode[] = {{1, N_("Manual")},
{2, N_("Program")},
{3, N_("Aperture-priority AE")},
{4, N_("Shutter speed priority AE")},
{5, N_("Program-shift")}};
constexpr TagDetails olympusExposureMode[] = {
{1, N_("Manual")}, {2, N_("Program")}, {3, N_("Aperture-priority AE")}, {4, N_("Shutter speed priority AE")},
{5, N_("Program-shift")},
};
//! MeteringMode, tag 0x0202
constexpr TagDetails olympusMeteringMode[] = {{2, N_("Center-weighted average")},
constexpr TagDetails olympusMeteringMode[] = {
{2, N_("Center-weighted average")},
{3, N_("Spot")},
{5, N_("ESP")},
{261, N_("Pattern+AF")},
{515, N_("Spot+Highlight control")},
{1027, N_("Spot+Shadow control")}};
{1027, N_("Spot+Shadow control")},
};
//! MacroMode, tag 0x0300
constexpr TagDetails olympusMacroMode[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Super Macro")}};
constexpr TagDetails olympusMacroMode[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Super Macro")},
};
//! FocusMode, tag 0x0301
[[maybe_unused]] constexpr TagDetails olympusCsFocusMode[] = {{0, N_("Single AF")},
{1, N_("Sequential shooting AF")},
{2, N_("Continuous AF")},
{3, N_("Multi AF")},
{10, N_("MF")}};
[[maybe_unused]] constexpr TagDetails olympusCsFocusMode[] = {
{0, N_("Single AF")}, {1, N_("Sequential shooting AF")}, {2, N_("Continuous AF")}, {3, N_("Multi AF")},
{10, N_("MF")},
};
//! FocusProcess, tag 0x0302
constexpr TagDetails olympusFocusProcess[] = {{0, N_("AF Not Used")}, {1, N_("AF Used")}};
constexpr TagDetails olympusFocusProcess[] = {
{0, N_("AF Not Used")},
{1, N_("AF Used")},
};
//! AFSearch, tag 0x0303
constexpr TagDetails olympusAFSearch[] = {{0, N_("Not Ready")}, {1, N_("Ready")}};
constexpr TagDetails olympusAFSearch[] = {
{0, N_("Not Ready")},
{1, N_("Ready")},
};
//! FlashMode, tag 0x0400
constexpr TagDetailsBitmask olympusFlashMode[] = {
{0x0000, N_("Off")}, {0x0001, N_("On")}, {0x0002, N_("Fill-in")}, {0x0004, N_("Red-eye")},
{0x0008, N_("Slow-sync")}, {0x0010, N_("Forced On")}, {0x0020, N_("2nd Curtain")}};
{0x0008, N_("Slow-sync")}, {0x0010, N_("Forced On")}, {0x0020, N_("2nd Curtain")},
};
//! FlashRemoteControl, tag 0x0403
constexpr TagDetails olympusFlashRemoteControl[] = {{0x0, N_("Off")},
constexpr TagDetails olympusFlashRemoteControl[] = {
{0x0, N_("Off")},
{0x1, N_("Channel 1, Low")},
{0x2, N_("Channel 2, Low")},
{0x3, N_("Channel 3, Low")},
@ -335,13 +386,20 @@ constexpr TagDetails olympusFlashRemoteControl[] = {{0x0, N_("Off")},
{0x11, N_("Channel 1, High")},
{0x12, N_("Channel 2, High")},
{0x13, N_("Channel 3, High")},
{0x14, N_("Channel 4, High")}};
{0x14, N_("Channel 4, High")},
};
//! FlashControlMode, tag 0x0404
constexpr TagDetails olympusFlashControlMode[] = {{0, N_("Off")}, {3, N_("TTL")}, {4, N_("Auto")}, {5, N_("Manual")}};
constexpr TagDetails olympusFlashControlMode[] = {
{0, N_("Off")},
{3, N_("TTL")},
{4, N_("Auto")},
{5, N_("Manual")},
};
//! WhiteBalance, tag 0x0500
constexpr TagDetails olympusWhiteBalance[] = {{0, N_("Auto")},
constexpr TagDetails olympusWhiteBalance[] = {
{0, N_("Auto")},
{1, N_("Auto (Keep Warm Color Off)")},
{16, N_("7500K (Fine Weather with Shade)")},
{17, N_("6000K (Cloudy)")},
@ -363,26 +421,36 @@ constexpr TagDetails olympusWhiteBalance[] = {{0, N_("Auto")},
{512, N_("Custom WB 1")},
{513, N_("Custom WB 2")},
{514, N_("Custom WB 3")},
{515, N_("Custom WB 4")}};
{515, N_("Custom WB 4")},
};
//! ModifiedSaturation, tag 0x0504
constexpr TagDetails olympusModifiedSaturation[] = {{0, N_("Off")},
constexpr TagDetails olympusModifiedSaturation[] = {
{0, N_("Off")},
{1, N_("CM1 (Red Enhance)")},
{2, N_("CM2 (Green Enhance)")},
{3, N_("CM3 (Blue Enhance)")},
{4, N_("CM4 (Skin Tones)")}};
{4, N_("CM4 (Skin Tones)")},
};
//! ColorSpace, tag 0x0507
constexpr TagDetails olympusColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}};
constexpr TagDetails olympusColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
{2, N_("Pro Photo RGB")},
};
//! NoiseReduction, tag 0x050a
constexpr TagDetailsBitmask olympusNoiseReduction[] = {{0x0001, N_("Noise Reduction")},
constexpr TagDetailsBitmask olympusNoiseReduction[] = {
{0x0001, N_("Noise Reduction")},
{0x0002, N_("Noise Filter")},
{0x0004, N_("Noise Filter (ISO Boost)")},
{0x0008, N_("Auto")}};
{0x0008, N_("Auto")},
};
//! PictureMode, tag 0x0520
constexpr TagDetails olympusPictureMode[] = {{1, N_("Vivid")},
constexpr TagDetails olympusPictureMode[] = {
{1, N_("Vivid")},
{2, N_("Natural")},
{3, N_("Muted")},
{4, N_("Portrait")},
@ -396,15 +464,18 @@ constexpr TagDetails olympusPictureMode[] = {{1, N_("Vivid")},
{13, N_("Monochrome Profile 2")},
{14, N_("Monochrome Profile 3")},
{256, N_("Monotone")},
{512, N_("Sepia")}};
{512, N_("Sepia")},
};
//! PictureModeBWFilter, tag 0x0525
constexpr TagDetails olympusPictureModeBWFilter[] = {{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Yellow")},
{3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}};
constexpr TagDetails olympusPictureModeBWFilter[] = {
{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")},
};
//! PictureModeTone, tag 0x0526
constexpr TagDetails olympusPictureModeTone[] = {{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Sepia")},
{3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}};
constexpr TagDetails olympusPictureModeTone[] = {
{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")},
};
constexpr TagDetails artFilters[] = {
{0, N_("Off")},
@ -448,11 +519,17 @@ constexpr TagDetails artFilters[] = {
};
//! OlympusCs Quality, tag 0x0603
constexpr TagDetails olympusCsQuality[] = {{1, N_("SQ")}, {2, N_("HQ")}, {3, N_("SHQ")}, {4, N_("RAW")}};
constexpr TagDetails olympusCsQuality[] = {
{1, N_("SQ")},
{2, N_("HQ")},
{3, N_("SHQ")},
{4, N_("RAW")},
};
//! Olympus ImageStabilization, tag 0x0604
static constexpr TagDetails olympusImageStabilization[] = {
{0, N_("Off")}, {1, N_("S-IS 1")}, {2, N_("S-IS 2")}, {3, N_("S-IS 3")}, {4, N_("S-IS AUTO")}};
{0, N_("Off")}, {1, N_("S-IS 1")}, {2, N_("S-IS 2")}, {3, N_("S-IS 3")}, {4, N_("S-IS AUTO")},
};
constexpr TagInfo OlympusMakerNote::tagInfoCs_[] = {
{0x0000, "CameraSettingsVersion", N_("Camera Settings Version"), N_("Camera settings version"), IfdId::olympusCsId,
@ -573,7 +650,11 @@ const TagInfo* OlympusMakerNote::tagListCs() {
}
//! OlympusEq FlashType, tag 0x1000
constexpr TagDetails olympusEqFlashType[] = {{0, N_("None")}, {2, N_("Simple E-System")}, {3, N_("E-System")}};
constexpr TagDetails olympusEqFlashType[] = {
{0, N_("None")},
{2, N_("Simple E-System")},
{3, N_("E-System")},
};
//! OlympusEq FlashModel, tag 0x1001
constexpr TagDetails olympusEqFlashModel[] = {
@ -642,21 +723,34 @@ const TagInfo* OlympusMakerNote::tagListEq() {
}
//! OlympusRd ColorSpace, tag 0x0108
constexpr TagDetails olympusRdColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}};
constexpr TagDetails olympusRdColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
{2, N_("Pro Photo RGB")},
};
//! OlympusRd Engine, tag 0x0109
constexpr TagDetails olympusRdEngine[] = {
{0, N_("High Speed")}, {1, N_("High Function")}, {2, N_("Advanced High Speed")}, {3, N_("Advanced High Function")}};
{0, N_("High Speed")},
{1, N_("High Function")},
{2, N_("Advanced High Speed")},
{3, N_("Advanced High Function")},
};
//! OlympusRd EditStatus, tag 0x010b
constexpr TagDetails olympusRdEditStatus[] = {
{0, N_("Original")}, {1, N_("Edited (Landscape)")}, {6, N_("Edited (Portrait)")}, {8, N_("Edited (Portrait)")}};
{0, N_("Original")},
{1, N_("Edited (Landscape)")},
{6, N_("Edited (Portrait)")},
{8, N_("Edited (Portrait)")},
};
//! OlympusRd Settings, tag 0x010c
constexpr TagDetailsBitmask olympusRdSettings[] = {{0x0001, N_("WB Color Temp")}, {0x0004, N_("WB Gray Point")},
{0x0008, N_("Saturation")}, {0x0010, N_("Contrast")},
{0x0020, N_("Sharpness")}, {0x0040, N_("Color Space")},
{0x0080, N_("High Function")}, {0x0100, N_("Noise Reduction")}};
constexpr TagDetailsBitmask olympusRdSettings[] = {
{0x0001, N_("WB Color Temp")}, {0x0004, N_("WB Gray Point")}, {0x0008, N_("Saturation")},
{0x0010, N_("Contrast")}, {0x0020, N_("Sharpness")}, {0x0040, N_("Color Space")},
{0x0080, N_("High Function")}, {0x0100, N_("Noise Reduction")},
};
constexpr TagInfo OlympusMakerNote::tagInfoRd_[] = {
{0x0000, "RawDevVersion", N_("Raw Development Version"), N_("Raw development version"), IfdId::olympusRdId,
@ -697,25 +791,38 @@ const TagInfo* OlympusMakerNote::tagListRd() {
}
//! OlympusRd2 WhiteBalance, tag 0x0101
constexpr TagDetails olympusRd2WhiteBalance[] = {{1, N_("Color Temperature")}, {2, N_("Gray Point")}};
constexpr TagDetails olympusRd2WhiteBalance[] = {
{1, N_("Color Temperature")},
{2, N_("Gray Point")},
};
//! OlympusRd2 ColorSpace, tag 0x0109
constexpr TagDetails olympusRd2ColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}};
constexpr TagDetails olympusRd2ColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
{2, N_("Pro Photo RGB")},
};
//! OlympusRd2 Engine, tag 0x010b
constexpr TagDetails olympusRd2Engine[] = {{0, N_("High Speed")}, {1, N_("High Function")}};
constexpr TagDetails olympusRd2Engine[] = {
{0, N_("High Speed")},
{1, N_("High Function")},
};
//! OlympusRd2 PictureMode, tag 0x010c
constexpr TagDetails olympusRd2PictureMode[] = {
{1, N_("Vivid")}, {2, N_("Natural")}, {3, N_("Muted")}, {256, N_("Monotone")}, {512, N_("Sepia")}};
{1, N_("Vivid")}, {2, N_("Natural")}, {3, N_("Muted")}, {256, N_("Monotone")}, {512, N_("Sepia")},
};
//! OlympusRd2 PM_BWFilter, tag 0x0110
constexpr TagDetails olympusRd2PM_BWFilter[] = {
{1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}};
{1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")},
};
//! OlympusRd2 PMPictureTone, tag 0x0111
constexpr TagDetails olympusRd2PMPictureTone[] = {
{1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}};
{1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")},
};
constexpr TagInfo OlympusMakerNote::tagInfoRd2_[] = {
{0x0000, "RawDev2Version", N_("Raw Development 2 Version"), N_("Raw development 2 version"), IfdId::olympusRd2Id,
@ -775,11 +882,15 @@ const TagInfo* OlympusMakerNote::tagListRd2() {
//! OlympusIp MultipleExposureMode, tag 0x101c
constexpr TagDetails olympusIpMultipleExposureMode[] = {
{0, N_("Off")}, {2, N_("On (2 frames)")}, {3, N_("On (3 frames)")}};
{0, N_("Off")},
{2, N_("On (2 frames)")},
{3, N_("On (3 frames)")},
};
//! OlympusIp olympusIpAspectRatio, tag 0x101c
constexpr TagDetails olympusIpAspectRatio[] = {{1, "4:3"}, {2, "3:2"}, {3, "16:9"}, {4, "6:6"}, {5, "5:4"},
{6, "7:6"}, {7, "6:5"}, {8, "7:5"}, {9, "3:4"}};
constexpr TagDetails olympusIpAspectRatio[] = {
{1, "4:3"}, {2, "3:2"}, {3, "16:9"}, {4, "6:6"}, {5, "5:4"}, {6, "7:6"}, {7, "6:5"}, {8, "7:5"}, {9, "3:4"},
};
constexpr TagInfo OlympusMakerNote::tagInfoIp_[] = {
{0x0000, "ImageProcessingVersion", N_("Image Processing Version"), N_("Image processing version"),
@ -894,7 +1005,10 @@ const TagInfo* OlympusMakerNote::tagListIp() {
}
//! OlympusFi ExternalFlashBounce, tag 0x1204
constexpr TagDetails olympusFiExternalFlashBounce[] = {{0, N_("Bounce or Off")}, {1, N_("Direct")}};
constexpr TagDetails olympusFiExternalFlashBounce[] = {
{0, N_("Bounce or Off")},
{1, N_("Direct")},
};
constexpr TagInfo OlympusMakerNote::tagInfoFi_[] = {
{0x0000, "FocusInfoVersion", N_("Focus Info Version"), N_("Focus info version"), IfdId::olympusFiId,
@ -957,7 +1071,8 @@ const TagInfo* OlympusMakerNote::tagListFe() {
}
//! OlympusRi LightSource, tag 0x1000
constexpr TagDetails olympusRiLightSource[] = {{0, N_("Unknown")},
constexpr TagDetails olympusRiLightSource[] = {
{0, N_("Unknown")},
{16, N_("Shade")},
{17, N_("Cloudy")},
{18, N_("Fine Weather")},
@ -968,7 +1083,8 @@ constexpr TagDetails olympusRiLightSource[] = {{0, N_("Unknown")},
{35, N_("Cool White Fluorescent (W 3900 - 4500K)")},
{36, N_("White Fluorescent (WW 3200 - 3700K)")},
{256, N_("One Touch White Balance")},
{512, N_("Custom 1-4")}};
{512, N_("Custom 1-4")},
};
constexpr TagInfo OlympusMakerNote::tagInfoRi_[] = {
{0x0000, "RawInfoVersion", N_("Raw Info Version"), N_("Raw info version"), IfdId::olympusRiId, SectionId::makerTags,

@ -39,10 +39,15 @@ constexpr TagDetails panasonicImageStabilizer[] = {
//! Macro, tag 0x001c
constexpr TagDetails panasonicMacro[] = {
{1, N_("On")}, {2, N_("Off")}, {257, N_("Tele-macro")}, {513, N_("Macro-zoom")}};
{1, N_("On")},
{2, N_("Off")},
{257, N_("Tele-macro")},
{513, N_("Macro-zoom")},
};
//! ShootingMode, tag 0x001f and SceneMode, tag 0x8001
constexpr TagDetails panasonicShootingMode[] = {{0, N_("Off")}, // only SceneMode
constexpr TagDetails panasonicShootingMode[] = {
{0, N_("Off")}, // only SceneMode
{1, N_("Normal")},
{2, N_("Portrait")},
{3, N_("Scenery")},
@ -118,17 +123,27 @@ constexpr TagDetails panasonicShootingMode[] = {{0, N_("Off")}, // only SceneMo
{87, N_("Freeze Animal Motion")},
{88, N_("Clear Sports Shot")},
{89, N_("Monochrome")},
{90, N_("Creative Control")}};
{90, N_("Creative Control")},
};
//! Audio, tag 0x0020
constexpr TagDetails panasonicAudio[] = {{1, N_("Yes")}, {2, N_("No")}, {3, N_("Stereo")}};
constexpr TagDetails panasonicAudio[] = {
{1, N_("Yes")},
{2, N_("No")},
{3, N_("Stereo")},
};
//! ColorEffect, tag 0x0028
constexpr TagDetails panasonicColorEffect[] = {
{1, N_("Off")}, {2, N_("Warm")}, {3, N_("Cool")}, {4, N_("Black and white")}, {5, N_("Sepia")}, {6, N_("Happy")}};
{1, N_("Off")}, {2, N_("Warm")}, {3, N_("Cool")}, {4, N_("Black and white")}, {5, N_("Sepia")}, {6, N_("Happy")},
};
//! BustMode, tag 0x002a
constexpr TagDetails panasonicBurstMode[] = {{0, N_("Off")}, {1, N_("Low/High quality")}, {2, N_("Infinite")}};
constexpr TagDetails panasonicBurstMode[] = {
{0, N_("Off")},
{1, N_("Low/High quality")},
{2, N_("Infinite")},
};
//! Contrast, tag 0x002c
constexpr TagDetails panasonicContrast[] = {
@ -138,26 +153,45 @@ constexpr TagDetails panasonicContrast[] = {
//! NoiseReduction, tag 0x002d
constexpr TagDetails panasonicNoiseReduction[] = {
{0, N_("Standard")}, {1, N_("Low (-1)")}, {2, N_("High (+1)")}, {3, N_("Lowest (-2)")}, {4, N_("Highest (+2)")}};
{0, N_("Standard")}, {1, N_("Low (-1)")}, {2, N_("High (+1)")}, {3, N_("Lowest (-2)")}, {4, N_("Highest (+2)")},
};
//! SelfTimer, tag 0x002e
constexpr TagDetails panasonicSelfTimer[] = {{1, N_("Off")}, {2, "10 s"}, {3, "2 s"}, {4, "10 s / 3 pictures"}};
constexpr TagDetails panasonicSelfTimer[] = {
{1, N_("Off")},
{2, "10 s"},
{3, "2 s"},
{4, "10 s / 3 pictures"},
};
//! Rotation, tag 0x0030
constexpr TagDetails panasonicRotation[] = {
{1, N_("Horizontal (normal)")}, {3, N_("Rotate 180")}, {6, N_("Rotate 90 CW")}, {8, N_("Rotate 270 CW")}};
{1, N_("Horizontal (normal)")},
{3, N_("Rotate 180")},
{6, N_("Rotate 90 CW")},
{8, N_("Rotate 270 CW")},
};
//! AFAssistLamp, tag 0x0031
constexpr TagDetails panasonicAFAssistLamp[] = {{1, N_("Fired")},
constexpr TagDetails panasonicAFAssistLamp[] = {
{1, N_("Fired")},
{2, N_("Enabled but Not Used")},
{3, N_("Disabled but Required")},
{4, N_("Disabled and Not Required")}};
{4, N_("Disabled and Not Required")},
};
//! ColorMode, tag 0x0032
constexpr TagDetails panasonicColorMode[] = {{0, N_("Normal")}, {1, N_("Natural")}, {2, N_("Vivid")}};
constexpr TagDetails panasonicColorMode[] = {
{0, N_("Normal")},
{1, N_("Natural")},
{2, N_("Vivid")},
};
//! OpticalZoomMode, tag 0x0034
constexpr TagDetails panasonicOpticalZoomMode[] = {{1, N_("Standard")}, {2, N_("EX optics")}};
constexpr TagDetails panasonicOpticalZoomMode[] = {
{1, N_("Standard")},
{2, N_("EX optics")},
};
//! ConversionLens, tag 0x0035
constexpr TagDetails panasonicConversionLens[] = {
@ -169,91 +203,141 @@ constexpr TagDetails panasonicConversionLens[] = {
};
//! WorldTimeLocation, tag 0x003a
constexpr TagDetails panasonicWorldTimeLocation[] = {{1, N_("Home")}, {2, N_("Destination")}};
constexpr TagDetails panasonicWorldTimeLocation[] = {
{1, N_("Home")},
{2, N_("Destination")},
};
//! TextStamp, tag 0x003b, 0x003e, 000x8008 and 0x8009
constexpr TagDetails panasonicTextStamp[] = {{1, N_("Off")}, {2, N_("On")}};
constexpr TagDetails panasonicTextStamp[] = {
{1, N_("Off")},
{2, N_("On")},
};
//! FilmMode, tag 0x0042
constexpr TagDetails panasonicFilmMode[] = {
{1, N_("Standard (color)")}, {2, N_("Dynamic (color)")}, {3, N_("Nature (color)")},
{4, N_("Smooth (color)")}, {5, N_("Standard (B&W)")}, {6, N_("Dynamic (B&W)")},
{7, N_("Smooth (B&W)")}, {10, N_("Nostalgic")}, {11, N_("Vibrant")}};
{7, N_("Smooth (B&W)")}, {10, N_("Nostalgic")}, {11, N_("Vibrant")},
};
//! Bracket Settings, tag 0x0045
constexpr TagDetails panasonicBracketSettings[] = {{0, N_("No Bracket")},
constexpr TagDetails panasonicBracketSettings[] = {
{0, N_("No Bracket")},
{1, N_("3 images, Sequence 0/-/+")},
{2, N_("3 images, Sequence -/0/+")},
{3, N_("5 images, Sequence 0/-/+")},
{4, N_("5 images, Sequence -/0/+")},
{5, N_("7 images, Sequence 0/-/+")},
{6, N_("7 images, Sequence -/0/+")}};
{6, N_("7 images, Sequence -/0/+")},
};
//! Flash curtain, tag 0x0048
constexpr TagDetails panasonicFlashCurtain[] = {{0, N_("n/a")}, {1, N_("1st")}, {2, N_("2nd")}};
constexpr TagDetails panasonicFlashCurtain[] = {
{0, N_("n/a")},
{1, N_("1st")},
{2, N_("2nd")},
};
//! Long Shutter Noise Reduction, tag 0x0049
constexpr TagDetails panasonicLongShutterNoiseReduction[] = {{1, N_("Off")}, {2, N_("On")}};
constexpr TagDetails panasonicLongShutterNoiseReduction[] = {
{1, N_("Off")},
{2, N_("On")},
};
//! Intelligent exposure, tag 0x005d
constexpr TagDetails panasonicIntelligentExposure[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}};
{0, N_("Off")},
{1, N_("Low")},
{2, N_("Standard")},
{3, N_("High")},
};
//! Flash warning, tag 0x0062
constexpr TagDetails panasonicFlashWarning[] = {{0, N_("No")}, {1, N_("Yes (flash required but disabled")}};
constexpr TagDetails panasonicFlashWarning[] = {
{0, N_("No")},
{1, N_("Yes (flash required but disabled")},
};
//! Intelligent resolution, tag 0x0070
constexpr TagDetails panasonicIntelligentResolution[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}, {4, N_("Extended")}};
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}, {4, N_("Extended")},
};
//! Intelligent D-Range, tag 0x0079
constexpr TagDetails panasonicIntelligentDRange[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}};
{0, N_("Off")},
{1, N_("Low")},
{2, N_("Standard")},
{3, N_("High")},
};
//! Clear Retouch, tag 0x007c
constexpr TagDetails panasonicClearRetouch[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails panasonicClearRetouch[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Photo Style, tag 0x0089
constexpr TagDetails panasonicPhotoStyle[] = {{0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")},
{3, N_("Natural")}, {4, N_("Monochrome")}, {5, N_("Scenery")},
{6, N_("Portrait")}};
constexpr TagDetails panasonicPhotoStyle[] = {
{0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")}, {3, N_("Natural")}, {4, N_("Monochrome")},
{5, N_("Scenery")}, {6, N_("Portrait")},
};
//! Shading compensation, tag 0x008a
constexpr TagDetails panasonicShadingCompensation[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails panasonicShadingCompensation[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Camera orientation, tag 0x008f
constexpr TagDetails panasonicCameraOrientation[] = {{0, N_("Normal")}, {1, N_("Rotate CW")},
{2, N_("Rotate 180")}, {3, N_("Rotate CCW")},
{4, N_("Tilt upwards")}, {5, N_("Tilt downwards")}};
constexpr TagDetails panasonicCameraOrientation[] = {
{0, N_("Normal")}, {1, N_("Rotate CW")}, {2, N_("Rotate 180")},
{3, N_("Rotate CCW")}, {4, N_("Tilt upwards")}, {5, N_("Tilt downwards")},
};
//! Sweep panorama direction, tag 0x0093
constexpr TagDetails panasonicSweepPanoramaDirection[] = {{0, N_("Off")},
{1, N_("Left to Right")},
{2, N_("Right to Left")},
{3, N_("Top to Bottom")},
{4, N_("Bottom to Top")}};
constexpr TagDetails panasonicSweepPanoramaDirection[] = {
{0, N_("Off")}, {1, N_("Left to Right")}, {2, N_("Right to Left")},
{3, N_("Top to Bottom")}, {4, N_("Bottom to Top")},
};
//! Timer recording, tag 0x0096
constexpr TagDetails panasonicTimerRecording[] = {
{0, N_("Off")}, {1, N_("Time Lapse")}, {2, N_("Stop-Motion Animation")}};
{0, N_("Off")},
{1, N_("Time Lapse")},
{2, N_("Stop-Motion Animation")},
};
//! HDR, tag 0x009e
constexpr TagDetails panasonicHDR[] = {{0, N_("Off")},
constexpr TagDetails panasonicHDR[] = {
{0, N_("Off")},
{100, N_("1 EV")},
{200, N_("2 EV")},
{300, N_("3 EV")},
{32868, N_("1 EV (Auto)")},
{32968, N_("2 EV (Auto)")},
{33068, N_("3 EV (Auto)")}};
{33068, N_("3 EV (Auto)")},
};
//! Shutter Type, tag 0x009f
constexpr TagDetails panasonicShutterType[] = {{0, N_("Mechanical")}, {1, N_("Electronic")}, {2, N_("Hybrid")}};
constexpr TagDetails panasonicShutterType[] = {
{0, N_("Mechanical")},
{1, N_("Electronic")},
{2, N_("Hybrid")},
};
//! Touch AE, tag 0x00ab
constexpr TagDetails panasonicTouchAE[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails panasonicTouchAE[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Flash Fired, tag 0x8007
constexpr TagDetails panasonicFlashFired[] = {{1, N_("No")}, {2, N_("Yes")}};
constexpr TagDetails panasonicFlashFired[] = {
{1, N_("No")},
{2, N_("Yes")},
};
// Panasonic MakerNote Tag Info
constexpr TagInfo PanasonicMakerNote::tagInfo_[] = {

@ -465,7 +465,8 @@ constexpr TagDetails pentaxCities[] = {
constexpr TagDetails pentaxImageProcessing[] = {
{0x00000000, N_("Unprocessed")}, {0x00000004, N_("Digital Filter")}, {0x01000000, N_("Resized")},
{0x02000000, N_("Cropped")}, {0x04000000, N_("Color Filter")}, {0x06000000, N_("Digital Filter 6")},
{0x10000000, N_("Frame Synthesis?")}};
{0x10000000, N_("Frame Synthesis?")},
};
//! PictureMode, combi-tag 0x0033 (3 bytes)
constexpr TagDetails pentaxPictureMode[] = {

@ -283,7 +283,8 @@ const Loader::LoaderList Loader::loaderList_[] = {
{nullptr, createLoaderExifJpeg, 2}, {nullptr, createLoaderExifJpeg, 3},
{nullptr, createLoaderExifJpeg, 4}, {nullptr, createLoaderExifJpeg, 5},
{nullptr, createLoaderExifJpeg, 6}, {"image/x-canon-cr2", createLoaderExifJpeg, 7},
{nullptr, createLoaderExifJpeg, 8}, {nullptr, createLoaderXmpJpeg, 0}};
{nullptr, createLoaderExifJpeg, 8}, {nullptr, createLoaderXmpJpeg, 0},
};
const LoaderExifJpeg::Param LoaderExifJpeg::param_[] = {
{"Exif.Image.JPEGInterchangeFormat", "Exif.Image.JPEGInterchangeFormatLength", nullptr}, // 0

@ -3969,7 +3969,8 @@ const XmpPropertyInfo xmpVideoInfo[] = {
{"Year", N_("Year"), "Integer", xmpText, xmpExternal, N_("Year in which the video was made.")},
{"YResolution", N_("Y Resolution"), "Rational", xmpText, xmpInternal,
N_("Vertical resolution in pixels per unit.")},
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}};
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr},
};
const XmpPropertyInfo xmpAudioInfo[] = {
{"AvgBytePerSec", N_("Average Bytes Per Second"), "Integer", xmpText, xmpExternal,
@ -4821,7 +4822,8 @@ const XmpPropertyInfo xmpDwCInfo[] = {
{"measurementRemarks", N_("Measurement Remarks"), "Text", xmpText, xmpExternal,
N_("Comments or notes accompanying the MeasurementOrFact.")},
// End of list marker
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}};
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr},
};
const XmpPropertyInfo xmpAcdseeInfo[] = {
{"caption", N_("Caption"), "Text", xmpText, xmpExternal, N_("A brief description of the file")},
@ -4834,7 +4836,8 @@ const XmpPropertyInfo xmpAcdseeInfo[] = {
{"categories", N_("Categories"), "Text", xmpText, xmpExternal, N_("Catalog of hierarchical keywords and groups")},
// End of list marker
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}};
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr},
};
const XmpPrintInfo xmpPrintInfo[] = {
{"Xmp.crs.CropUnits", EXV_PRINT_TAG(crsCropUnits)},
@ -4902,7 +4905,8 @@ const XmpPrintInfo xmpPrintInfo[] = {
{"Xmp.plus.MinorModelAgeDisclosure", EXV_PRINT_VOCABULARY(plusMinorModelAgeDisclosure)},
{"Xmp.plus.ModelReleaseStatus", EXV_PRINT_VOCABULARY(plusModelReleaseStatus)},
{"Xmp.plus.PropertyReleaseStatus", EXV_PRINT_VOCABULARY(plusPropertyReleaseStatus)},
{"Xmp.plus.Reuse", EXV_PRINT_VOCABULARY(plusReuse)}};
{"Xmp.plus.Reuse", EXV_PRINT_VOCABULARY(plusReuse)},
};
bool XmpNsInfo::operator==(const XmpNsInfo::Ns& ns) const {
return ns_ == ns.ns_;

@ -16,7 +16,8 @@
namespace Exiv2::Internal {
const std::map<std::string, std::string> infoTags = {{"AGES", "Xmp.video.Rated"},
const std::map<std::string, std::string> infoTags = {
{"AGES", "Xmp.video.Rated"},
{"CMNT", "Xmp.video.Comment"},
{"CODE", "Xmp.video.EncodedBy"},
{"COMM", "Xmp.video.Comment"},
@ -99,7 +100,8 @@ const std::map<std::string, std::string> infoTags = {{"AGES", "Xmp.video.Rated"}
{"TVER", "Xmp.video.SoftwareVersion"},
{"VMAJ", "Xmp.video.VegasVersionMajor"},
{"VMIN", "Xmp.video.VegasVersionMinor"},
{"YEAR", "Xmp.video.Year"}};
{"YEAR", "Xmp.video.Year"},
};
const std::map<uint16_t, std::string> audioEncodingValues = {
{0x1, "Microsoft PCM"},
@ -344,7 +346,8 @@ const std::map<uint16_t, std::string> audioEncodingValues = {
{0xe708, "Unknown -"},
{0xf1ac, "Free Lossless Audio Codec FLAC"},
{0xfffe, "Extensible"},
{0xffff, "Development"}};
{0xffff, "Development"},
};
} // namespace Exiv2::Internal
// *****************************************************************************

@ -15,7 +15,8 @@
// class member definitions
namespace Exiv2::Internal {
//! LensType, tag 0xa003
constexpr TagDetails samsung2LensType[] = {{0, N_("Built-in")},
constexpr TagDetails samsung2LensType[] = {
{0, N_("Built-in")},
{1, "Samsung NX 30mm F2 Pancake"},
{2, "Samsung NX 18-55mm F3.5-5.6 OIS"},
{3, "Samsung NX 50-200mm F4-5.6 ED OIS"},
@ -32,13 +33,20 @@ constexpr TagDetails samsung2LensType[] = {{0, N_("Built-in")},
{14, "Samsung NX 10mm F3.5 Fisheye"},
{15, "Samsung NX 16-50mm F3.5-5.6 Power Zoom ED OIS"},
{20, "Samsung NX 50-150mm F2.8 S ED OIS"},
{21, "Samsung NX 300mm F2.8 ED OIS"}};
{21, "Samsung NX 300mm F2.8 ED OIS"},
};
//! ColorSpace, tag 0xa011
constexpr TagDetails samsung2ColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}};
constexpr TagDetails samsung2ColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
};
//! SmartRange, tag 0xa012
constexpr TagDetails samsung2SmartRange[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails samsung2SmartRange[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Print the camera temperature
static std::ostream& printCameraTemperature(std::ostream& os, const Value& value, const ExifData*) {
@ -138,10 +146,11 @@ const TagInfo* Samsung2MakerNote::tagList() {
}
//! PictureWizard Mode
constexpr TagDetails samsungPwMode[] = {{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Portrait")},
{3, N_("Landscape")}, {4, N_("Forest")}, {5, N_("Retro")},
{6, N_("Cool")}, {7, N_("Calm")}, {8, N_("Classic")},
{9, N_("Custom1")}, {10, N_("Custom2")}, {11, N_("Custom3")}};
constexpr TagDetails samsungPwMode[] = {
{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Portrait")}, {3, N_("Landscape")},
{4, N_("Forest")}, {5, N_("Retro")}, {6, N_("Cool")}, {7, N_("Calm")},
{8, N_("Classic")}, {9, N_("Custom1")}, {10, N_("Custom2")}, {11, N_("Custom3")},
};
//! Print the PictureWizard Color tag value
static std::ostream& printPwColor(std::ostream& os, const Value& value, const ExifData*) {

@ -20,7 +20,8 @@ namespace Exiv2::Internal {
// -- Standard Sony Makernotes tags ---------------------------------------------------------------
//! Lookup table to translate Sony image quality values to readable labels
constexpr TagDetails sonyImageQuality[] = {{0, N_("RAW")},
constexpr TagDetails sonyImageQuality[] = {
{0, N_("RAW")},
{1, N_("Super Fine")},
{2, N_("Fine")},
{3, N_("Standard")},
@ -30,36 +31,56 @@ constexpr TagDetails sonyImageQuality[] = {{0, N_("RAW")},
{7, N_("Compressed RAW")},
{8, N_("Compressed RAW + JPEG")},
{9, N_("Light")},
{0xffffffff, N_("n/a")}};
{0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony white balance (main group) values to readable labels
constexpr TagDetails sonyWhiteBalanceStd[] = {{0x00, N_("Auto")}, {0x01, N_("Color Temperature/Color Filter")},
constexpr TagDetails sonyWhiteBalanceStd[] = {
{0x00, N_("Auto")}, {0x01, N_("Color Temperature/Color Filter")},
{0x10, N_("Daylight")}, {0x20, N_("Cloudy")},
{0x30, N_("Shade")}, {0x40, N_("Tungsten")},
{0x50, N_("Flash")}, {0x60, N_("Fluorescent")},
{0x70, N_("Custom")}, {0x80, N_("Underwater")}};
{0x70, N_("Custom")}, {0x80, N_("Underwater")},
};
//! Lookup table to translate Sony auto HDR (part 1) values to readable labels
constexpr TagDetails sonyHDRStdPart1[] = {{0x00, N_("Off")}, {0x01, N_("Auto")}, {0x10, "1.0 EV"}, {0x11, "1.5 EV"},
{0x12, "2.0 EV"}, {0x13, "2.5 EV"}, {0x14, "3.0 EV"}, {0x15, "3.5 EV"},
{0x16, "4.0 EV"}, {0x17, "4.5 EV"}, {0x18, "5.0 EV"}, {0x19, "5.5 EV"},
{0x1a, "6.0 EV"}};
constexpr TagDetails sonyHDRStdPart1[] = {
{0x00, N_("Off")}, {0x01, N_("Auto")}, {0x10, "1.0 EV"}, {0x11, "1.5 EV"}, {0x12, "2.0 EV"},
{0x13, "2.5 EV"}, {0x14, "3.0 EV"}, {0x15, "3.5 EV"}, {0x16, "4.0 EV"}, {0x17, "4.5 EV"},
{0x18, "5.0 EV"}, {0x19, "5.5 EV"}, {0x1a, "6.0 EV"},
};
//! Lookup table to translate Sony auto HDR (part 2) values to readable labels
constexpr TagDetails sonyHDRStdPart2[] = {
{0, N_("Uncorrected image")}, {1, N_("HDR image (good)")}, {2, N_("HDR (fail 1)")}, {3, N_("HDR (fail 2)")}};
{0, N_("Uncorrected image")},
{1, N_("HDR image (good)")},
{2, N_("HDR (fail 1)")},
{3, N_("HDR (fail 2)")},
};
//! Lookup table to translate Sony off/on/(n/a) (1) values to readable labels
constexpr TagDetails sonyOffOnNA1[] = {{0, N_("Off")}, {1, N_("On")}, {256, N_("n/a")}};
constexpr TagDetails sonyOffOnNA1[] = {
{0, N_("Off")},
{1, N_("On")},
{256, N_("n/a")},
};
//! Lookup table to translate Sony off/on/(n/a) (2) values to readable labels
constexpr TagDetails sonyOffOnNA2[] = {{0, N_("Off")}, {1, N_("On")}, {0xffffffff, N_("n/a")}};
constexpr TagDetails sonyOffOnNA2[] = {
{0, N_("Off")},
{1, N_("On")},
{0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony no/yes values to readable labels
constexpr TagDetails sonyNoYes[] = {{0, N_("No")}, {1, N_("Yes")}};
constexpr TagDetails sonyNoYes[] = {
{0, N_("No")},
{1, N_("Yes")},
};
//! Lookup table to translate Sony picture effect values to readable labels
constexpr TagDetails sonyPictureEffect[] = {{0, N_("Off")},
constexpr TagDetails sonyPictureEffect[] = {
{0, N_("Off")},
{1, N_("Toy Camera")},
{2, N_("Pop Color")},
{3, N_("Posterization")},
@ -94,29 +115,46 @@ constexpr TagDetails sonyPictureEffect[] = {{0, N_("Off")},
{98, N_("Watercolor 2")},
{112, N_("Illustration (low)")},
{113, N_("Illustration")},
{114, N_("Illustration (high)")}};
{114, N_("Illustration (high)")},
};
//! Lookup table to translate Sony soft skin effect values to readable labels
constexpr TagDetails sonySoftSkinEffect[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Mid")}, {3, N_("High")}, {0xffffffff, N_("n/a")}};
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Mid")}, {3, N_("High")}, {0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony vignetting correction values to readable labels
constexpr TagDetails sonyVignettingCorrection[] = {{0, N_("Off")}, {2, N_("Auto")}, {0xffffffff, N_("n/a")}};
constexpr TagDetails sonyVignettingCorrection[] = {
{0, N_("Off")},
{2, N_("Auto")},
{0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony lateral chromatic aberration values to readable labels
constexpr TagDetails sonyLateralChromaticAberration[] = {{0, N_("Off")}, {2, N_("Auto")}, {0xffffffff, N_("n/a")}};
constexpr TagDetails sonyLateralChromaticAberration[] = {
{0, N_("Off")},
{2, N_("Auto")},
{0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony distortion correction settings values to readable labels
constexpr TagDetails sonyDistortionCorrectionSettings[] = {{0, N_("Off")}, {2, N_("Auto")}, {0xffffffff, N_("n/a")}};
constexpr TagDetails sonyDistortionCorrectionSettings[] = {
{0, N_("Off")},
{2, N_("Auto")},
{0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony flash action values to readable labels
constexpr TagDetails sonyFlashAction[] = {{0, N_("Did not fire")},
constexpr TagDetails sonyFlashAction[] = {
{0, N_("Did not fire")},
{1, N_("Flash fired")},
{2, N_("External flash fired")},
{3, N_("Wireless controlled flash fired")}};
{3, N_("Wireless controlled flash fired")},
};
//! Lookup table to translate Sony auto focus point selected (set 1) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet1[] = {{0, N_("Auto")},
constexpr TagDetails sonyAFPointSelectedSet1[] = {
{0, N_("Auto")},
{1, N_("Center")},
{2, N_("Top")},
{3, N_("Upper-right")},
@ -135,7 +173,8 @@ constexpr TagDetails sonyAFPointSelectedSet1[] = {{0, N_("Auto")},
{16, N_("Upper Far Right")},
{17, N_("Lower Far Right")},
{18, N_("Lower Far Left")},
{19, N_("Upper Far Left")}};
{19, N_("Upper Far Left")},
};
//! Lookup table to translate Sony auto focus point selected (set 2) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet2[] = {
@ -154,10 +193,12 @@ constexpr TagDetails sonyAFPointSelectedSet2[] = {
{60, "G5"}, {61, "G6"}, {62, "G7"}, {63, "G8"}, {64, "G9"},
{65, "G10"}, {66, "G11"}, {67, "H2"}, {68, "H3"}, {69, "H4"},
{70, "H5"}, {71, "H6"}, {72, "H7"}, {73, "H8"}, {74, "H9"},
{75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")}};
{75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")},
};
//! Lookup table to translate Sony auto focus point selected (set 3) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet3[] = {{0, N_("Auto")},
constexpr TagDetails sonyAFPointSelectedSet3[] = {
{0, N_("Auto")},
{93, "A5"},
{94, "A6"},
{95, "A7"},
@ -236,22 +277,26 @@ constexpr TagDetails sonyAFPointSelectedSet3[] = {{0, N_("Auto")},
{218, "H10"},
{229, "I5"},
{230, "I6"},
{231, "I7"}};
{231, "I7"},
};
//! Lookup table to translate Sony auto focus point selected (set 4) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet4[] = {
{0, N_("n/a")}, {1, N_("Top Left Zone")}, {2, N_("Top Zone")}, {3, N_("Top Right Zone")},
{4, N_("Left Zone")}, {5, N_("Center Zone")}, {6, N_("Right Zone")}, {7, N_("Bottom Left Zone")},
{8, N_("Bottom Zone")}, {9, N_("Bottom Right Zone")}};
{8, N_("Bottom Zone")}, {9, N_("Bottom Right Zone")},
};
//! Lookup table to translate Sony auto focus point selected (set 5) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet5[] = {
{0, N_("n/a")}, {1, N_("Center Zone")}, {2, N_("Top Zone")}, {3, N_("Right Zone")},
{4, N_("Left Zone")}, {5, N_("Bottom Zone")}, {6, N_("Bottom Right Zone")}, {7, N_("Bottom Left Zone")},
{8, N_("Top Left Zone")}, {9, N_("Top Right Zone")}};
{8, N_("Top Left Zone")}, {9, N_("Top Right Zone")},
};
//! Lookup table to translate Sony auto focus points used (set 1) values to readable labels
constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet1[] = {{0, N_("Center")}, {1, N_("Top")},
constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet1[] = {
{0, N_("Center")}, {1, N_("Top")},
{2, N_("Upper-right")}, {3, N_("Right")},
{4, N_("Lower-right")}, {5, N_("Bottom")},
{6, N_("Lower-left")}, {7, N_("Left")},
@ -260,7 +305,8 @@ constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet1[] = {{0, N_("Center")},
{12, N_("Near right")}, {13, N_("Lower-middle")},
{14, N_("Near left")}, {15, N_("Upper far right")},
{16, N_("Lower far right")}, {17, N_("Lower far left")},
{18, N_("Upper far left")}};
{18, N_("Upper far left")},
};
//! Lookup table to translate Sony auto focus points used (set 2) values to readable labels
constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet2[] = {
@ -273,53 +319,81 @@ constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet2[] = {
{48, "F4"}, {49, "F5"}, {50, "F6"}, {51, "F7"}, {52, "F8"}, {53, "F9"}, {54, "F10"}, {55, "F11"},
{56, "G1"}, {57, "G2"}, {58, "G3"}, {59, "G4"}, {60, "G5"}, {61, "G6"}, {62, "G7"}, {63, "G8"},
{64, "G9"}, {65, "G10"}, {66, "G11"}, {67, "H2"}, {68, "H3"}, {69, "H4"}, {70, "H5"}, {71, "H6"},
{72, "H7"}, {73, "H8"}, {74, "H9"}, {75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")}};
{72, "H7"}, {73, "H8"}, {74, "H9"}, {75, "H10"}, {76, "I5"}, {77, "I6"}, {78, "I7"}, {128, N_("Auto")},
};
//! Lookup table to translate Sony focus mode 2 values to readable labels
constexpr TagDetails sonyFocusMode2[] = {{0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")},
{4, N_("AF-A")}, {6, N_("DMF")}, {7, N_("AF-D")}};
constexpr TagDetails sonyFocusMode2[] = {
{0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, {4, N_("AF-A")}, {6, N_("DMF")}, {7, N_("AF-D")},
};
//! Lookup table to translate Sony auto focus area mode setting (set 1) values to readable labels
constexpr TagDetails sonyAFAreaModeSettingSet1[] = {
{0, N_("Wide")}, {4, N_("Local")}, {8, N_("Zone")}, {9, N_("Spot")}};
{0, N_("Wide")},
{4, N_("Local")},
{8, N_("Zone")},
{9, N_("Spot")},
};
//! Lookup table to translate Sony auto focus area mode setting (set 2) values to readable labels
constexpr TagDetails sonyAFAreaModeSettingSet2[] = {{0, N_("Wide")},
constexpr TagDetails sonyAFAreaModeSettingSet2[] = {
{0, N_("Wide")},
{1, N_("Center")},
{3, N_("Flexible Spot")},
{4, N_("Flexible Spot (LA-EA4)")},
{9, N_("Center (LA-EA4)")},
{11, N_("Zone")},
{12, N_("Expanded flexible spot")}};
{12, N_("Expanded flexible spot")},
};
//! Lookup table to translate Sony auto focus area mode setting (set 3) values to readable labels
constexpr TagDetails sonyAFAreaModeSettingSet3[] = {
{0, N_("Wide")}, {4, N_("Flexible spot")}, {8, N_("Zone")}, {9, N_("Center")}, {12, N_("Expanded flexible spot")}};
{0, N_("Wide")}, {4, N_("Flexible spot")}, {8, N_("Zone")}, {9, N_("Center")}, {12, N_("Expanded flexible spot")},
};
//! Lookup table to translate Sony auto focus tracking values to readable labels
constexpr TagDetails sonyAFTracking[] = {{0, N_("Off")}, {1, N_("Face tracking")}, {2, N_("Lock on AF")}};
constexpr TagDetails sonyAFTracking[] = {
{0, N_("Off")},
{1, N_("Face tracking")},
{2, N_("Lock on AF")},
};
//! Lookup table to translate Sony multi-frame noise reduction effect values to readable labels
constexpr TagDetails sonyMultiFrameNREffect[] = {{0, N_("Normal")}, {1, N_("High")}};
constexpr TagDetails sonyMultiFrameNREffect[] = {
{0, N_("Normal")},
{1, N_("High")},
};
//! Lookup table to translate Sony variable low pass filter values to readable labels
constexpr StringTagDetails sonyVariableLowPassFilter[] = {
{"0 0", N_("n/a")}, {"1 0", N_("Off")}, {"1 1", N_("Standard")}, {"1 2", N_("High")}, {"65535 65535", N_("n/a")}};
{"0 0", N_("n/a")}, {"1 0", N_("Off")}, {"1 1", N_("Standard")}, {"1 2", N_("High")}, {"65535 65535", N_("n/a")},
};
//! Lookup table to translate Sony RAW file type values to readable labels
constexpr TagDetails sonyRAWFileType[] = {
{0, N_("Compressed RAW")}, {1, N_("Uncompressed RAW")}, {2, N_("Lossless Compressed RAW")}, {0xffff, N_("n/a")}};
{0, N_("Compressed RAW")},
{1, N_("Uncompressed RAW")},
{2, N_("Lossless Compressed RAW")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony metering mode 2 values to readable labels
constexpr TagDetails sonyMeteringMode2[] = {{0x100, N_("Multi-segment")}, {0x200, N_("Center-weighted average")},
constexpr TagDetails sonyMeteringMode2[] = {
{0x100, N_("Multi-segment")}, {0x200, N_("Center-weighted average")},
{0x301, N_("Spot (Standard)")}, {0x302, N_("Spot (Large)")},
{0x400, N_("Average")}, {0x500, N_("Highlight")}};
{0x400, N_("Average")}, {0x500, N_("Highlight")},
};
//! Lookup table to translate Sony priority set in automatic white balance values to readable labels
constexpr TagDetails sonyPrioritySetInAWB[] = {{0, N_("Standard")}, {1, N_("Ambience")}, {2, N_("White")}};
constexpr TagDetails sonyPrioritySetInAWB[] = {
{0, N_("Standard")},
{1, N_("Ambience")},
{2, N_("White")},
};
//! Lookup table to translate Sony quality 2 (main group) values to readable labels
constexpr StringTagDetails sonyQuality2Std[] = {{"0 0", N_("n/a")},
constexpr StringTagDetails sonyQuality2Std[] = {
{"0 0", N_("n/a")},
{"0 1", N_("Standard")},
{"0 2", N_("Fine")},
{"0 3", N_("Extra fine")},
@ -328,15 +402,21 @@ constexpr StringTagDetails sonyQuality2Std[] = {{"0 0", N_("n/a")},
{"1 1", N_("RAW + standard")},
{"1 2", N_("RAW + fine")},
{"1 3", N_("RAW + extra fine")},
{"1 4", N_("RAW + light")}};
{"1 4", N_("RAW + light")},
};
//! Lookup table to translate Sony JPEG/HEIF switch values to readable labels
constexpr TagDetails sonyJPEGHEIFSwitch[] = {{0, "JPEG"}, {1, "HEIF"}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyJPEGHEIFSwitch[] = {
{0, "JPEG"},
{1, "HEIF"},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony model ID values to readable labels
// FORMAT: Uses a space before alternative models and caveats
// NOTE: Keep the array format in sync with the getModel() function
constexpr TagDetails sonyModelId[] = {{0, N_("Multiple camera models")},
constexpr TagDetails sonyModelId[] = {
{0, N_("Multiple camera models")},
{2, "DSC-R1"},
{256, "DSLR-A100"},
{257, "DSLR-A900"},
@ -434,10 +514,12 @@ constexpr TagDetails sonyModelId[] = {{0, N_("Multiple camera models")},
{391, "ILME-FX30"},
{393, "ZV-E1"},
{394, "ILCE-6700"},
{395, "ZV-1M2"}};
{395, "ZV-1M2"},
};
//! Lookup table to translate Sony creative style (main group) values to readable labels
constexpr StringTagDetails sonyCreativeStyleStd[] = {{"AdobeRGB", N_("Adobe RGB")},
constexpr StringTagDetails sonyCreativeStyleStd[] = {
{"AdobeRGB", N_("Adobe RGB")},
{"Autumnleaves", N_("Autumn leaves")},
{"BW", N_("Black and White")},
{"Clear", N_("Clear")},
@ -455,17 +537,20 @@ constexpr StringTagDetails sonyCreativeStyleStd[] = {{"AdobeRGB", N_("Adobe RGB"
{"Standard", N_("Standard")},
{"Sunset", N_("Sunset")},
{"Vivid", N_("Vivid")},
{"VV2", N_("VV2")}};
{"VV2", N_("VV2")},
};
//! Lookup table to translate Sony file format values to readable labels
constexpr StringTagDetails sonyFileFormat[] = {
{"0 0 0 2", "JPEG"}, {"1 0 0 0", "SR2 1.0"}, {"2 0 0 0", "ARW 1.0"}, {"3 0 0 0", "ARW 2.0"},
{"3 1 0 0", "ARW 2.1"}, {"3 2 0 0", "ARW 2.2"}, {"3 3 0 0", "ARW 2.3"}, {"3 3 1 0", "ARW 2.3.1"},
{"3 3 2 0", "ARW 2.3.2"}, {"3 3 3 0", "ARW 2.3.3"}, {"3 3 5 0", "ARW 2.3.5"}, {"4 0 0 0", "ARW 4.0"},
{"4 0 1 0", "ARW 4.0.1"}};
{"4 0 1 0", "ARW 4.0.1"},
};
//! Lookup table to translate Sony dynamic range optimizer values to readable labels
constexpr TagDetails print0xb025[] = {{0, N_("Off")},
constexpr TagDetails print0xb025[] = {
{0, N_("Off")},
{1, N_("Standard")},
{2, N_("Advanced Auto")},
{3, N_("Auto")},
@ -478,7 +563,8 @@ constexpr TagDetails print0xb025[] = {{0, N_("Off")},
{17, "Lv2"},
{18, "Lv3"},
{19, "Lv4"},
{20, "Lv5"}};
{20, "Lv5"},
};
//! Lookup table to translate Sony color mode values to readable labels
constexpr TagDetails sonyColorMode[] = {
@ -490,10 +576,12 @@ constexpr TagDetails sonyColorMode[] = {
{19, N_("Vivid 2")}, {20, N_("IN")}, {21, N_("SH")},
{100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")},
{103, N_("Light")}, {104, N_("Night view")}, {105, N_("Autumn leaves")},
{255, N_("Off")}, {0xffffffff, N_("n/a")}};
{255, N_("Off")}, {0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony exposure mode values to readable labels
constexpr TagDetails sonyExposureMode[] = {{0, N_("Program AE")},
constexpr TagDetails sonyExposureMode[] = {
{0, N_("Program AE")},
{1, N_("Portrait")},
{2, N_("Beach")},
{3, N_("Sports")},
@ -523,24 +611,42 @@ constexpr TagDetails sonyExposureMode[] = {{0, N_("Program AE")},
{40, N_("Background Defocus")},
{41, N_("Soft Skin")},
{42, N_("3D Image")},
{0xffff, N_("n/a")}};
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony JPEG quality values to readable labels
constexpr TagDetails sonyJPEGQuality[] = {
{0, N_("Standard")}, {1, N_("Fine")}, {2, N_("Extra Fine")}, {0xffff, N_("n/a")}};
{0, N_("Standard")},
{1, N_("Fine")},
{2, N_("Extra Fine")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony anti-blur values to readable labels
constexpr TagDetails sonyAntiBlur[] = {
{0, N_("Off")}, {1, N_("On (Continuous)")}, {2, N_("On (Shooting)")}, {0xffff, N_("n/a")}};
{0, N_("Off")},
{1, N_("On (Continuous)")},
{2, N_("On (Shooting)")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony dynamic range optimizer 2 values to readable labels
constexpr TagDetails print0xb04f[] = {{0, N_("Off")}, {1, N_("Standard")}, {2, N_("Plus")}};
constexpr TagDetails print0xb04f[] = {
{0, N_("Off")},
{1, N_("Standard")},
{2, N_("Plus")},
};
//! Lookup table to translate Sony intelligent auto values to readable labels
constexpr TagDetails sonyIntelligentAuto[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Advanced")}};
constexpr TagDetails sonyIntelligentAuto[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Advanced")},
};
//! Lookup table to translate Sony white balance 2 values to readable labels
constexpr TagDetails sonyWhiteBalance2[] = {{0, N_("Auto")},
constexpr TagDetails sonyWhiteBalance2[] = {
{0, N_("Auto")},
{4, N_("Manual")},
{5, N_("Daylight")},
{6, N_("Cloudy")},
@ -553,60 +659,87 @@ constexpr TagDetails sonyWhiteBalance2[] = {{0, N_("Auto")},
{15, N_("Flash")},
{17, N_("Underwater 1 (Blue Water)")},
{18, N_("Underwater 2 (Green Water)")},
{19, N_("Underwater Auto")}};
{19, N_("Underwater Auto")},
};
//! Lookup table to translate Sony focus mode values to readable labels
constexpr TagDetails sonyFocusMode[] = {{1, "AF-S"}, {2, "AF-C"}, {4, N_("Permanent-AF")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyFocusMode[] = {
{1, "AF-S"},
{2, "AF-C"},
{4, N_("Permanent-AF")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony auto focus mode (set 1) values to readable labels
constexpr TagDetails sonyAFModeSet1[] = {{0, N_("Default")}, {1, N_("Multi")}, {2, N_("Center")},
{3, N_("Spot")}, {4, N_("Flexible Spot")}, {6, N_("Touch")},
{14, N_("Tracking")}, {15, N_("Face Detected")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyAFModeSet1[] = {
{0, N_("Default")}, {1, N_("Multi")}, {2, N_("Center")}, {3, N_("Spot")}, {4, N_("Flexible Spot")},
{6, N_("Touch")}, {14, N_("Tracking")}, {15, N_("Face Detected")}, {0xffff, N_("n/a")},
};
//! Lookup table to translate Sony auto focus mode (set 2) values to readable labels
constexpr TagDetails sonyAFModeSet2[] = {{0, N_("Multi")},
constexpr TagDetails sonyAFModeSet2[] = {
{0, N_("Multi")},
{1, N_("Center")},
{2, N_("Spot")},
{3, N_("Flexible spot")},
{10, N_("Selective (for miniature effect)")},
{14, N_("Tracking")},
{15, N_("Face tracking")},
{255, N_("Manual")}};
{255, N_("Manual")},
};
//! Lookup table to translate Sony auto focus illuminator values to readable labels
constexpr TagDetails sonyAFIlluminator[] = {{0, N_("Off")}, {1, N_("Auto")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyAFIlluminator[] = {
{0, N_("Off")},
{1, N_("Auto")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony macro values to readable labels
constexpr TagDetails sonyMacro[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Close Focus")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyMacro[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Close Focus")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony flash level values to readable labels
constexpr TagDetails sonyFlashLevel[] = {
{-32768, N_("Low")}, {-9, "-3.0 EV"}, {-8, "-2.7 EV"}, {-7, "-2.3 EV"}, {-6, "-2.0 EV"}, {-5, "-1.7 EV"},
{-4, "-1.3 EV"}, {-3, "-1.0 EV"}, {-2, "-0.7 EV"}, {-1, "-0.3 EV"}, {0, N_("Normal")}, {1, "+0.3 EV"},
{2, "+0.7 EV"}, {3, "+1.0 EV"}, {4, "+1.3 EV"}, {5, "+1.7 EV"}, {6, "+2.0 EV"}, {7, "+2.3 EV"},
{8, "+2.7 EV"}, {9, "+3.0 EV"}, {128, N_("n/a")}, {32767, N_("High")}};
{8, "+2.7 EV"}, {9, "+3.0 EV"}, {128, N_("n/a")}, {32767, N_("High")},
};
//! Lookup table to translate Sony release mode values to readable labels
constexpr TagDetails sonyReleaseMode[] = {{0, N_("Normal")},
constexpr TagDetails sonyReleaseMode[] = {
{0, N_("Normal")},
{2, N_("Continuous")},
{5, N_("Exposure Bracketing")},
{6, N_("White Balance Bracketing")},
{8, N_("DRO Bracketing")},
{0xffff, N_("n/a")}};
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony sequence number values to readable labels
constexpr TagDetails sonySequenceNumber[] = {{0, N_("Single")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonySequenceNumber[] = {
{0, N_("Single")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony focus mode 3 values to readable labels
constexpr TagDetails sonyFocusMode3[] = {
{0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, {5, N_("Semi-manual")}, {6, N_("DMF")}};
{0, N_("Manual")}, {2, N_("AF-S")}, {3, N_("AF-C")}, {5, N_("Semi-manual")}, {6, N_("DMF")},
};
//! Lookup table to translate Sony high ISO noise reduction 2 values to readable labels
constexpr TagDetails sonyHighISONoiseReduction2[] = {
{0, N_("Normal")}, {1, N_("High")}, {2, N_("Low")}, {3, N_("Off")}, {0xffff, N_("n/a")}};
{0, N_("Normal")}, {1, N_("High")}, {2, N_("Low")}, {3, N_("Off")}, {0xffff, N_("n/a")},
};
//! Lookup table to translate Sony release mode 2 values to readable labels
constexpr TagDetails sonyReleaseMode2[] = {{0, N_("Normal")},
constexpr TagDetails sonyReleaseMode2[] = {
{0, N_("Normal")},
{1, N_("Continuous")},
{2, N_("Continuous - Exposure Bracketing")},
{3, N_("DRO or White Balance Bracketing")},
@ -628,16 +761,19 @@ constexpr TagDetails sonyReleaseMode2[] = {{0, N_("Normal")},
{27, N_("Continuous - High Sensitivity")},
{28, N_("Smile Shutter")},
{29, N_("Continuous - Tele-zoom Advance Priority")},
{146, N_("Single Frame - Movie Capture")}};
{146, N_("Single Frame - Movie Capture")},
};
//! Lookup table to translate Sony long exposure noise reduction values to readable labels
constexpr TagDetails sonyLongExposureNoiseReduction[] = {
{0x00000000, N_("Off")}, {0x00000001, N_("On (unused)")}, {0x00010001, N_("On (dark subtracted)")},
{0xffff0000, N_("Off (65535)")}, {0xffff0001, N_("On (65535)")}, {0xffffffff, N_("n/a")}};
{0xffff0000, N_("Off (65535)")}, {0xffff0001, N_("On (65535)")}, {0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony high ISO Noise reduction values to readable labels
constexpr TagDetails sonyHighISONoiseReductionStd[] = {{0, N_("Off")}, {1, N_("Low")}, {2, N_("Normal")},
{3, N_("High")}, {256, N_("Auto")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyHighISONoiseReductionStd[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Normal")}, {3, N_("High")}, {256, N_("Auto")}, {0xffff, N_("n/a")},
};
static auto getModel(const ExifData* metadata, std::string& val) {
auto pos = metadata->findKey(ExifKey("Exif.Image.Model"));
@ -1583,11 +1719,19 @@ constexpr TagDetails sonyDriveModeStd[] = {
};
//! Lookup table to translate Sony camera settings focus mode values to readable labels
constexpr TagDetails sonyCSFocusMode[] = {{0, N_("Manual")}, {1, "AF-S"}, {2, "AF-C"}, {3, "AF-A"}};
constexpr TagDetails sonyCSFocusMode[] = {
{0, N_("Manual")},
{1, "AF-S"},
{2, "AF-C"},
{3, "AF-A"},
};
//! Lookup table to translate Sony camera settings metering mode values to readable labels
constexpr TagDetails sonyMeteringMode[] = {
{1, N_("Multi-segment")}, {2, N_("Center weighted average")}, {4, N_("Spot")}};
{1, N_("Multi-segment")},
{2, N_("Center weighted average")},
{4, N_("Spot")},
};
//! Lookup table to translate Sony camera settings creative style values to readable labels
constexpr TagDetails sonyCreativeStyle[] = {
@ -1595,7 +1739,8 @@ constexpr TagDetails sonyCreativeStyle[] = {
{4, N_("Landscape")}, {5, N_("Sunset")}, {6, N_("Night View/Portrait")},
{8, N_("Black & White")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")},
{12, N_("Clear")}, {13, N_("Deep")}, {14, N_("Light")},
{15, N_("Autumn")}, {16, N_("Sepia")}};
{15, N_("Autumn")}, {16, N_("Sepia")},
};
//! Lookup table to translate Sony camera settings flash mode values to readable labels
constexpr TagDetails sonyFlashMode[] = {
@ -1604,17 +1749,24 @@ constexpr TagDetails sonyFlashMode[] = {
};
//! Lookup table to translate Sony AF illuminator values to readable labels
constexpr TagDetails sonyAFIlluminatorCS[] = {{0, N_("Auto")}, {1, N_("Off")}, {0xffff, N_("n/a")}};
constexpr TagDetails sonyAFIlluminatorCS[] = {
{0, N_("Auto")},
{1, N_("Off")},
{0xffff, N_("n/a")},
};
//! Lookup table to translate Sony camera settings image style values to readable labels
constexpr TagDetails sonyImageStyle[] = {{1, N_("Standard")}, {2, N_("Vivid")}, {3, N_("Portrait")},
constexpr TagDetails sonyImageStyle[] = {
{1, N_("Standard")}, {2, N_("Vivid")}, {3, N_("Portrait")},
{4, N_("Landscape")}, {5, N_("Sunset")}, {7, N_("Night View/Portrait")},
{8, N_("B&W")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")},
{129, N_("StyleBox1")}, {130, N_("StyleBox2")}, {131, N_("StyleBox3")},
{132, N_("StyleBox4")}, {133, N_("StyleBox5")}, {134, N_("StyleBox6")}};
{132, N_("StyleBox4")}, {133, N_("StyleBox5")}, {134, N_("StyleBox6")},
};
//! Lookup table to translate Sony camera settings exposure program values to readable labels
constexpr TagDetails sonyExposureProgram[] = {{0, N_("Auto")},
constexpr TagDetails sonyExposureProgram[] = {
{0, N_("Auto")},
{1, N_("Manual")},
{2, N_("Program AE")},
{3, N_("Aperture-priority AE")},
@ -1627,16 +1779,27 @@ constexpr TagDetails sonyExposureProgram[] = {{0, N_("Auto")},
{19, N_("Night Portrait")},
{20, N_("Landscape")},
{21, N_("Macro")},
{35, N_("Auto No Flash")}};
{35, N_("Auto No Flash")},
};
//! Lookup table to translate Sony camera settings image size values to readable labels
constexpr TagDetails sonyImageSize[] = {{1, N_("Large")}, {2, N_("Medium")}, {3, N_("Small")}};
constexpr TagDetails sonyImageSize[] = {
{1, N_("Large")},
{2, N_("Medium")},
{3, N_("Small")},
};
//! Lookup table to translate Sony aspect ratio values to readable labels
constexpr TagDetails sonyAspectRatio[] = {{1, "3:2"}, {2, "16:9"}};
constexpr TagDetails sonyAspectRatio[] = {
{1, "3:2"},
{2, "16:9"},
};
//! Lookup table to translate Sony exposure level increments values to readable labels
constexpr TagDetails sonyExposureLevelIncrements[] = {{33, "1/3 EV"}, {50, "1/2 EV"}};
constexpr TagDetails sonyExposureLevelIncrements[] = {
{33, "1/3 EV"},
{50, "1/2 EV"},
};
// Sony Camera Settings Tag Info
// NOTE: all are for A200, A230, A300, A350, A700, A850 and A900 Sony model excepted
@ -1768,7 +1931,8 @@ const TagInfo* SonyMakerNote::tagListCs2() {
}
//! Lookup table to translate Sony2Fp AF Area Mode values to readable labels
constexpr TagDetails sony2FpAFAreaMode[] = {{0, N_("Multi")},
constexpr TagDetails sony2FpAFAreaMode[] = {
{0, N_("Multi")},
{1, N_("Center")},
{2, N_("Spot")},
{3, N_("Flexible Spot")},
@ -1778,7 +1942,8 @@ constexpr TagDetails sony2FpAFAreaMode[] = {{0, N_("Multi")},
{14, N_("Tracking")},
{15, N_("Face Tracking")},
{20, N_("Animal Eye Tracking")},
{255, N_("Manual")}};
{255, N_("Manual")},
};
//! Sony Tag 9402 Sony2Fp (FocusPosition)
constexpr TagInfo SonyMakerNote::tagInfoFp_[] = {
@ -1873,7 +2038,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonyMisc1_[] = {
IfdId::sonyMisc1Id, SectionId::makerTags, signedByte, -1, printSonyMisc1CameraTemperature},
// End of list marker
{0xffff, "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", IfdId::sonyMisc1Id,
SectionId::makerTags, unsignedByte, -1, printValue}};
SectionId::makerTags, unsignedByte, -1, printValue},
};
const TagInfo* SonyMakerNote::tagListSonyMisc1() {
return tagInfoSonyMisc1_;
@ -1892,7 +2058,8 @@ std::ostream& SonyMakerNote::printSonyMisc1CameraTemperature(std::ostream& os, c
}
//! Lookup table to translate Sony Exposure Program 3 values to readable labels
constexpr TagDetails sonyExposureProgram3[] = {{0, N_("Program AE")},
constexpr TagDetails sonyExposureProgram3[] = {
{0, N_("Program AE")},
{1, N_("Aperture-priority AE")},
{2, N_("Shutter speed priority AE")},
{3, N_("Manual")},
@ -1924,7 +2091,8 @@ constexpr TagDetails sonyExposureProgram3[] = {{0, N_("Program AE")},
{42, N_("3D Image")},
{43, N_("Cont. Priority AE")},
{45, N_("Document")},
{46, N_("Party")}};
{46, N_("Party")},
};
//! Sony Tag 9404b SonyMisc2b tags
constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = {
@ -1938,7 +2106,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = {
unsignedByte, -1, printSonyMisc2bFocusPosition2},
// End of list marker
{0xffff, "(UnknownSonyMisc2bTag)", "(Unknown SonyMisc2b tag)", "(Unknown SonyMisc2b tag)", IfdId::sonyMisc2bId,
SectionId::makerTags, unsignedByte, -1, printValue}};
SectionId::makerTags, unsignedByte, -1, printValue},
};
const TagInfo* SonyMakerNote::tagListSonyMisc2b() {
return tagInfoSonyMisc2b_;
@ -1987,7 +2156,8 @@ std::ostream& SonyMakerNote::printSonyMisc2bFocusPosition2(std::ostream& os, con
}
//! Lookup table to translate Sony camera SonyMisc3c sequence length 1 values to readable labels
constexpr TagDetails sonyMisc3cSequenceLength1[] = {{0, N_("Continuous")},
constexpr TagDetails sonyMisc3cSequenceLength1[] = {
{0, N_("Continuous")},
{1, N_("1 shot")},
{2, N_("2 shots")},
{3, N_("3 shots")},
@ -2000,23 +2170,35 @@ constexpr TagDetails sonyMisc3cSequenceLength1[] = {{0, N_("Continuous")},
{12, N_("12 shots")},
{16, N_("16 shots")},
{100, N_("Continuous - iSweep Panorama")},
{200, N_("Continuous - Sweep Panorama")}};
{200, N_("Continuous - Sweep Panorama")},
};
//! Lookup table to translate Sony camera SonyMisc3c sequence length 2 values to readable labels
constexpr TagDetails sonyMisc3cSequenceLength2[] = {{0, N_("Continuous")}, {1, N_("1 file")}, {2, N_("2 files")},
{3, N_("3 files")}, {5, N_("5 files")}, {7, N_("7 files")},
{9, N_("9 files")}, {10, N_("10 files")}};
constexpr TagDetails sonyMisc3cSequenceLength2[] = {
{0, N_("Continuous")}, {1, N_("1 file")}, {2, N_("2 files")}, {3, N_("3 files")},
{5, N_("5 files")}, {7, N_("7 files")}, {9, N_("9 files")}, {10, N_("10 files")},
};
//! Lookup table to translate Sony camera SonyMisc3c, camera orientation values to readable labels
constexpr TagDetails sonyMisc3cCameraOrientation[] = {
{1, N_("Horizontal (normal)")}, {3, N_("Rotate 180°")}, {6, N_("Rotate 90° CW")}, {8, N_("Rotate 270° CW")}};
{1, N_("Horizontal (normal)")},
{3, N_("Rotate 180°")},
{6, N_("Rotate 90° CW")},
{8, N_("Rotate 270° CW")},
};
//! Lookup table to translate SonyMisc3c Quality2 (a) values to readable labels
constexpr TagDetails sonyMisc3cQuality2a[] = {
{1, "JPEG"}, {2, "Raw"}, {3, "Raw + JPEG"}, {4, "HEIF"}, {6, "Raw + HEIF"}};
{1, "JPEG"}, {2, "Raw"}, {3, "Raw + JPEG"}, {4, "HEIF"}, {6, "Raw + HEIF"},
};
//! Lookup table to translate SonyMisc3c Quality2 (b) values to readable labels
constexpr TagDetails sonyMisc3cQuality2b[] = {{0, "JPEG"}, {1, "Raw"}, {2, "Raw + JPEG"}, {3, "Raw + MPO"}};
constexpr TagDetails sonyMisc3cQuality2b[] = {
{0, "JPEG"},
{1, "Raw"},
{2, "Raw + JPEG"},
{3, "Raw + MPO"},
};
//! SonyMisc3c tags (Tag 9400c)
constexpr TagInfo SonyMakerNote::tagInfoSonyMisc3c_[] = {
@ -2179,7 +2361,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonySInfo1_[] = {
// TODO: Add FaceInfo1 (72) and FaceInfo2 (94) which are sub-groups of tags.
// End of list marker
{0xffff, "(UnknownsonySInfo1Tag)", "(Unknown SonySInfo1 Tag)", "(Unknown SonySInfo1 Tag)", IfdId::sonySInfo1Id,
SectionId::makerTags, unsignedByte, -1, printValue}};
SectionId::makerTags, unsignedByte, -1, printValue},
};
const TagInfo* SonyMakerNote::tagListSonySInfo1() {
return tagInfoSonySInfo1_;

@ -166,10 +166,15 @@ constexpr GroupInfo groupInfo[] = {
{IfdId::sonyMisc3cId, "Makernote", "SonyMisc3c", SonyMakerNote::tagListSonyMisc3c},
{IfdId::sonySInfo1Id, "Makernote", "SonySInfo1", SonyMakerNote::tagListSonySInfo1},
{IfdId::sony2010eId, "Makernote", "Sony2010e", SonyMakerNote::tagList2010e},
{IfdId::lastId, "(Last IFD info)", "(Last IFD item)", nullptr}};
{IfdId::lastId, "(Last IFD info)", "(Last IFD item)", nullptr},
};
//! Units for measuring X and Y resolution, tags 0x0128, 0xa210
constexpr TagDetails exifUnit[] = {{1, N_("none")}, {2, N_("inch")}, {3, N_("cm")}};
constexpr TagDetails exifUnit[] = {
{1, N_("none")},
{2, N_("inch")},
{3, N_("cm")},
};
//! Orientation, tag 0x0112
constexpr TagDetails exifOrientation[] = {
@ -179,7 +184,10 @@ constexpr TagDetails exifOrientation[] = {
};
//! PlanarConfiguration, tag 0x011c
constexpr TagDetails exifPlanarConfiguration[] = {{1, N_("Chunky")}, {2, N_("Planar")}};
constexpr TagDetails exifPlanarConfiguration[] = {
{1, N_("Chunky")},
{2, N_("Planar")},
};
//! Predictor, tag 0x013d
constexpr TagDetails exifPredictor[] = {
@ -193,7 +201,10 @@ constexpr TagDetails exifPredictor[] = {
};
//! InkSet, tag 0x014c
constexpr TagDetails exifInkSet[] = {{1, N_("CMYK")}, {2, N_("not CMYK")}};
constexpr TagDetails exifInkSet[] = {
{1, N_("CMYK")},
{2, N_("not CMYK")},
};
//! NewSubfileType, TIFF tag 0x00fe - this is actually a bitmask
constexpr TagDetails exifNewSubfileType[] = {
@ -213,12 +224,15 @@ constexpr TagDetails exifNewSubfileType[] = {
};
//! SubfileType, TIFF tag 0x00ff
constexpr TagDetails exifSubfileType[] = {{1, N_("Full-resolution image data")},
constexpr TagDetails exifSubfileType[] = {
{1, N_("Full-resolution image data")},
{2, N_("Reduced-resolution image data")},
{3, N_("A single page of a multi-page image")}};
{3, N_("A single page of a multi-page image")},
};
//! Compression, tag 0x0103
constexpr TagDetails exifCompression[] = {{1, N_("Uncompressed")},
constexpr TagDetails exifCompression[] = {
{1, N_("Uncompressed")},
{2, N_("CCITT RLE")},
{3, N_("T4/Group 3 Fax")},
{4, N_("T6/Group 4 Fax")},
@ -250,7 +264,8 @@ constexpr TagDetails exifCompression[] = {{1, N_("Uncompressed")},
{34713, N_("Nikon NEF Compressed")},
{34892, N_("JPEG (lossy)")}, // DNG 1.4
{65000, N_("Kodak DCR Compressed")},
{65535, N_("Pentax PEF Compressed")}};
{65535, N_("Pentax PEF Compressed")},
};
//! PhotometricInterpretation, tag 0x0106
constexpr TagDetails exifPhotometricInterpretation[] = {
@ -269,33 +284,38 @@ constexpr TagDetails exifPhotometricInterpretation[] = {
{32845, N_("Pixar LogLuv")},
{34892, N_("Linear Raw")},
{51177, N_("Depth Map")}, // DNG 1.5
{52527, N_("Semantic Mask")} // DNG 1.6
{52527, N_("Semantic Mask")}, // DNG 1.6
};
//! Thresholding, tag 0x0107
constexpr TagDetails exifThresholding[] = {{1, N_("No dithering or halftoning")},
constexpr TagDetails exifThresholding[] = {
{1, N_("No dithering or halftoning")},
{2, N_("Ordered dither or halftone technique")},
{3, N_("Randomized process")}};
{3, N_("Randomized process")},
};
//! SampleFormat, tag 0x0153
constexpr TagDetails exifSampleFormat[] = {
{1, N_("Unsigned integer data")},
{2, N_("Two's complement signed integer data")},
{3, N_("IEEE floating point data")},
{4, N_("Undefined data format")},
{4, N_("Undefined data format")} // To silence compiler warning
{1, N_("Unsigned integer data")}, {2, N_("Two's complement signed integer data")},
{3, N_("IEEE floating point data")}, {4, N_("Undefined data format")},
{4, N_("Undefined data format")}, // To silence compiler warning
};
//! Indexed, tag 0x015a
constexpr TagDetails exifIndexed[] = {{0, N_("Not indexed")}, {1, N_("Indexed")}};
constexpr TagDetails exifIndexed[] = {
{0, N_("Not indexed")},
{1, N_("Indexed")},
};
//! exifJpegLosslessPredictor, tag 0x0205
constexpr TagDetails exifJpegLosslessPredictor[] = {{1, N_("A")}, {2, N_("B")}, {3, N_("C")},
{4, N_("A+B-C")}, {5, N_("A+((B-C)/2)")}, {6, N_("B+((A-C)/2)")},
{7, N_("(A+B)/2")}};
constexpr TagDetails exifJpegLosslessPredictor[] = {
{1, N_("A")}, {2, N_("B")}, {3, N_("C")}, {4, N_("A+B-C")},
{5, N_("A+((B-C)/2)")}, {6, N_("B+((A-C)/2)")}, {7, N_("(A+B)/2")},
};
//! LightSource, tag 0x9208
constexpr TagDetails exifLightSource[] = {{0, N_("Unknown")},
constexpr TagDetails exifLightSource[] = {
{0, N_("Unknown")},
{1, N_("Daylight")},
{2, N_("Fluorescent")},
{3, N_("Tungsten (incandescent light)")},
@ -315,10 +335,12 @@ constexpr TagDetails exifLightSource[] = {{0, N_("Unknown")},
{22, N_("D75")},
{23, N_("D50")},
{24, N_("ISO studio tungsten")},
{255, N_("Other light source")}};
{255, N_("Other light source")},
};
//! Flash, Exif tag 0x9209
constexpr TagDetails exifFlash[] = {{0x00, N_("No flash")},
constexpr TagDetails exifFlash[] = {
{0x00, N_("No flash")},
{0x01, N_("Fired")},
{0x05, N_("Fired, return light not detected")},
{0x07, N_("Fired, return light detected")},
@ -344,17 +366,20 @@ constexpr TagDetails exifFlash[] = {{0x00, N_("No flash")},
{0x58, N_("No, auto, red-eye reduction")},
{0x59, N_("Yes, auto, red-eye reduction")},
{0x5d, N_("Yes, auto, red-eye reduction, return light not detected")},
{0x5f, N_("Yes, auto, red-eye reduction, return light detected")}};
{0x5f, N_("Yes, auto, red-eye reduction, return light detected")},
};
//! FocalPlaneResolutionUnit, TIFF/EP tag 0x9210
constexpr TagDetails tiffFocalPlaneResolutionUnit[] = {
{1, N_("inch")}, {2, N_("meter")}, {3, N_("centimeter")}, {4, N_("millimeter")}, {5, N_("micrometer")}};
{1, N_("inch")}, {2, N_("meter")}, {3, N_("centimeter")}, {4, N_("millimeter")}, {5, N_("micrometer")},
};
//! SensingMethod, TIFF/EP tag 0x9217
constexpr TagDetails tiffSensingMethod[] = {
{0, N_("Undefined")}, {1, N_("Monochrome area")}, {2, N_("One-chip color area")},
{3, N_("Two-chip color area")}, {4, N_("Three-chip color area")}, {5, N_("Color sequential area")},
{6, N_("Monochrome linear")}, {7, N_("Trilinear sensor")}, {8, N_("Color sequential linear")}};
{6, N_("Monochrome linear")}, {7, N_("Trilinear sensor")}, {8, N_("Color sequential linear")},
};
//! CFALayout, DNG tag 0xc617
constexpr TagDetails dngCfaLayout[] = {
@ -366,38 +391,65 @@ constexpr TagDetails dngCfaLayout[] = {
{6, N_("Staggered layout E: even rows are offset up by 1/2, even columns left by 1/2")}, // DNG 1.3
{7, N_("Staggered layout F: even rows are offset up by 1/2, even columns right by 1/2")}, // DNG 1.3
{8, N_("Staggered layout G: even rows are offset down by 1/2, even columns left by 1/2")}, // DNG 1.3
{9, N_("Staggered layout H: even rows are offset down by 1/2, even columns right by 1/2")} // DNG 1.3
{9, N_("Staggered layout H: even rows are offset down by 1/2, even columns right by 1/2")}, // DNG 1.3
};
//! MakerNoteSafety, DNG tag 0xc635
constexpr TagDetails dngMakerNoteSafety[] = {{0, N_("Unsafe")}, {1, N_("Safe")}};
constexpr TagDetails dngMakerNoteSafety[] = {
{0, N_("Unsafe")},
{1, N_("Safe")},
};
//! ColorimetricReference, DNG 1.2 tag 0xc6bf
constexpr TagDetails dngColorimetricReference[] = {{0, N_("XYZ values are scene-referred")},
{1, N_("XYZ values are output-referred")}};
constexpr TagDetails dngColorimetricReference[] = {
{0, N_("XYZ values are scene-referred")},
{1, N_("XYZ values are output-referred")},
};
//! ProfileEmbedPolicy, DNG 1.2 tag 0xc6fd
constexpr TagDetails dngProfileEmbedPolicy[] = {
{0, N_("Allow copying")}, {1, N_("Embed if used")}, {2, N_("Embed never")}, {3, N_("No restrictions")}};
{0, N_("Allow copying")},
{1, N_("Embed if used")},
{2, N_("Embed never")},
{3, N_("No restrictions")},
};
//! PreviewColorSpace, DNG 1.2 tag 0xc71a
constexpr TagDetails dngPreviewColorSpace[] = {
{0, N_("Unknown")}, {1, N_("Gray Gamma 2.2")}, {2, N_("sRGB")}, {2, N_("Adobe RGB")}, {4, N_("ProPhoto RGB")}};
{0, N_("Unknown")}, {1, N_("Gray Gamma 2.2")}, {2, N_("sRGB")}, {2, N_("Adobe RGB")}, {4, N_("ProPhoto RGB")},
};
//! ProfileEncoding, DNG 1.4 tags 0xc7a3, 0xc7a4
constexpr TagDetails dngProfileEncoding[] = {{0, N_("Linear")}, {1, N_("sRGB")}};
constexpr TagDetails dngProfileEncoding[] = {
{0, N_("Linear")},
{1, N_("sRGB")},
};
//! DefaultBlackRender, DNG 1.4 tag 0xc7a6
constexpr TagDetails dngDefaultBlackRender[] = {{0, N_("Auto")}, {1, N_("None")}};
constexpr TagDetails dngDefaultBlackRender[] = {
{0, N_("Auto")},
{1, N_("None")},
};
//! DepthFormat, DNG 1.5 tag 0xc7e9
constexpr TagDetails dngDepthFormat[] = {{0, N_("Unknown")}, {1, N_("Linear")}, {2, N_("Inverse")}};
constexpr TagDetails dngDepthFormat[] = {
{0, N_("Unknown")},
{1, N_("Linear")},
{2, N_("Inverse")},
};
//! DepthUnits, DNG 1.5 tag 0xc7ec
constexpr TagDetails dngDepthUnits[] = {{0, N_("Unknown")}, {1, N_("meters")}};
constexpr TagDetails dngDepthUnits[] = {
{0, N_("Unknown")},
{1, N_("meters")},
};
//! DepthMeasureType, DNG 1.5 tag 0xc7ed
constexpr TagDetails dngDepthMeasureType[] = {{0, N_("Unknown")}, {1, N_("Optical axis")}, {2, N_("Optical ray")}};
constexpr TagDetails dngDepthMeasureType[] = {
{0, N_("Unknown")},
{1, N_("Optical axis")},
{2, N_("Optical ray")},
};
//! Base IFD Tags (IFD0 and IFD1)
constexpr TagInfo ifdTagInfo[] = {
@ -1668,7 +1720,11 @@ const TagInfo* ifdTagList() {
//! CompositeImage, tag 0xa460
constexpr TagDetails exifCompositeImage[] = {
{0, N_("Unknown")}, {1, N_("NonComposite")}, {2, N_("GeneralComposite")}, {3, N_("CompositeCapturedWhenShooting")}};
{0, N_("Unknown")},
{1, N_("NonComposite")},
{2, N_("GeneralComposite")},
{3, N_("CompositeCapturedWhenShooting")},
};
// Exif IFD Tags
constexpr TagInfo exifTagInfo[] = {
@ -2062,32 +2118,60 @@ const TagInfo* exifTagList() {
}
//! GPS latitude reference, tag 0x0001; also GPSDestLatitudeRef, tag 0x0013
constexpr TagDetails exifGPSLatitudeRef[] = {{78, N_("North")}, {83, N_("South")}};
constexpr TagDetails exifGPSLatitudeRef[] = {
{78, N_("North")},
{83, N_("South")},
};
//! GPS longitude reference, tag 0x0003; also GPSDestLongitudeRef, tag 0x0015
constexpr TagDetails exifGPSLongitudeRef[] = {{69, N_("East")}, {87, N_("West")}};
constexpr TagDetails exifGPSLongitudeRef[] = {
{69, N_("East")},
{87, N_("West")},
};
//! GPS altitude reference, tag 0x0005
constexpr TagDetails exifGPSAltitudeRef[] = {{0, N_("Above sea level")}, {1, N_("Below sea level")}};
constexpr TagDetails exifGPSAltitudeRef[] = {
{0, N_("Above sea level")},
{1, N_("Below sea level")},
};
//! GPS status, tag 0x0009
constexpr TagDetails exifGPSStatus[] = {{'A', N_("Measurement in progress")}, {'V', N_("Measurement interrupted")}};
constexpr TagDetails exifGPSStatus[] = {
{'A', N_("Measurement in progress")},
{'V', N_("Measurement interrupted")},
};
//! GPS measurement mode, tag 0x000a
constexpr TagDetails exifGPSMeasureMode[] = {{'2', N_("2-dimensional measurement")},
{'3', N_("3-dimensional measurement")}};
constexpr TagDetails exifGPSMeasureMode[] = {
{'2', N_("2-dimensional measurement")},
{'3', N_("3-dimensional measurement")},
};
//! GPS speed reference, tag 0x000c
constexpr TagDetails exifGPSSpeedRef[] = {{'K', N_("km/h")}, {'M', N_("mph")}, {'N', N_("knots")}};
constexpr TagDetails exifGPSSpeedRef[] = {
{'K', N_("km/h")},
{'M', N_("mph")},
{'N', N_("knots")},
};
//! GPS direction reference, tags 0x000e, 0x0010, 0x0017
constexpr TagDetails exifGPSDirRef[] = {{'T', N_("True direction")}, {'M', N_("Magnetic direction")}};
constexpr TagDetails exifGPSDirRef[] = {
{'T', N_("True direction")},
{'M', N_("Magnetic direction")},
};
//! GPS destination distance reference, tag 0x0019
constexpr TagDetails exifGPSDestDistanceRef[] = {{'K', N_("km")}, {'M', N_("miles")}, {'N', N_("nautical miles")}};
constexpr TagDetails exifGPSDestDistanceRef[] = {
{'K', N_("km")},
{'M', N_("miles")},
{'N', N_("nautical miles")},
};
//! GPS differential correction, tag 0x001e
constexpr TagDetails exifGPSDifferential[] = {{0, N_("Without correction")}, {1, N_("Correction applied")}};
constexpr TagDetails exifGPSDifferential[] = {
{0, N_("Without correction")},
{1, N_("Correction applied")},
};
// GPS Info Tags
constexpr TagInfo gpsTagInfo[] = {
@ -2746,7 +2830,10 @@ std::ostream& print0x0112(std::ostream& os, const Value& value, const ExifData*
}
//! YCbCrPositioning, tag 0x0213
constexpr TagDetails exifYCbCrPositioning[] = {{1, N_("Centered")}, {2, N_("Co-sited")}};
constexpr TagDetails exifYCbCrPositioning[] = {
{1, N_("Centered")},
{2, N_("Co-sited")},
};
std::ostream& print0x0213(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifYCbCrPositioning)(os, value, metadata);
}
@ -2811,7 +2898,8 @@ std::ostream& print0x829d(std::ostream& os, const Value& value, const ExifData*)
constexpr TagDetails exifExposureProgram[] = {
{0, N_("Not defined")}, {1, N_("Manual")}, {2, N_("Auto")},
{3, N_("Aperture priority")}, {4, N_("Shutter priority")}, {5, N_("Creative program")},
{6, N_("Action program")}, {7, N_("Portrait mode")}, {8, N_("Landscape mode")}};
{6, N_("Action program")}, {7, N_("Portrait mode")}, {8, N_("Landscape mode")},
};
std::ostream& print0x8822(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifExposureProgram)(os, value, metadata);
@ -2952,7 +3040,8 @@ std::ostream& print0x920a(std::ostream& os, const Value& value, const ExifData*)
constexpr TagDetails exifColorSpace[] = {
{1, N_("sRGB")},
{2, N_("Adobe RGB")}, // Not defined to Exif 2.2 spec. But used by a lot of cameras.
{0xffff, N_("Uncalibrated")}};
{0xffff, N_("Uncalibrated")},
};
std::ostream& print0xa001(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifColorSpace)(os, value, metadata);
@ -2985,28 +3074,40 @@ std::ostream& print0xa300(std::ostream& os, const Value& value, const ExifData*
}
//! SceneType, tag 0xa301
constexpr TagDetails exifSceneType[] = {{1, N_("Directly photographed")}};
constexpr TagDetails exifSceneType[] = {
{1, N_("Directly photographed")},
};
std::ostream& print0xa301(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifSceneType)(os, value, metadata);
}
//! CustomRendered, tag 0xa401
constexpr TagDetails exifCustomRendered[] = {{0, N_("Normal process")}, {1, N_("Custom process")}};
constexpr TagDetails exifCustomRendered[] = {
{0, N_("Normal process")},
{1, N_("Custom process")},
};
std::ostream& print0xa401(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifCustomRendered)(os, value, metadata);
}
//! ExposureMode, tag 0xa402
constexpr TagDetails exifExposureMode[] = {{0, N_("Auto")}, {1, N_("Manual")}, {2, N_("Auto bracket")}};
constexpr TagDetails exifExposureMode[] = {
{0, N_("Auto")},
{1, N_("Manual")},
{2, N_("Auto bracket")},
};
std::ostream& print0xa402(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifExposureMode)(os, value, metadata);
}
//! WhiteBalance, tag 0xa403
constexpr TagDetails exifWhiteBalance[] = {{0, N_("Auto")}, {1, N_("Manual")}};
constexpr TagDetails exifWhiteBalance[] = {
{0, N_("Auto")},
{1, N_("Manual")},
};
std::ostream& print0xa403(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifWhiteBalance)(os, value, metadata);
@ -3049,18 +3150,21 @@ std::ostream& print0xa406(std::ostream& os, const Value& value, const ExifData*
}
//! GainControl, tag 0xa407
constexpr TagDetails exifGainControl[] = {{0, N_("None")},
{1, N_("Low gain up")},
{2, N_("High gain up")},
{3, N_("Low gain down")},
{4, N_("High gain down")}};
constexpr TagDetails exifGainControl[] = {
{0, N_("None")}, {1, N_("Low gain up")}, {2, N_("High gain up")},
{3, N_("Low gain down")}, {4, N_("High gain down")},
};
std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifGainControl)(os, value, metadata);
}
//! Saturation, tag 0xa409
constexpr TagDetails exifSaturation[] = {{0, N_("Normal")}, {1, N_("Low")}, {2, N_("High")}};
constexpr TagDetails exifSaturation[] = {
{0, N_("Normal")},
{1, N_("Low")},
{2, N_("High")},
};
std::ostream& print0xa409(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifSaturation)(os, value, metadata);
@ -3084,7 +3188,11 @@ std::ostream& printGPSDirRef(std::ostream& os, const Value& value, const ExifDat
}
//! Contrast, tag 0xa408 and Sharpness, tag 0xa40a
constexpr TagDetails exifNormalSoftHard[] = {{0, N_("Normal")}, {1, N_("Soft")}, {2, N_("Hard")}};
constexpr TagDetails exifNormalSoftHard[] = {
{0, N_("Normal")},
{1, N_("Soft")},
{2, N_("Hard")},
};
std::ostream& printNormalSoftHard(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifNormalSoftHard)(os, value, metadata);

@ -520,14 +520,16 @@ constexpr ArrayDef nikonFl3Def[] = {
{16, ttUnsignedByte, 1}, // FlashColorFilter
};
//! Nikon Flash Info 6 (0106) binary array - configuration
constexpr ArrayCfg nikonFl6Cfg = {IfdId::nikonFl6Id, // Group for the elements
constexpr ArrayCfg nikonFl6Cfg = {
IfdId::nikonFl6Id, // Group for the elements
bigEndian, // Use byte order from parent
ttUndefined, // Type for array entry
notEncrypted, // Not encrypted
false, // No size element
true, // Write all tags
true, // Concatenate gaps
{0, ttUnsignedByte, 1}};
{0, ttUnsignedByte, 1},
};
//! Nikon Flash Info 6 (0106) binary array - definition
constexpr ArrayDef nikonFl6Def[] = {
{0, ttUndefined, 4}, // Version
@ -554,14 +556,16 @@ constexpr ArrayDef nikonFl6Def[] = {
{42, ttUnsignedByte, 1}, // FlashGroupCOutput
};
//! Nikon Flash Info 7 (0107 and 0108) binary array - configuration
constexpr ArrayCfg nikonFl7Cfg = {IfdId::nikonFl7Id, // Group for the elements
constexpr ArrayCfg nikonFl7Cfg = {
IfdId::nikonFl7Id, // Group for the elements
bigEndian, // Use byte order from parent
ttUndefined, // Type for array entry
notEncrypted, // Not encrypted
false, // No size element
true, // Write all tags
true, // Concatenate gaps
{0, ttUnsignedByte, 1}};
{0, ttUnsignedByte, 1},
};
//! Nikon Flash Info 7 (0107 and 0108) binary array - definition
constexpr ArrayDef nikonFl7Def[] = {
{0, ttUndefined, 4}, // Version
@ -1394,7 +1398,8 @@ const TiffTreeTable TiffCreator::tiffTreeTable_ = {
{{Tag::pana, IfdId::ifdIdNotSet}, {IfdId::ifdIdNotSet, Tag::pana}},
{{Tag::pana, IfdId::panaRawId}, {IfdId::ifdIdNotSet, Tag::pana}},
{{Tag::pana, IfdId::exifId}, {IfdId::panaRawId, 0x8769}},
{{Tag::pana, IfdId::gpsId}, {IfdId::panaRawId, 0x8825}}};
{{Tag::pana, IfdId::gpsId}, {IfdId::panaRawId, 0x8825}},
};
/*
This table describes the layout of each known TIFF group (including

Loading…
Cancel
Save