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}}, {{0x6698B84E, 0x0AFA, 0x4330, {0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D}},
"Payload_Extension_System_Encryption_Sample_ID"}, "Payload_Extension_System_Encryption_Sample_ID"},
{{0x00E1AF06, 0x7BEC, 0x11D1, {0xA5, 0x82, 0x00, 0xC0, 0x4F, 0xC2, 0x9C, 0xFB}}, {{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 @brief Function used to check if data stored in buf is equivalent to

@ -28,7 +28,10 @@
// class member definitions // class member definitions
namespace Exiv2::Internal { namespace Exiv2::Internal {
//! OffOn, multiple tags //! 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); 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); std::ostream& printCsLensFFFF(std::ostream& os, const Value& value, const ExifData* metadata);
//! ModelId, tag 0x0010 //! ModelId, tag 0x0010
constexpr TagDetails canonModelId[] = {{0x00000412, "EOS M50 / Kiss M"}, constexpr TagDetails canonModelId[] = {
{0x00000412, "EOS M50 / Kiss M"},
{0x00000801, "PowerShot SX740 HS"}, {0x00000801, "PowerShot SX740 HS"},
{0x00000804, "Powershot G5 X Mark II"}, {0x00000804, "Powershot G5 X Mark II"},
{0x00000805, "PowerShot SX70 HS"}, {0x00000805, "PowerShot SX70 HS"},
@ -384,7 +388,8 @@ constexpr TagDetails canonModelId[] = {{0x00000412, "EOS M50 / Kiss M"},
{0x80000481, "EOS R6 Mark II"}, {0x80000481, "EOS R6 Mark II"},
{0x80000487, "EOS R8"}, {0x80000487, "EOS R8"},
{0x80000520, "EOS D2000C"}, {0x80000520, "EOS D2000C"},
{0x80000560, "EOS D6000C"}}; {0x80000560, "EOS D6000C"},
};
//! SerialNumberFormat, tag 0x0015 //! SerialNumberFormat, tag 0x0015
constexpr TagDetails canonSerialNumberFormat[] = { constexpr TagDetails canonSerialNumberFormat[] = {
@ -393,15 +398,24 @@ constexpr TagDetails canonSerialNumberFormat[] = {
}; };
//! SuperMacro, tag 0x001a //! 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 // 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 // Categories, tag 0x0023
[[maybe_unused]] constexpr TagDetails canonCategories[] = { [[maybe_unused]] constexpr TagDetails canonCategories[] = {
{0x0001, N_("People")}, {0x0002, N_("Scenery")}, {0x0004, N_("Events")}, {0x0008, N_("User 1")}, {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 //! PictureStyle Values
constexpr TagDetails canonPictureStyle[] = { 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")}, {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")}, {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")}, {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 //! 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")}, {2, N_("Cloudy")}, {3, N_("Tungsten")},
{4, N_("Fluorescent")}, {5, N_("Flash")}, {4, N_("Fluorescent")}, {5, N_("Flash")},
{6, N_("Custom")}, {7, N_("Black & White")}, {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")}, {15, N_("Custom 1")}, {16, N_("Custom 2")},
{17, N_("Underwater")}, {18, N_("Custom 3")}, {17, N_("Underwater")}, {18, N_("Custom 3")},
{19, N_("Custom 3")}, {20, N_("PC Set 4")}, {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 //! 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 //! Canon AF Area Mode, tag 0x2601
constexpr TagDetails canonAFAreaMode[] = { 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")}, {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")}, {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")}, {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 // Canon My Colors Info Tag
constexpr TagInfo CanonMakerNote::tagInfoMc_[] = { constexpr TagInfo CanonMakerNote::tagInfoMc_[] = {
@ -742,7 +764,11 @@ const TagInfo* CanonMakerNote::tagListFcd2() {
} }
// Canon ContrastInfo, tag 0x001d // 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 // Canon Contrast Info Tag
constexpr TagInfo CanonMakerNote::tagInfoCo_[] = { constexpr TagInfo CanonMakerNote::tagInfoCo_[] = {
@ -862,11 +888,16 @@ const TagInfo* CanonMakerNote::tagListFl() {
} }
// Canon Modified ToneCurve Info, tag 0x0001 // 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 // Canon Modified Sharpness Freq Info, tag 0x0002
constexpr TagDetails canonModifiedSharpnessFreq[] = {{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, constexpr TagDetails canonModifiedSharpnessFreq[] = {
{3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}}; {0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")},
};
// Canon ModifiedInfo Tag // Canon ModifiedInfo Tag
constexpr TagInfo CanonMakerNote::tagInfoMo_[] = { constexpr TagInfo CanonMakerNote::tagInfoMo_[] = {
@ -901,7 +932,8 @@ const TagInfo* CanonMakerNote::tagListMo() {
// Canon Preview Quality Info, tag 0x0001 // Canon Preview Quality Info, tag 0x0001
constexpr TagDetails canonPreviewQuality[] = { constexpr TagDetails canonPreviewQuality[] = {
{-1, N_("n/a")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}, {4, N_("RAW")}, {-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 // Canon Preview Image Info Tag
constexpr TagInfo CanonMakerNote::tagInfoPreI_[] = { constexpr TagInfo CanonMakerNote::tagInfoPreI_[] = {
@ -937,7 +969,10 @@ const TagInfo* CanonMakerNote::tagListCi() {
// Canon AFMicroAdjMode Quality Info, tag 0x0001 // Canon AFMicroAdjMode Quality Info, tag 0x0001
constexpr TagDetails canonAFMicroAdjMode[] = { 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 // Canon AFMicroAdj Info Tag
constexpr TagInfo CanonMakerNote::tagInfoAfMiAdj_[] = { 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, {0x0002, "AFMicroAdjValue", N_("AF Micro Adj Value"), N_("AF Micro Adj Value"), IfdId::canonAfMiAdjId,
SectionId::makerTags, signedRational, -1, printValue}, SectionId::makerTags, signedRational, -1, printValue},
{0xffff, "(UnknownCanonAFMicroAdjTag)", "(UnknownCanonAFMicroAdjTag)", N_("Unknown Canon AFMicroAdj tag"), {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() { const TagInfo* CanonMakerNote::tagListAfMiAdj() {
return tagInfoAfMiAdj_; return tagInfoAfMiAdj_;
@ -996,14 +1032,26 @@ const TagInfo* CanonMakerNote::tagListVigCor2() {
// Canon AutoLightingOptimizer, tag 0x0002 // Canon AutoLightingOptimizer, tag 0x0002
constexpr TagDetails canonAutoLightingOptimizer[] = { 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 // 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 // Canon HighISONoiseReduction, tag 0x0005
constexpr TagDetails canonHighISONoiseReduction[] = { 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 // Canon LightingOpt Tag
constexpr TagInfo CanonMakerNote::tagInfoLiOp_[] = { constexpr TagInfo CanonMakerNote::tagInfoLiOp_[] = {
@ -1039,9 +1087,10 @@ const TagInfo* CanonMakerNote::tagListLe() {
} }
// Canon AmbienceSelection, tag 0x0001 // Canon AmbienceSelection, tag 0x0001
constexpr TagDetails canonAmbienceSelection[] = {{0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Warm")}, constexpr TagDetails canonAmbienceSelection[] = {
{3, N_("Soft")}, {4, N_("Cool")}, {5, N_("Intense")}, {0, N_("Standard")}, {1, N_("Vivid")}, {2, N_("Warm")}, {3, N_("Soft")}, {4, N_("Cool")},
{6, N_("Brighter")}, {7, N_("Darker")}, {8, N_("Monochrome")}}; {5, N_("Intense")}, {6, N_("Brighter")}, {7, N_("Darker")}, {8, N_("Monochrome")},
};
// Canon Ambience Tag // Canon Ambience Tag
constexpr TagInfo CanonMakerNote::tagInfoAm_[] = { constexpr TagInfo CanonMakerNote::tagInfoAm_[] = {
@ -1056,11 +1105,19 @@ const TagInfo* CanonMakerNote::tagListAm() {
} }
// Canon MultiExposure, tag 0x0001 // 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 // Canon MultiExposureControl, tag 0x0001
constexpr TagDetails canonMultiExposureControl[] = { 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 // Canon MultiExp Tag
constexpr TagInfo CanonMakerNote::tagInfoMe_[] = { constexpr TagInfo CanonMakerNote::tagInfoMe_[] = {
@ -1079,10 +1136,15 @@ const TagInfo* CanonMakerNote::tagListMe() {
} }
// Canon FilterInfo, tag 0x0001 // Canon FilterInfo, tag 0x0001
constexpr TagDetails canonFilterInfo[] = {{-1, N_("Off")}}; constexpr TagDetails canonFilterInfo[] = {
{-1, N_("Off")},
};
// Canon MiniatureFilterOrientation, tag 0x0001 // 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 // Canon Filter Info Tag
constexpr TagInfo CanonMakerNote::tagInfoFil_[] = { constexpr TagInfo CanonMakerNote::tagInfoFil_[] = {
@ -1115,14 +1177,17 @@ const TagInfo* CanonMakerNote::tagListFil() {
} }
// Canon HDR, tag 0x0001 // 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 // Canon HDREffect, tag 0x0001
constexpr TagDetails canonHdrEffect[] = {{0, N_("Natural")}, constexpr TagDetails canonHdrEffect[] = {
{1, N_("Art (standard)")}, {0, N_("Natural")}, {1, N_("Art (standard)")}, {2, N_("Art (vivid)")},
{2, N_("Art (vivid)")}, {3, N_("Art (bold)")}, {4, N_("Art (embossed)")},
{3, N_("Art (bold)")}, };
{4, N_("Art (embossed)")}};
// Canon HDR Info Tag // Canon HDR Info Tag
constexpr TagInfo CanonMakerNote::tagInfoHdr_[] = { 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, {0x0002, "HDREffect", N_("HDR Effect"), N_("HDR Effect"), IfdId::canonHdrId, SectionId::makerTags, signedLong, -1,
EXV_PRINT_TAG(canonHdrEffect)}, EXV_PRINT_TAG(canonHdrEffect)},
{0xffff, "(UnknownHDRTag)", "(UnknownHDRTag)", N_("Unknown Canon HDR Tag"), IfdId::canonHdrId, SectionId::makerTags, {0xffff, "(UnknownHDRTag)", "(UnknownHDRTag)", N_("Unknown Canon HDR Tag"), IfdId::canonHdrId, SectionId::makerTags,
signedLong, 1, printValue}}; signedLong, 1, printValue},
};
const TagInfo* CanonMakerNote::tagListHdr() { const TagInfo* CanonMakerNote::tagListHdr() {
return tagInfoHdr_; return tagInfoHdr_;
@ -1139,7 +1205,10 @@ const TagInfo* CanonMakerNote::tagListHdr() {
// Canon AIServoFirstImage, tag 0x0001 // Canon AIServoFirstImage, tag 0x0001
constexpr TagDetails canonAIServoFirstImage[] = { 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 // Canon AIServoSecondImage, tag 0x0001
constexpr TagDetails canonAIServoSecondImage[] = { constexpr TagDetails canonAIServoSecondImage[] = {
@ -1149,43 +1218,67 @@ constexpr TagDetails canonAIServoSecondImage[] = {
// Canon USMLensElectronicMF, tag 0x0001 // Canon USMLensElectronicMF, tag 0x0001
constexpr TagDetails canonUSMLensElectronicMF[] = { 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 // 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 // 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 // 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 // Canon LensDriveWhenAFImpossible, tag 0x0001
constexpr TagDetails canonLensDriveWhenAFImpossible[] = {{0, N_("Continue Focus Search")}, constexpr TagDetails canonLensDriveWhenAFImpossible[] = {
{1, N_("Stop Focus Search")}}; {0, N_("Continue Focus Search")},
{1, N_("Stop Focus Search")},
};
// Canon SelectAFAreaSelectionMode, tag 0x0001 // Canon SelectAFAreaSelectionMode, tag 0x0001
constexpr TagDetails canonSelectAFAreaSelectionMode[] = { constexpr TagDetails canonSelectAFAreaSelectionMode[] = {
{0, N_("Single-Point-AF")}, {1, N_("Auto")}, {0, N_("Single-Point-AF")}, {1, N_("Auto")},
{2, N_("Zone AF")}, {3, N_("AF Point Expansion (4 point)")}, {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 // 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 // Canon OrientationLinkedAF, tag 0x0001
constexpr TagDetails canonOrientationLinkedAF[] = { 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 // 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 // Canon AFPointDisplayDuringFocus, tag 0x0001
constexpr TagDetails canonAFPointDisplayDuringFocus[] = {{0, N_("Selected (constant)")}, constexpr TagDetails canonAFPointDisplayDuringFocus[] = {
{1, N_("All (constant)")}, {0, N_("Selected (constant)")}, {1, N_("All (constant)")}, {1, N_("Selected (pre-AF, focused)")},
{1, N_("Selected (pre-AF, focused)")}, {1, N_("Selected (focused)")}, {1, N_("Disabled")},
{1, N_("Selected (focused)")}, };
{1, N_("Disabled")}};
// Canon VFDisplayIllumination, tag 0x0001 // Canon VFDisplayIllumination, tag 0x0001
constexpr TagDetails canonAVFDisplayIllumination[] = { constexpr TagDetails canonAVFDisplayIllumination[] = {
@ -1271,12 +1364,16 @@ const TagInfo* CanonMakerNote::tagListRawB() {
} }
//! Macro, tag 0x0001 //! Macro, tag 0x0001
constexpr TagDetails canonCsMacro[] = {{1, N_("On")}, {2, N_("Off")}}; constexpr TagDetails canonCsMacro[] = {
{1, N_("On")},
{2, N_("Off")},
};
//! Quality, tag 0x0003 //! Quality, tag 0x0003
constexpr TagDetails canonCsQuality[] = { constexpr TagDetails canonCsQuality[] = {
{-1, N_("n/a")}, {0, N_("unkown")}, {1, N_("Economy")}, {2, N_("Normal")}, {3, N_("Fine")}, {-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 //! FlashMode, tag 0x0004
constexpr TagDetails canonCsFlashMode[] = { constexpr TagDetails canonCsFlashMode[] = {
@ -1286,7 +1383,8 @@ constexpr TagDetails canonCsFlashMode[] = {
}; };
//! DriveMode, tag 0x0005 //! DriveMode, tag 0x0005
constexpr TagDetails canonCsDriveMode[] = {{0, N_("Single / timer")}, constexpr TagDetails canonCsDriveMode[] = {
{0, N_("Single / timer")},
{1, N_("Continuous")}, {1, N_("Continuous")},
{2, N_("Movie")}, {2, N_("Movie")},
{3, N_("Continuous, speed priority")}, {3, N_("Continuous, speed priority")},
@ -1295,7 +1393,8 @@ constexpr TagDetails canonCsDriveMode[] = {{0, N_("Single / timer")},
{5, N_("Continuous, high")}, {5, N_("Continuous, high")},
{6, N_("Silent Single")}, {6, N_("Silent Single")},
{9, N_("Single, Silent")}, {9, N_("Single, Silent")},
{10, N_("Continuous, Silent")}}; {10, N_("Continuous, Silent")},
};
//! FocusMode, tag 0x0007 //! FocusMode, tag 0x0007
constexpr TagDetails canonCsFocusMode[] = { constexpr TagDetails canonCsFocusMode[] = {
@ -1311,10 +1410,12 @@ constexpr TagDetails canonCsFocusMode[] = {
constexpr TagDetails canonCsRecordMode[] = { constexpr TagDetails canonCsRecordMode[] = {
{1, N_("JPEG")}, {2, N_("CRW+THM")}, {3, N_("AVI+THM")}, {4, N_("TIF")}, {5, N_("TIF+JPEG")}, {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")}, {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 //! ImageSize, tag 0x000a
constexpr TagDetails canonCsImageSize[] = {{0, N_("Large")}, constexpr TagDetails canonCsImageSize[] = {
{0, N_("Large")},
{1, N_("Medium")}, {1, N_("Medium")},
{2, N_("Small")}, {2, N_("Small")},
{5, N_("Medium 1")}, {5, N_("Medium 1")},
@ -1331,10 +1432,12 @@ constexpr TagDetails canonCsImageSize[] = {{0, N_("Large")},
{130, N_("Small Movie")}, {130, N_("Small Movie")},
{137, N_("1280x720 Movie")}, {137, N_("1280x720 Movie")},
{142, N_("1920x1080 Movie")}, {142, N_("1920x1080 Movie")},
{143, N_("4096x2160 Movie")}}; {143, N_("4096x2160 Movie")},
};
//! EasyMode, tag 0x000b //! EasyMode, tag 0x000b
constexpr TagDetails canonCsEasyMode[] = {{0, N_("Full auto")}, constexpr TagDetails canonCsEasyMode[] = {
{0, N_("Full auto")},
{1, N_("Manual")}, {1, N_("Manual")},
{2, N_("Landscape")}, {2, N_("Landscape")},
{3, N_("Fast shutter")}, {3, N_("Fast shutter")},
@ -1404,7 +1507,8 @@ constexpr TagDetails canonCsEasyMode[] = {{0, N_("Full auto")},
{261, N_("Sunset")}, {261, N_("Sunset")},
{263, N_("Night Scene")}, {263, N_("Night Scene")},
{264, N_("Surface")}, {264, N_("Surface")},
{265, N_("Low Light 2")}}; {265, N_("Low Light 2")},
};
//! DigitalZoom, tag 0x000c //! DigitalZoom, tag 0x000c
constexpr TagDetails canonCsDigitalZoom[] = { constexpr TagDetails canonCsDigitalZoom[] = {
@ -1412,7 +1516,11 @@ constexpr TagDetails canonCsDigitalZoom[] = {
}; };
//! Contrast, Saturation Sharpness, tags 0x000d, 0x000e, 0x000f //! 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 //! ISOSpeeds, tag 0x0010
constexpr TagDetails canonCsISOSpeed[] = { constexpr TagDetails canonCsISOSpeed[] = {
@ -1422,41 +1530,49 @@ constexpr TagDetails canonCsISOSpeed[] = {
{17184, "800"}, {17384, "1000"}, {17634, "1250"}, {17984, "1600"}, {18384, "2000"}, {18884, "2500"}, {17184, "800"}, {17384, "1000"}, {17634, "1250"}, {17984, "1600"}, {18384, "2000"}, {18884, "2500"},
{19584, "3200"}, {20384, "4000"}, {21384, "5000"}, {22784, "6400"}, {24384, "8000"}, {26384, "10000"}, {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, "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 //! MeteringMode, tag 0x0011
constexpr TagDetails canonCsMeteringMode[] = {{0, N_("Default")}, {1, N_("Spot")}, constexpr TagDetails canonCsMeteringMode[] = {
{2, N_("Average")}, {3, N_("Evaluative")}, {0, N_("Default")}, {1, N_("Spot")}, {2, N_("Average")},
{4, N_("Partial")}, {5, N_("Center-weighted average")}}; {3, N_("Evaluative")}, {4, N_("Partial")}, {5, N_("Center-weighted average")},
};
//! FocusType, tag 0x0012 //! FocusType, tag 0x0012
constexpr TagDetails canonCsFocusType[] = {{0, N_("Manual")}, {1, N_("Auto")}, {2, N_("Not known")}, constexpr TagDetails canonCsFocusType[] = {
{3, N_("Macro")}, {4, N_("Very close")}, {5, N_("Close")}, {0, N_("Manual")}, {1, N_("Auto")}, {2, N_("Not known")}, {3, N_("Macro")},
{6, N_("Middle range")}, {7, N_("Far range")}, {8, N_("Pan focus")}, {4, N_("Very close")}, {5, N_("Close")}, {6, N_("Middle range")}, {7, N_("Far range")},
{9, N_("Super macro")}, {10, N_("Infinity")}}; {8, N_("Pan focus")}, {9, N_("Super macro")}, {10, N_("Infinity")},
};
//! AFPoint, tag 0x0013 //! 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)")}, {0x3000, N_("None (MF)")},
{0x3001, N_("Auto-selected")}, {0x3001, N_("Auto-selected")},
{0x3002, N_("Right")}, {0x3002, N_("Right")},
{0x3003, N_("Center")}, {0x3003, N_("Center")},
{0x3004, N_("Left")}, {0x3004, N_("Left")},
{0x4001, N_("Auto AF point selection")}, {0x4001, N_("Auto AF point selection")},
{0x4006, N_("Face Detect")}}; {0x4006, N_("Face Detect")},
};
//! ExposureProgram, tag 0x0014 //! ExposureProgram, tag 0x0014
constexpr TagDetails canonCsExposureProgram[] = {{0, N_("Easy shooting (Auto)")}, constexpr TagDetails canonCsExposureProgram[] = {
{0, N_("Easy shooting (Auto)")},
{1, N_("Program (P)")}, {1, N_("Program (P)")},
{2, N_("Shutter priority (Tv)")}, {2, N_("Shutter priority (Tv)")},
{3, N_("Aperture priority (Av)")}, {3, N_("Aperture priority (Av)")},
{4, N_("Manual (M)")}, {4, N_("Manual (M)")},
{5, N_("A-DEP")}, {5, N_("A-DEP")},
{6, N_("M-DEP")}, {6, N_("M-DEP")},
{7, N_("Bulb")}}; {7, N_("Bulb")},
};
//! LensType, tag 0x0016 //! 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, "Canon EF 28mm f/2.8"},
{2, "Sigma 24mm f/2.8 Super Wide II"}, // 1 {2, "Sigma 24mm f/2.8 Super Wide II"}, // 1
{3, "Canon EF 135mm f/2.8 Soft"}, {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 135mm F1.8 L IS USM"},
{61182, "Canon RF 24-50mm F4.5-6.3 IS STM"}, {61182, "Canon RF 24-50mm F4.5-6.3 IS STM"},
{61182, "Canon RF-S 55-210mm F5-7.1 IS STM"}, {61182, "Canon RF-S 55-210mm F5-7.1 IS STM"},
{65535, "n/a"}}; {65535, "n/a"},
};
//! FlashActivity, tag 0x001c //! 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 //! FlashDetails, tag 0x001d
constexpr TagDetailsBitmask canonCsFlashDetails[] = { constexpr TagDetailsBitmask canonCsFlashDetails[] = {
@ -1967,36 +2087,56 @@ constexpr TagDetailsBitmask canonCsFlashDetails[] = {
{0x0001, N_("Manual")}, {0x0002, N_("TTL")}, {0x0001, N_("Manual")}, {0x0002, N_("TTL")},
{0x0004, N_("A-TTL")}, {0x0008, N_("E-TTL")}, {0x0004, N_("A-TTL")}, {0x0008, N_("E-TTL")},
{0x0010, N_("FP sync enabled")}, {0x0080, N_("2nd-curtain sync used")}, {0x0010, N_("FP sync enabled")}, {0x0080, N_("2nd-curtain sync used")},
{0x0800, N_("FP sync used")}}; {0x0800, N_("FP sync used")},
};
//! FocusContinuous, tag 0x0020 //! 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 //! 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")}, {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 //! ImageStabilization, tag 0x0022
constexpr TagDetails canonCsImageStabilization[] = { constexpr TagDetails canonCsImageStabilization[] = {
{0, N_("Off")}, {1, N_("On")}, {2, N_("Shoot Only")}, {3, N_("Panning")}, {0, N_("Off")}, {1, N_("On")},
{4, N_("Dynamic")}, {256, N_("Off (2)")}, {257, N_("On (2)")}, {258, N_("Shoot Only (2)")}, {2, N_("Shoot Only")}, {3, N_("Panning")},
{259, N_("Panning (2)")}, {260, N_("Dynamic (2)")}}; {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 //! 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 //! PhotoEffect, tag 0x0028
constexpr TagDetails canonCsPhotoEffect[] = {{0, N_("Off")}, {1, N_("Vivid")}, {2, N_("Neutral")}, constexpr TagDetails canonCsPhotoEffect[] = {
{3, N_("Smooth")}, {4, N_("Sepia")}, {5, N_("B&W")}, {0, N_("Off")}, {1, N_("Vivid")}, {2, N_("Neutral")}, {3, N_("Smooth")}, {4, N_("Sepia")},
{6, N_("Custom")}, {100, N_("My color data")}, {65535, N_("n/a")}}; {5, N_("B&W")}, {6, N_("Custom")}, {100, N_("My color data")}, {65535, N_("n/a")},
};
//! ManualFlashOutput, tag 0x0029 //! ManualFlashOutput, tag 0x0029
[[maybe_unused]] constexpr TagDetails canonCsManualFlashOutput[] = { [[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 //! 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 // Canon Camera Settings Tag Info
constexpr TagInfo CanonMakerNote::tagInfoCs_[] = { constexpr TagInfo CanonMakerNote::tagInfoCs_[] = {
@ -2092,14 +2232,18 @@ const TagInfo* CanonMakerNote::tagListCs() {
//! AFPointUsed, tag 0x000e //! AFPointUsed, tag 0x000e
constexpr TagDetailsBitmask canonSiAFPointUsed[] = { constexpr TagDetailsBitmask canonSiAFPointUsed[] = {
{0x0004, N_("left")}, {0x0002, N_("center")}, {0x0001, N_("right")}}; {0x0004, N_("left")},
{0x0002, N_("center")},
{0x0001, N_("right")},
};
//! FlashBias, tag 0x000f //! FlashBias, tag 0x000f
constexpr TagDetails canonSiFlashBias[] = { constexpr TagDetails canonSiFlashBias[] = {
{0xffc0, "-2 EV"}, {0xffcc, "-1.67 EV"}, {0xffd0, "-1.50 EV"}, {0xffd4, "-1.33 EV"}, {0xffe0, "-1 EV"}, {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"}, {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"}, {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[] = { constexpr TagDetails cameraType[] = {
{0, "n/a"}, {248, "EOS High-end"}, {250, "Compact"}, {252, "EOS Mid-range"}, {255, "DV Camera"}, {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)"}, {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[] = { 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 // Canon Shot Info Tag
constexpr TagInfo CanonMakerNote::tagInfoSi_[] = { constexpr TagInfo CanonMakerNote::tagInfoSi_[] = {
@ -2187,11 +2342,10 @@ const TagInfo* CanonMakerNote::tagListSi() {
} }
//! PanoramaDirection, tag 0x0005 //! PanoramaDirection, tag 0x0005
constexpr TagDetails canonPaDirection[] = {{0, N_("Left to right")}, constexpr TagDetails canonPaDirection[] = {
{1, N_("Right to left")}, {0, N_("Left to right")}, {1, N_("Right to left")}, {2, N_("Bottom to top")},
{2, N_("Bottom to top")}, {3, N_("Top to bottom")}, {4, N_("2x2 matrix (Clockwise)")},
{3, N_("Top to bottom")}, };
{4, N_("2x2 matrix (Clockwise)")}};
// Canon Panorama Info // Canon Panorama Info
constexpr TagInfo CanonMakerNote::tagInfoPa_[] = { constexpr TagInfo CanonMakerNote::tagInfoPa_[] = {
@ -2252,13 +2406,15 @@ const TagInfo* CanonMakerNote::tagListCf() {
//! AFPointsUsed, tag 0x0016 //! AFPointsUsed, tag 0x0016
constexpr TagDetailsBitmask canonPiAFPointsUsed[] = { constexpr TagDetailsBitmask canonPiAFPointsUsed[] = {
{0x01, N_("right")}, {0x02, N_("mid-right")}, {0x04, N_("bottom")}, {0x08, N_("center")}, {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 //! AFPointsUsed20D, tag 0x001a
constexpr TagDetailsBitmask canonPiAFPointsUsed20D[] = { constexpr TagDetailsBitmask canonPiAFPointsUsed20D[] = {
{0x001, N_("top")}, {0x002, N_("upper-left")}, {0x004, N_("upper-right")}, {0x001, N_("top")}, {0x002, N_("upper-left")}, {0x004, N_("upper-right")},
{0x008, N_("left")}, {0x010, N_("center")}, {0x020, N_("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 // Canon Picture Info Tag
constexpr TagInfo CanonMakerNote::tagInfoPi_[] = { constexpr TagInfo CanonMakerNote::tagInfoPi_[] = {
@ -2285,10 +2441,12 @@ const TagInfo* CanonMakerNote::tagListPi() {
//! BracketMode, tag 0x0003 //! BracketMode, tag 0x0003
constexpr TagDetails canonBracketMode[] = { 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 //! RawJpgSize, tag 0x0007
constexpr TagDetails canonRawJpgSize[] = {{-1, N_("n/a")}, constexpr TagDetails canonRawJpgSize[] = {
{-1, N_("n/a")},
{0, N_("Large")}, {0, N_("Large")},
{1, N_("Medium")}, {1, N_("Medium")},
{2, N_("Small")}, {2, N_("Small")},
@ -2306,26 +2464,35 @@ constexpr TagDetails canonRawJpgSize[] = {{-1, N_("n/a")},
{130, N_("Small Movie")}, {130, N_("Small Movie")},
{137, N_("1280x720 Movie")}, {137, N_("1280x720 Movie")},
{142, N_("1920x1080 Movie")}, {142, N_("1920x1080 Movie")},
{143, N_("4096x2160 Movie")}}; {143, N_("4096x2160 Movie")},
};
//! NoiseReduction, tag 0x0008 //! NoiseReduction, tag 0x0008
constexpr TagDetails canonNoiseReduction[] = { 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 //! 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 //! FilterEffect, tag 0x000e
constexpr TagDetails canonFilterEffect[] = { 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 //! ToningEffect, tag 0x000e
constexpr TagDetails canonToningEffect[] = { 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 //! RFLensType, tag 0x003D
// from https://github.com/exiftool/exiftool/blob/12.49/lib/Image/ExifTool/Canon.pm#L6791 // 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"}, {257, "Canon RF 50mm F1.2L USM"},
{258, "Canon RF 24-105mm F4L IS USM"}, {258, "Canon RF 24-105mm F4L IS USM"},
{259, "Canon RF 28-70mm F2L 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"}, {302, "Canon RF 15-30mm F4.5-6.3 IS STM"},
{303, "Canon RF 135mm F1.8 L IS USM"}, {303, "Canon RF 135mm F1.8 L IS USM"},
{304, "Canon RF 24-50mm F4.5-6.3 IS STM"}, {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 // Canon File Info Tag
constexpr TagInfo CanonMakerNote::tagInfoFi_[] = { constexpr TagInfo CanonMakerNote::tagInfoFi_[] = {
@ -2421,11 +2589,16 @@ const TagInfo* CanonMakerNote::tagListFi() {
} }
//! Tone Curve Values //! 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 //! Sharpness Frequency Values
constexpr TagDetails canonSharpnessFrequency[] = {{0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, constexpr TagDetails canonSharpnessFrequency[] = {
{3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")}}; {0, N_("n/a")}, {1, N_("Lowest")}, {2, N_("Low")}, {3, N_("Standard")}, {4, N_("High")}, {5, N_("Highest")},
};
// Canon Processing Info Tag // Canon Processing Info Tag
constexpr TagInfo CanonMakerNote::tagInfoPr_[] = { constexpr TagInfo CanonMakerNote::tagInfoPr_[] = {

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

@ -19,16 +19,21 @@
// class member definitions // class member definitions
namespace Exiv2::Internal { namespace Exiv2::Internal {
//! OffOn, multiple tags //! OffOn, multiple tags
constexpr TagDetails fujiOffOn[] = {{0, N_("Off")}, {1, N_("On")}}; constexpr TagDetails fujiOffOn[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Sharpness, tag 0x1001 //! Sharpness, tag 0x1001
constexpr TagDetails fujiSharpness[] = { constexpr TagDetails fujiSharpness[] = {
{0, N_("-4 (softest)")}, {1, N_("-3 (very soft)")}, {2, N_("-2 (soft)")}, {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)")}, {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 //! WhiteBalance, tag 0x1002
constexpr TagDetails fujiWhiteBalance[] = {{0, N_("Auto")}, constexpr TagDetails fujiWhiteBalance[] = {
{0, N_("Auto")},
{1, N_("Auto White Priority")}, {1, N_("Auto White Priority")},
{2, N_("Auto Ambience Priority")}, {2, N_("Auto Ambience Priority")},
{256, N_("Daylight")}, {256, N_("Daylight")},
@ -44,10 +49,12 @@ constexpr TagDetails fujiWhiteBalance[] = {{0, N_("Auto")},
{3842, N_("Custom 3")}, {3842, N_("Custom 3")},
{3843, N_("Custom 4")}, {3843, N_("Custom 4")},
{3844, N_("Custom 5")}, {3844, N_("Custom 5")},
{4080, N_("Kelvin")}}; {4080, N_("Kelvin")},
};
//! Color, tag 0x1003 //! Color, tag 0x1003
constexpr TagDetails fujiColor[] = {{0, N_("0 (normal)")}, constexpr TagDetails fujiColor[] = {
{0, N_("0 (normal)")},
{128, N_("+1 (medium high)")}, {128, N_("+1 (medium high)")},
{192, N_("+3 (very high)")}, {192, N_("+3 (very high)")},
{224, N_("+4 (highest)")}, {224, N_("+4 (highest)")},
@ -66,14 +73,21 @@ constexpr TagDetails fujiColor[] = {{0, N_("0 (normal)")},
{1281, N_("ACROS + R Filter")}, {1281, N_("ACROS + R Filter")},
{1282, N_("ACROS + Ye Filter")}, {1282, N_("ACROS + Ye Filter")},
{1283, N_("ACROS + G Filter")}, {1283, N_("ACROS + G Filter")},
{32768, N_("Film Simulation")}}; {32768, N_("Film Simulation")},
};
//! Tone, tag 0x1004 //! Tone, tag 0x1004
constexpr TagDetails fujiTone[] = {{0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")}, constexpr TagDetails fujiTone[] = {
{384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")}}; {0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")},
{384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")},
};
//! Tone, tag 0x1006 //! 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 //! WhiteBalanceFineTune, tag 0x100a
static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value& value, const ExifData*) { 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 //! 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 //! High ISO NR, tag 0x100e
constexpr TagDetails fujiHighIsoNR[] = { constexpr TagDetails fujiHighIsoNR[] = {
{0, N_("0 (normal)")}, {256, N_("+2 (strong)")}, {384, N_("+1 (medium strong)")}, {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)")}, {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 //! Clarity, tag 0x100f
constexpr TagDetails fujiClarity[] = {{-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")}, constexpr TagDetails fujiClarity[] = {
{-1000, N_("-1")}, {0, N_("0")}, {1000, N_("+1")}, {2000, N_("+2")}, {-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")}, {-1000, N_("-1")}, {0, N_("0")},
{3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")}}; {1000, N_("+1")}, {2000, N_("+2")}, {3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")},
};
//! FlashMode, tag 0x1010 //! FlashMode, tag 0x1010
constexpr TagDetails fujiFlashMode[] = {{0x0000, N_("Auto")}, constexpr TagDetails fujiFlashMode[] = {
{0x0000, N_("Auto")},
{0x0001, N_("On")}, {0x0001, N_("On")},
{0x0002, N_("Off")}, {0x0002, N_("Off")},
{0x0003, N_("Red-eye reduction")}, {0x0003, N_("Red-eye reduction")},
@ -129,17 +150,27 @@ constexpr TagDetails fujiFlashMode[] = {{0x0000, N_("Auto")},
{0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")}, {0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")},
{0xce20, N_("TTL Slow - 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)")}, {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 //! 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 //! FocusArea, tag 0x1022
constexpr TagDetails fujiFocusArea[] = { 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 //! PictureMode, tag 0x1031
constexpr TagDetails fujiPictureMode[] = {{0, N_("Auto")}, constexpr TagDetails fujiPictureMode[] = {
{0, N_("Auto")},
{1, N_("Portrait")}, {1, N_("Portrait")},
{2, N_("Landscape")}, {2, N_("Landscape")},
{3, N_("Macro")}, {3, N_("Macro")},
@ -171,19 +202,23 @@ constexpr TagDetails fujiPictureMode[] = {{0, N_("Auto")},
{64, N_("Advanced Filter")}, {64, N_("Advanced Filter")},
{256, N_("Aperture-priority AE")}, {256, N_("Aperture-priority AE")},
{512, N_("Shutter speed priority AE")}, {512, N_("Shutter speed priority AE")},
{768, N_("Manual")}}; {768, N_("Manual")},
};
//! EXRMode, tag 0x1034 //! 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)")}, {0x200, N_("SN (Signal to Noise priority)")},
{0x300, N_("DR (Dynamic Range priority)")}}; {0x300, N_("DR (Dynamic Range priority)")},
};
//! ShadowTone, tag 0x1040 //! ShadowTone, tag 0x1040
//! HighlightTone, tag 0x041 //! HighlightTone, tag 0x041
constexpr TagDetails fujiSHTone[] = {{-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")}, constexpr TagDetails fujiSHTone[] = {
{-32, N_("+2")}, {-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")}, {-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")}, {-32, N_("+2")},
{0, N_("0")}, {8, N_("-0.5")}, {16, N_("-1")}, {24, N_("-1.5")}, {-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")}, {0, N_("0")}, {8, N_("-0.5")},
{32, N_("-2")}}; {16, N_("-1")}, {24, N_("-1.5")}, {32, N_("-2")},
};
//! DigitalZoom, tag 0x1044 //! DigitalZoom, tag 0x1044
static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value, const ExifData*) { 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 //! GrainEffectRoughness, tag 0x104c
//! ColorChromeEffect, tag 0x1048 //! ColorChromeEffect, tag 0x1048
//! ColorChromeFXBlue, tag 0x104e //! 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 //! CropMode, tag 0x104d
constexpr TagDetails fujiCropMode[] = { constexpr TagDetails fujiCropMode[] = {
@ -219,20 +258,27 @@ static std::ostream& printFujiMonochromaticColor(std::ostream& os, const Value&
} }
//! ShutterType, tag 0x1050 //! ShutterType, tag 0x1050
constexpr TagDetails fujiShutterType[] = {{0, N_("Mechanical")}, constexpr TagDetails fujiShutterType[] = {
{0, N_("Mechanical")},
{1, N_("Electronic")}, {1, N_("Electronic")},
{2, N_("Electronic (long shutter speed)")}, {2, N_("Electronic (long shutter speed)")},
{3, N_("Electronic Front Curtain")}}; {3, N_("Electronic Front Curtain")},
};
//! Continuous, tag 0x1100 //! Continuous, tag 0x1100
constexpr TagDetails fujiContinuous[] = {{0, N_("Off")}, constexpr TagDetails fujiContinuous[] = {
{0, N_("Off")},
{1, N_("On")}, {1, N_("On")},
{2, N_("Pre-shot/No flash & flash")}, // TODO newer cameras: Pre-shot {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 //! DriveSetting Byte 1, tag 0x1100
constexpr TagDetails fujiDriveSettingByte1[] = { 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 //! DriveSetting, tag 0x1103
static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value, const ExifData*) { 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 //! 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 //! AdvancedFilter, tag 0x1201
constexpr TagDetails fujiAdvancedFilter[] = {{0x10000, N_("Pop Color")}, constexpr TagDetails fujiAdvancedFilter[] = {
{0x10000, N_("Pop Color")},
{0x20000, N_("Hi Key")}, {0x20000, N_("Hi Key")},
{0x30000, N_("Toy Camera")}, {0x30000, N_("Toy Camera")},
{0x40000, N_("Miniature")}, {0x40000, N_("Miniature")},
@ -273,16 +325,25 @@ constexpr TagDetails fujiAdvancedFilter[] = {{0x10000, N_("Pop Color")},
{0x60005, N_("Partial Color Orange")}, {0x60005, N_("Partial Color Orange")},
{0x60006, N_("Partial Color Purple")}, {0x60006, N_("Partial Color Purple")},
{0x70000, N_("Soft Focus")}, {0x70000, N_("Soft Focus")},
{0x90000, N_("Low Key")}}; {0x90000, N_("Low Key")},
};
//! FinePixColor, tag 0x1210 //! 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 //! DynamicRange, tag 0x1400
constexpr TagDetails fujiDynamicRange[] = {{1, N_("Standard")}, {3, N_("Wide")}}; constexpr TagDetails fujiDynamicRange[] = {
{1, N_("Standard")},
{3, N_("Wide")},
};
//! FilmMode, tag 0x1401 //! FilmMode, tag 0x1401
constexpr TagDetails fujiFilmMode[] = {{0, N_("PROVIA (F0/Standard)")}, constexpr TagDetails fujiFilmMode[] = {
{0, N_("PROVIA (F0/Standard)")},
{256, N_("F1/Studio Portrait")}, {256, N_("F1/Studio Portrait")},
{272, N_("F1a/Studio Portrait Enhanced Saturation")}, {272, N_("F1a/Studio Portrait Enhanced Saturation")},
{288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")}, {288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")},
@ -296,39 +357,57 @@ constexpr TagDetails fujiFilmMode[] = {{0, N_("PROVIA (F0/Standard)")},
{1792, N_("ETERNA")}, {1792, N_("ETERNA")},
{2048, N_("CLASSIC Neg.")}, {2048, N_("CLASSIC Neg.")},
{2304, N_("ETERNA Bleach Bypass")}, {2304, N_("ETERNA Bleach Bypass")},
{2560, N_("Nostalgic Neg.")}}; {2560, N_("Nostalgic Neg.")},
};
//! DynamicRange, tag 0x1402 //! DynamicRange, tag 0x1402
constexpr TagDetails fujiDynamicRangeSetting[] = {{0, N_("Auto")}, constexpr TagDetails fujiDynamicRangeSetting[] = {
{0, N_("Auto")},
{1, N_("Manual")}, {1, N_("Manual")},
{256, N_("Standard (100%)")}, {256, N_("Standard (100%)")},
{512, N_("Wide mode 1 (230%)")}, {512, N_("Wide mode 1 (230%)")},
{513, N_("Wide mode 2 (400%)")}, {513, N_("Wide mode 2 (400%)")},
{32768, N_("Film simulation mode")}}; {32768, N_("Film simulation mode")},
};
//! SceneRecognition, tag 0x1425 //! SceneRecognition, tag 0x1425
constexpr TagDetails fujiSceneRecognition[] = {{0x000, N_("Unrecognized")}, constexpr TagDetails fujiSceneRecognition[] = {
{0x100, N_("Portrait Image")}, {0x000, N_("Unrecognized")}, {0x100, N_("Portrait Image")},
{0x103, N_("Night Portrait")}, {0x103, N_("Night Portrait")}, {0x105, N_("Backlit Portrait")},
{0x105, N_("Backlit Portrait")}, {0x200, N_("Landscape Image")}, {0x300, N_("Night Scene")},
{0x200, N_("Landscape Image")}, {0x400, N_("Macro")},
{0x300, N_("Night Scene")}, };
{0x400, N_("Macro")}};
//! ImageGeneration, tag 0x1426 //! 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 //! DRangePriority, tag 0x1443
constexpr TagDetails fujiDRangePriority[] = {{0, N_("Auto")}, {1, N_("Fixed")}}; constexpr TagDetails fujiDRangePriority[] = {
{0, N_("Auto")},
{1, N_("Fixed")},
};
//! DRangePriorityAuto, tag 0x1444 //! DRangePriorityAuto, tag 0x1444
constexpr TagDetails fujiDRangePriorityAuto[] = {{1, N_("Weak")}, {2, N_("Strong")}}; constexpr TagDetails fujiDRangePriorityAuto[] = {
{1, N_("Weak")},
{2, N_("Strong")},
};
//! DRangePriorityFixed, tag 0x1445 //! 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 //! 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 //! FaceElementType, tag 0x4203
static std::ostream& printFujiFaceElementTypes(std::ostream& os, const Value& value, const ExifData*) { 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; std::string name;
Protocol prot; Protocol prot;
bool isUrl; // path.size() > name.size() bool isUrl; // path.size() > name.size()
} prots[] = {{"http://", pHttp, true}, {"https://", pHttps, true}, {"ftp://", pFtp, true}, } prots[] = {
{"sftp://", pSftp, true}, {"file://", pFileUri, true}, {"data://", pDataUri, true}, {"http://", pHttp, true}, {"https://", pHttps, true}, {"ftp://", pFtp, true}, {"sftp://", pSftp, true},
{"-", pStdin, false}}; {"file://", pFileUri, true}, {"data://", pDataUri, true}, {"-", pStdin, false},
};
for (const auto& prot : prots) { for (const auto& prot : prots) {
if (result != pFile) if (result != pFile)
break; 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, 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, 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, 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; Exiv2::byte key = 0;
for (int i = 0; i < 4; ++i) { for (int i = 0; i < 4; ++i) {
key ^= (count >> (i * 8)) & 0xff; key ^= (count >> (i * 8)) & 0xff;

@ -24,21 +24,28 @@ constexpr TagDetails minoltaWhiteBalanceStd0x0115[] = {
{0x10, N_("Daylight")}, {0x20, N_("Cloudy")}, {0x10, N_("Daylight")}, {0x20, N_("Cloudy")},
{0x30, N_("Shade")}, {0x40, N_("Tungsten")}, {0x30, N_("Shade")}, {0x40, N_("Tungsten")},
{0x50, N_("Flash")}, {0x60, N_("Fluorescent")}, {0x50, N_("Flash")}, {0x60, N_("Fluorescent")},
{0x70, N_("Custom")}}; {0x70, N_("Custom")},
};
//! Lookup table to translate Minolta color mode values to readable labels //! Lookup table to translate Minolta color mode values to readable labels
constexpr TagDetails minoltaColorMode[] = { constexpr TagDetails minoltaColorMode[] = {
{0, N_("Natural Color")}, {1, N_("Black & White")}, {2, N_("Vivid Color")}, {3, N_("Solarization")}, {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")}, {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")}, {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 //! Lookup table to translate Minolta image quality values to readable labels
constexpr TagDetails minoltaImageQuality[] = {{0, N_("Raw")}, {1, N_("Super Fine")}, {2, N_("Fine")}, constexpr TagDetails minoltaImageQuality[] = {
{3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra Fine")}}; {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 //! 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 // Minolta Tag Info
constexpr TagInfo MinoltaMakerNote::tagInfo_[] = { 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 //! Lookup table to translate Minolta Std camera settings exposure mode values to readable labels
constexpr TagDetails minoltaExposureModeStd[] = { 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 //! Lookup table to translate Minolta Std camera settings flash mode values to readable labels
constexpr TagDetails minoltaFlashModeStd[] = {{0, N_("Fill flash")}, constexpr TagDetails minoltaFlashModeStd[] = {
{1, N_("Red-eye reduction")}, {0, N_("Fill flash")}, {1, N_("Red-eye reduction")}, {2, N_("Rear flash sync")}, {3, N_("Wireless")},
{2, N_("Rear flash sync")}, {4, N_("Off")},
{3, N_("Wireless")}, };
{4, N_("Off")}};
//! Lookup table to translate Minolta Std camera settings white balance values to readable labels //! 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")}, constexpr TagDetails minoltaWhiteBalanceStd[] = {
{3, N_("Tungsten")}, {5, N_("Custom")}, {7, N_("Fluorescent")}, {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Tungsten")}, {5, N_("Custom")},
{8, N_("Fluorescent 2")}, {11, N_("Custom 2")}, {12, N_("Custom 3")}}; {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 //! 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"}, constexpr TagDetails minoltaImageSizeStd[] = {
{6, "2080x1560"}, {7, "2560x1920"}, {8, "3264x2176"}}; {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 //! 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")}, constexpr TagDetails minoltaImageQualityStd[] = {
{3, N_("Standard")}, {4, N_("Economy")}, {5, N_("Extra fine")}}; {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 //! 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")}, constexpr TagDetails minoltaDriveModeStd[] = {
{4, N_("Bracketing")}, {5, N_("Interval")}, {6, N_("UHS continuous")}, {0, N_("Single Frame")}, {1, N_("Continuous")}, {2, N_("Self-timer")}, {4, N_("Bracketing")},
{7, N_("HS continuous")}}; {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 //! Lookup table to translate Minolta Std camera settings metering mode values to readable labels
constexpr TagDetails minoltaMeteringModeStd[] = { 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 //! 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 //! 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 //! Lookup table to translate Minolta Std camera settings AF points values to readable labels
[[maybe_unused]] constexpr TagDetails minoltaAFPointsStd[] = { [[maybe_unused]] constexpr TagDetails minoltaAFPointsStd[] = {
{0, N_("Center")}, {1, N_("Top")}, {2, N_("Top-right")}, {3, N_("Right")}, {4, N_("Bottom-right")}, {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 //! 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 //! 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 //! Lookup table to translate Minolta Std camera settings subject program values to readable labels
constexpr TagDetails minoltaSubjectProgramStd[] = {{0, N_("None")}, {1, N_("Portrait")}, constexpr TagDetails minoltaSubjectProgramStd[] = {
{2, N_("Text")}, {3, N_("Night portrait")}, {0, N_("None")}, {1, N_("Portrait")}, {2, N_("Text")},
{4, N_("Sunset")}, {5, N_("Sports action")}}; {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 //! Lookup table to translate Minolta Std camera settings ISO settings values to readable labels
constexpr TagDetails minoltaISOSettingStd[] = {{0, "100"}, {1, "200"}, {2, "400"}, constexpr TagDetails minoltaISOSettingStd[] = {
{3, "800"}, {4, N_("Auto")}, {5, "64"}}; {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 //! Lookup table to translate Minolta Std camera settings model values to readable labels
constexpr TagDetails minoltaModelStd[] = { constexpr TagDetails minoltaModelStd[] = {
@ -197,45 +234,69 @@ constexpr TagDetails minoltaModelStd[] = {
}; };
//! Lookup table to translate Minolta Std camera settings interval mode values to readable labels //! 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 //! 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 //! Lookup table to translate Minolta Std camera settings color mode values to readable labels
constexpr TagDetails minoltaColorModeStd[] = {{0, N_("Natural color")}, constexpr TagDetails minoltaColorModeStd[] = {
{1, N_("Black and white")}, {0, N_("Natural color")}, {1, N_("Black and white")}, {2, N_("Vivid color")},
{2, N_("Vivid color")}, {3, N_("Solarization")}, {4, N_("Adobe RGB")},
{3, N_("Solarization")}, };
{4, N_("Adobe RGB")}};
//! Lookup table to translate Minolta Std camera settings wide focus zone values to readable labels //! 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 (horizontal orientation)")},
{1, N_("Center zone (vertical orientation)")}, {1, N_("Center zone (vertical orientation)")},
{1, N_("Left zone")}, {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 //! 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 //! 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 //! Lookup table to translate Minolta Std camera settings DEC switch position values to readable labels
constexpr TagDetails minoltaDECPositionStd[] = { 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 //! 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 //! Lookup table to translate Minolta Std camera settings data Imprint values to readable labels
constexpr TagDetails minoltaDataImprintStd[] = { 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 //! Lookup table to translate Minolta Std camera settings flash metering values to readable labels
constexpr TagDetails minoltaFlashMeteringStd[] = { 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*) { std::ostream& MinoltaMakerNote::printMinoltaExposureSpeedStd(std::ostream& os, const Value& value, const ExifData*) {
// From the PHP JPEG Metadata Toolkit // 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 //! Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels
constexpr TagDetails minoltaExposureMode7D[] = { constexpr TagDetails minoltaExposureMode7D[] = {
{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")},
{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 //! 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 //! Lookup table to translate Minolta Dynax 7D camera settings image quality values to readable labels
constexpr TagDetails minoltaImageQuality7D[] = { 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 //! Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels
constexpr TagDetails minoltaWhiteBalance7D[] = { 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 //! Lookup table to translate Minolta Dynax 7D camera settings focus mode values to readable labels
constexpr TagDetails minoltaFocusMode7D[] = { 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 //! 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")}, constexpr TagDetails minoltaAFPoints7D[] = {
{8, N_("Right")}, {16, N_("Bottom-right")}, {32, N_("Bottom")}, {1, N_("Center")}, {2, N_("Top")}, {4, N_("Top-right")}, {8, N_("Right")}, {16, N_("Bottom-right")},
{64, N_("Bottom-left")}, {128, N_("Left")}, {256, N_("Top-left")}}; {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 //! 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"}, constexpr TagDetails minoltaISOSetting7D[] = {
{5, "800"}, {6, "1600"}, {7, "3200"}}; {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 //! Lookup table to translate Minolta Dynax 7D camera settings color space values to readable labels
constexpr TagDetails minoltaColorSpace7D[] = { 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 //! Lookup table to translate Minolta Dynax 7D camera settings rotation values to readable labels
constexpr TagDetails minoltaRotation7D[] = { 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 // Minolta Dynax 7D Camera Settings Tag Info
constexpr TagInfo MinoltaMakerNote::tagInfoCs7D_[] = { constexpr TagInfo MinoltaMakerNote::tagInfoCs7D_[] = {
@ -523,7 +602,8 @@ const TagInfo* MinoltaMakerNote::tagListCs7D() {
// -- Minolta Dynax 5D camera settings --------------------------------------------------------------- // -- Minolta Dynax 5D camera settings ---------------------------------------------------------------
//! Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels //! 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")}, {1, N_("Aperture priority")},
{2, N_("Shutter priority")}, {2, N_("Shutter priority")},
{3, N_("Manual")}, {3, N_("Manual")},
@ -535,25 +615,37 @@ constexpr TagDetails minoltaExposureMode5D[] = {{0, N_("Program")},
{0x1033, N_("Sunset")}, {0x1033, N_("Sunset")},
{0x1043, N_("Night View/Portrait")}, {0x1043, N_("Night View/Portrait")},
{0x1053, N_("Landscape")}, {0x1053, N_("Landscape")},
{0x1083, N_("Macro")}}; {0x1083, N_("Macro")},
};
//! Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels //! 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 //! Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels
constexpr TagDetails minoltaImageQuality5D[] = { 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 //! 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")}, constexpr TagDetails minoltaWhiteBalance5D[] = {
{3, N_("Shade")}, {4, N_("Tungsten")}, {5, N_("Fluorescent")}, {0, N_("Auto")}, {1, N_("Daylight")}, {2, N_("Cloudy")}, {3, N_("Shade")}, {4, N_("Tungsten")},
{6, N_("Flash")}, {256, N_("Kelvin")}, {512, N_("Manual")}}; {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 //! 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 //! 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"}, {1, "100"},
{3, "200"}, {3, "200"},
{4, "400"}, {4, "400"},
@ -561,35 +653,49 @@ constexpr TagDetails minoltaISOSetting5D[] = {{0, N_("Auto")},
{6, "1600"}, {6, "1600"},
{7, "3200"}, {7, "3200"},
{8, N_("200 (Zone Matching High)")}, {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 //! Lookup table to translate Minolta Dynax 5D camera settings color space values to readable labels
constexpr TagDetails minoltaColorSpace5D[] = {{0, N_("sRGB (Natural)")}, constexpr TagDetails minoltaColorSpace5D[] = {
{1, N_("sRGB (Natural+)")}, {0, N_("sRGB (Natural)")}, {1, N_("sRGB (Natural+)")}, {2, N_("Monochrome")},
{2, N_("Monochrome")}, {3, N_("Adobe RGB (ICC)")}, {4, N_("Adobe RGB")},
{3, N_("Adobe RGB (ICC)")}, };
{4, N_("Adobe RGB")}};
//! Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels //! Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels
constexpr TagDetails minoltaRotation5D[] = { 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 //! Lookup table to translate Minolta Dynax 5D camera settings focus position values to readable labels
constexpr TagDetails minoltaFocusPosition5D[] = { constexpr TagDetails minoltaFocusPosition5D[] = {
{0, N_("Wide")}, {1, N_("Central")}, {2, N_("Up")}, {3, N_("Up right")}, {4, N_("Right")}, {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 //! 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 //! 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 //! Lookup table to translate Minolta Dynax 5D camera settings picture finish values to readable labels
constexpr TagDetails minoltaPictureFinish5D[] = { constexpr TagDetails minoltaPictureFinish5D[] = {
{0, N_("Natural")}, {1, N_("Natural+")}, {2, N_("Portrait")}, {3, N_("Wind Scene")}, {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")}, {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. //! Method to convert Minolta Dynax 5D exposure manual bias values.
std::ostream& MinoltaMakerNote::printMinoltaExposureManualBias5D(std::ostream& os, const Value& value, std::ostream& MinoltaMakerNote::printMinoltaExposureManualBias5D(std::ostream& os, const Value& value,
@ -698,7 +804,8 @@ const TagInfo* MinoltaMakerNote::tagListCs5D() {
// -- Sony A100 camera settings --------------------------------------------------------------- // -- Sony A100 camera settings ---------------------------------------------------------------
//! Lookup table to translate Sony A100 camera settings drive mode 2 values to readable labels //! 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")}, {1, N_("Continuous")},
{4, N_("Self-timer 2 sec")}, {4, N_("Self-timer 2 sec")},
{5, N_("Single Frame")}, {5, N_("Single Frame")},
@ -707,112 +814,199 @@ constexpr TagDetails sonyDriveMode2A100[] = {{0, N_("Self-timer 10 sec")},
{770, N_("Single-frame Bracketing Low")}, {770, N_("Single-frame Bracketing Low")},
{771, N_("Continuous Bracketing Low")}, {771, N_("Continuous Bracketing Low")},
{1794, N_("Single-frame Bracketing High")}, {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 //! 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 //! Lookup table to translate Sony A100 camera settings flash mode values to readable labels
constexpr TagDetails sonyFlashModeA100[] = { 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 //! Lookup table to translate Sony A100 camera settings metering mode values to readable labels
constexpr TagDetails sonyMeteringModeA100[] = { 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 //! 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 //! 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 //! 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")}, {1, N_("Continuous")},
{2, N_("Self-timer")}, {2, N_("Self-timer")},
{3, N_("Continuous Bracketing")}, {3, N_("Continuous Bracketing")},
{4, N_("Single-Frame 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 //! 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 //! 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 //! 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 //! 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 //! 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")}, {0x0001, N_("Preset")},
{0x0002, N_("Custom")}, {0x0002, N_("Custom")},
{0x0003, N_("Color Temperature/Color Filter")}, {0x0003, N_("Color Temperature/Color Filter")},
{0x8001, N_("Preset")}, {0x8001, N_("Preset")},
{0x8002, N_("Custom")}, {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 //! 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")}, constexpr TagDetails sonyPresetWhiteBalanceA100[] = {
{4, N_("Tungsten")}, {5, N_("Fluorescent")}, {6, N_("Flash")}}; {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 //! 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 //! 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 //! 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 //! 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 //! Lookup table to translate Sony A100 camera settings instant playback setup values to readable labels
constexpr TagDetails sonyInstantPlaybackSetupA100[] = { 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 //! 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 //! 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 //! 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 //! Lookup table to translate Sony A100 camera settings AEL button values to readable labels
constexpr TagDetails sonyAELButtonA100[] = { 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 //! 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 //! 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 //! 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 //! 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 //! 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 //! 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 //! Lookup table to translate Sony A100 camera settings metering off scale indicator values to readable labels
constexpr TagDetails sonyMeteringOffScaleIndicatorA100[] = { 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 //! 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")}, {1, N_("Under Scale")},
{119, N_("Bottom of Scale")}, {119, N_("Bottom of Scale")},
{120, "-2.0"}, {120, "-2.0"},
@ -833,17 +1027,29 @@ constexpr TagDetails sonyExposureIndicatorA100[] = {{0, N_("Not Indicated")},
{135, "+1.7"}, {135, "+1.7"},
{136, "+2.0"}, {136, "+2.0"},
{253, N_("Top of Scale")}, {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 //! 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 //! 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 //! Lookup table to translate Sony A100 camera settings battery level switch values to readable labels
constexpr TagDetails sonyBatteryLevelA100[] = { 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 // Sony A100 Camera Settings Tag Info
constexpr TagInfo MinoltaMakerNote::tagInfoCsA100_[] = { constexpr TagInfo MinoltaMakerNote::tagInfoCsA100_[] = {
@ -1390,7 +1596,8 @@ static constexpr TagDetails minoltaSonyLensID[] = {
"Manual lens | " // 1 "Manual lens | " // 1
"Sony E 50mm F1.8 OSS | " // 2 "Sony E 50mm F1.8 OSS | " // 2
"E PZ 16-50mm F3.5-5.6 OSS" // 3 "E PZ 16-50mm F3.5-5.6 OSS" // 3
}}; },
};
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// #1145 begin - respect lenses with shared LensID // #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")}, {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")}, {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")}, {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) { std::ostream& printMinoltaSonyColorMode(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyColorMode)(os, value, 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 //! 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) { std::ostream& printMinoltaSonyBoolValue(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyBoolFunction)(os, value, 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 //! 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) { std::ostream& printMinoltaSonyBoolInverseValue(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyBoolInverseFunction)(os, value, 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 //! 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) { std::ostream& printMinoltaSonyAFAreaMode(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyAFAreaMode)(os, value, 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[] = { constexpr TagDetails minoltaSonyLocalAFAreaPoint[] = {
{1, N_("Center")}, {2, N_("Top")}, {3, N_("Top-Right")}, {4, N_("Right")}, {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")}, {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) { std::ostream& printMinoltaSonyLocalAFAreaPoint(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyLocalAFAreaPoint)(os, value, 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 //! Lookup table to translate Sony camera settings dynamic range optimizer mode values to readable labels
constexpr TagDetails minoltaSonyDynamicRangeOptimizerMode[] = { 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, std::ostream& printMinoltaSonyDynamicRangeOptimizerMode(std::ostream& os, const Value& value,
const ExifData* metadata) { 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 //! 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, std::ostream& printMinoltaSonyPrioritySetupShutterRelease(std::ostream& os, const Value& value,
const ExifData* metadata) { 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 //! 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")}, constexpr TagDetails minoltaSonyQualityCs[] = {
{32, N_("Fine")}, {34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")}, {0, N_("RAW")}, {2, N_("CRAW")}, {16, N_("Extra Fine")}, {32, N_("Fine")},
{48, N_("Standard")}}; {34, N_("RAW+JPEG")}, {35, N_("CRAW+JPEG")}, {48, N_("Standard")},
};
std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, const ExifData* metadata) { std::ostream& printMinoltaSonyQualityCs(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyQualityCs)(os, value, 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 //! Lookup table to translate Sony camera settings rotation values to readable labels
constexpr TagDetails minoltaSonyRotation[] = { 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) { std::ostream& printMinoltaSonyRotation(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyRotation)(os, value, 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 //! 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)")}, {0x04, N_("Minolta/Sony AF 1.4x APO (D) (0x04)")},
{0x05, N_("Minolta/Sony AF 2x APO (D) (0x05)")}, {0x05, N_("Minolta/Sony AF 2x APO (D) (0x05)")},
{0x48, N_("Minolta/Sony AF 2x APO (D)")}, {0x48, N_("Minolta/Sony AF 2x APO (D)")},
@ -1825,7 +2053,8 @@ constexpr TagDetails minoltaSonyTeleconverterModel[] = {{0x00, N_("None")},
{0x60, N_("Minolta AF 2x APO")}, {0x60, N_("Minolta AF 2x APO")},
{0x88, N_("Minolta/Sony AF 1.4x APO (D)")}, {0x88, N_("Minolta/Sony AF 1.4x APO (D)")},
{0x90, N_("Minolta AF 1.4x APO II")}, {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) { std::ostream& printMinoltaSonyTeleconverterModel(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyTeleconverterModel)(os, value, 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 //! 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) { std::ostream& printMinoltaSonyZoneMatching(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(minoltaSonyZoneMatching)(os, value, metadata); return EXV_PRINT_TAG(minoltaSonyZoneMatching)(os, value, metadata);

@ -54,25 +54,32 @@ constexpr auto nikonFocuspoints = std::array{
//! Shutter Modes (credits to exiftool) //! Shutter Modes (credits to exiftool)
constexpr TagDetails nikonShutterModes[] = { constexpr TagDetails nikonShutterModes[] = {
{0, "Mechanical"}, {16, "Electronic"}, {48, "Electronic Front Curtain"}, {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 //! FlashComp, tag 0x0012
constexpr TagDetails nikonFlashComp[] = { constexpr TagDetails nikonFlashComp[] = {
// From the PHP JPEG Metadata Toolkit // 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"}, {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"}, {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 //! 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 //! FlashMode, tag 0x0087
constexpr TagDetails nikonFlashMode[] = { constexpr TagDetails nikonFlashMode[] = {
{0, N_("Did not fire")}, {1, N_("Fire, manual")}, {3, N_("Not ready")}, {6, N_("Off")}, {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 //! ShootingMode, tag 0x0089
constexpr TagDetailsBitmask nikonShootingMode[] = {{0x0001, N_("Continuous")}, constexpr TagDetailsBitmask nikonShootingMode[] = {
{0x0001, N_("Continuous")},
{0x0002, N_("Delay")}, {0x0002, N_("Delay")},
{0x0004, N_("PC Control")}, {0x0004, N_("PC Control")},
{0x0008, N_("Self-timer")}, {0x0008, N_("Self-timer")},
@ -80,33 +87,46 @@ constexpr TagDetailsBitmask nikonShootingMode[] = {{0x0001, N_("Continuous")},
{0x0020, N_("Auto ISO")}, {0x0020, N_("Auto ISO")},
{0x0040, N_("White-Balance Bracketing")}, {0x0040, N_("White-Balance Bracketing")},
{0x0080, N_("IR Control")}, {0x0080, N_("IR Control")},
{0x0100, N_("D-Lighting Bracketing")}}; {0x0100, N_("D-Lighting Bracketing")},
};
//! ShootingMode D70, tag 0x0089 //! ShootingMode D70, tag 0x0089
constexpr TagDetailsBitmask nikonShootingModeD70[] = {{0x0001, N_("Continuous")}, constexpr TagDetailsBitmask nikonShootingModeD70[] = {
{0x0001, N_("Continuous")},
{0x0002, N_("Delay")}, {0x0002, N_("Delay")},
{0x0004, N_("PC control")}, {0x0004, N_("PC control")},
{0x0010, N_("Exposure bracketing")}, {0x0010, N_("Exposure bracketing")},
{0x0020, N_("Unused LE-NR slowdown")}, {0x0020, N_("Unused LE-NR slowdown")},
{0x0040, N_("White balance bracketing")}, {0x0040, N_("White balance bracketing")},
{0x0080, N_("IR control")}}; {0x0080, N_("IR control")},
};
//! AutoBracketRelease, tag 0x008a //! 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 //! NEFCompression, tag 0x0093
constexpr TagDetails nikonNefCompression[] = { 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 //! RetouchHistory, tag 0x009e
constexpr TagDetails nikonRetouchHistory[] = { constexpr TagDetails nikonRetouchHistory[] = {
{0, N_("None")}, {3, N_("B & W")}, {4, N_("Sepia")}, {5, N_("Trim")}, {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")}, {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 //! HighISONoiseReduction, tag 0x00b1
constexpr TagDetails nikonHighISONoiseReduction[] = { 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 // Nikon1 MakerNote Tag Info
constexpr TagInfo Nikon1MakerNote::tagInfo_[] = { constexpr TagInfo Nikon1MakerNote::tagInfo_[] = {
@ -292,23 +312,35 @@ std::ostream& Nikon1MakerNote::print0x0088(std::ostream& os, const Value& value,
} }
//! Quality, tag 0x0003 //! Quality, tag 0x0003
constexpr TagDetails nikon2Quality[] = {{1, N_("VGA Basic")}, {2, N_("VGA Normal")}, {3, N_("VGA Fine")}, constexpr TagDetails nikon2Quality[] = {
{4, N_("SXGA Basic")}, {5, N_("SXGA Normal")}, {6, N_("SXGA Fine")}}; {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 //! ColorMode, tag 0x0004
constexpr TagDetails nikon2ColorMode[] = {{1, N_("Color")}, {2, N_("Monochrome")}}; constexpr TagDetails nikon2ColorMode[] = {
{1, N_("Color")},
{2, N_("Monochrome")},
};
//! ImageAdjustment, tag 0x0005 //! ImageAdjustment, tag 0x0005
constexpr TagDetails nikon2ImageAdjustment[] = { 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 //! 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 //! WhiteBalance, tag 0x0007
constexpr TagDetails nikon2WhiteBalance[] = {{0, N_("Auto")}, {1, N_("Preset")}, {2, N_("Daylight")}, constexpr TagDetails nikon2WhiteBalance[] = {
{3, N_("Incandescent")}, {4, N_("Fluorescent")}, {5, N_("Cloudy")}, {0, N_("Auto")}, {1, N_("Preset")}, {2, N_("Daylight")}, {3, N_("Incandescent")},
{6, N_("Speedlight")}}; {4, N_("Fluorescent")}, {5, N_("Cloudy")}, {6, N_("Speedlight")},
};
// Nikon2 MakerNote Tag Info // Nikon2 MakerNote Tag Info
constexpr TagInfo Nikon2MakerNote::tagInfo_[] = { constexpr TagInfo Nikon2MakerNote::tagInfo_[] = {
@ -551,13 +583,23 @@ const TagInfo* Nikon3MakerNote::tagList() {
} }
//! YesNo, used for DaylightSavings, tag index 2, et al. //! 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 //! 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 //! OnOff
constexpr TagDetails nikonOnOff[] = {{1, N_("On")}, {2, N_("Off")}}; constexpr TagDetails nikonOnOff[] = {
{1, N_("On")},
{2, N_("Off")},
};
// Nikon3 Vibration Reduction Tag Info // Nikon3 Vibration Reduction Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoVr_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoVr_[] = {
@ -575,17 +617,24 @@ const TagInfo* Nikon3MakerNote::tagListVr() {
} }
//! Adjust //! 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 //! FilterEffect
constexpr TagDetails nikonFilterEffect[] = {{0x80, N_("Off")}, {0x81, N_("Yellow")}, {0x82, N_("Orange")}, constexpr TagDetails nikonFilterEffect[] = {
{0x83, N_("Red")}, {0x84, N_("Green")}, {0xff, N_("n/a")}}; {0x80, N_("Off")}, {0x81, N_("Yellow")}, {0x82, N_("Orange")},
{0x83, N_("Red")}, {0x84, N_("Green")}, {0xff, N_("n/a")},
};
//! ToningEffect //! ToningEffect
constexpr TagDetails nikonToningEffect[] = {{0x80, N_("B&W")}, {0x81, N_("Sepia")}, {0x82, N_("Cyanotype")}, constexpr TagDetails nikonToningEffect[] = {
{0x83, N_("Red")}, {0x84, N_("Yellow")}, {0x85, N_("Green")}, {0x80, N_("B&W")}, {0x81, N_("Sepia")}, {0x82, N_("Cyanotype")}, {0x83, N_("Red")},
{0x86, N_("Blue-green")}, {0x87, N_("Blue")}, {0x88, N_("Purple-blue")}, {0x84, N_("Yellow")}, {0x85, N_("Green")}, {0x86, N_("Blue-green")}, {0x87, N_("Blue")},
{0x89, N_("Red-purple")}, {0xff, N_("n/a")}}; {0x88, N_("Purple-blue")}, {0x89, N_("Red-purple")}, {0xff, N_("n/a")},
};
// Nikon3 Picture Control Tag Info // Nikon3 Picture Control Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoPc_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoPc_[] = {
@ -623,7 +672,11 @@ const TagInfo* Nikon3MakerNote::tagListPc() {
} }
//! OnOff //! 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 // Nikon3 AF Fine Tune
constexpr TagInfo Nikon3MakerNote::tagInfoAFT_[] = { 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")}, {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")}, {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")}, {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 // Nikon3 ISO Info Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoIi_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoIi_[] = {
@ -687,19 +741,22 @@ const TagInfo* Nikon3MakerNote::tagListIi() {
//! AfAreaMode //! AfAreaMode
constexpr TagDetails nikonAfAreaMode[] = { constexpr TagDetails nikonAfAreaMode[] = {
{0, N_("Single Area")}, {1, N_("Dynamic Area")}, {2, N_("Dynamic Area, Closest Subject")}, {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 //! AfPoint
constexpr TagDetails nikonAfPoint[] = {{0, N_("Center")}, {1, N_("Top")}, {2, N_("Bottom")}, constexpr TagDetails nikonAfPoint[] = {
{3, N_("Mid-left")}, {4, N_("Mid-right")}, {5, N_("Upper-left")}, {0, N_("Center")}, {1, N_("Top")}, {2, N_("Bottom")}, {3, N_("Mid-left")},
{6, N_("Upper-right")}, {7, N_("Lower-left")}, {8, N_("Lower-right")}, {4, N_("Mid-right")}, {5, N_("Upper-left")}, {6, N_("Upper-right")}, {7, N_("Lower-left")},
{9, N_("Far Left")}, {10, N_("Far Right")}}; {8, N_("Lower-right")}, {9, N_("Far Left")}, {10, N_("Far Right")},
};
//! AfPointsInFocus //! AfPointsInFocus
constexpr TagDetailsBitmask nikonAfPointsInFocus[] = { constexpr TagDetailsBitmask nikonAfPointsInFocus[] = {
{0x0001, N_("Center")}, {0x0002, N_("Top")}, {0x0004, N_("Bottom")}, {0x0008, N_("Mid-left")}, {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")}, {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 // Nikon3 Auto Focus Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoAf_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoAf_[] = {
@ -817,7 +874,10 @@ const TagInfo* Nikon3MakerNote::tagListFi() {
//! MultiExposureMode //! MultiExposureMode
constexpr TagDetails nikonMultiExposureMode[] = { 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 // Nikon3 Multi Exposure Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoMe_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoMe_[] = {
@ -839,10 +899,15 @@ const TagInfo* Nikon3MakerNote::tagListMe() {
} }
//! FlashSource //! 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 //! 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)")}, {0x0101, N_("1.01 (SB-800 or Metz 58 AF-1)")},
{0x0103, "1.03 (SB-800)"}, {0x0103, "1.03 (SB-800)"},
{0x0201, "2.01 (SB-800)"}, {0x0201, "2.01 (SB-800)"},
@ -860,7 +925,8 @@ constexpr TagDetails nikonFlashFirmware[] = {{0x0000, N_("n/a")},
{0x0a00, "10.00 (SB-N7)"}, {0x0a00, "10.00 (SB-N7)"},
{0x0b00, "11.00 (SB-300)"}, {0x0b00, "11.00 (SB-300)"},
{0x0d00, "13.00 (SB-500)"}, {0x0d00, "13.00 (SB-500)"},
{0x0e00, "14.00 (SB-5000)"}}; {0x0e00, "14.00 (SB-5000)"},
};
//! FlashGNDistance //! FlashGNDistance
constexpr TagDetails nikonFlashGNDistance[] = { 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"}, {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"}, {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"}, {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 //! FlashControlMode
constexpr TagDetails nikonFlashControlMode[] = { constexpr TagDetails nikonFlashControlMode[] = {
@ -896,10 +963,14 @@ static constexpr bool flashModeUsesManualScale(const int64_t mode) {
//! ExternalFlashFlags //! ExternalFlashFlags
constexpr TagDetails nikonExternalFlashFlags[] = { 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 //! FlashColorFilter
constexpr TagDetails nikonFlashColorFilter[] = {{0, N_("None")}, constexpr TagDetails nikonFlashColorFilter[] = {
{0, N_("None")},
{1, N_("FL-GL1 (for fluorescent light)")}, {1, N_("FL-GL1 (for fluorescent light)")},
{2, N_("FL-GL2 (for fluorescent light)")}, {2, N_("FL-GL2 (for fluorescent light)")},
{9, N_("TN-A1 (for incandescent light)")}, {9, N_("TN-A1 (for incandescent light)")},
@ -908,24 +979,36 @@ constexpr TagDetails nikonFlashColorFilter[] = {{0, N_("None")},
{66, N_("Blue")}, {66, N_("Blue")},
{67, N_("Yellow")}, {67, N_("Yellow")},
{68, N_("Amber")}, {68, N_("Amber")},
{79, N_("Other")}}; {79, N_("Other")},
};
//! FlashWirelessOptions //! FlashWirelessOptions
constexpr TagDetails nikonFlashAWLMode[] = { 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 //! FlashExposureComp
constexpr TagDetails nikonFlashExposureComp[] = {{0, N_("Exposure Comp.: Entire frame")}, constexpr TagDetails nikonFlashExposureComp[] = {
{4, N_("Exposure Comp.: Background Only")}}; {0, N_("Exposure Comp.: Entire frame")},
{4, N_("Exposure Comp.: Background Only")},
};
//! FlashIlluminationPattern //! FlashIlluminationPattern
constexpr TagDetails nikonFlashIlluminationPat[] = {{0, N_("Illumination Pat.: Standard")}, constexpr TagDetails nikonFlashIlluminationPat[] = {
{0, N_("Illumination Pat.: Standard")},
{1, N_("Illumination Pat.: Center-weighted")}, {1, N_("Illumination Pat.: Center-weighted")},
{2, N_("Illumination Pat.: Even")}}; {2, N_("Illumination Pat.: Even")},
};
//! FlashAdaptors //! FlashAdaptors
constexpr TagDetailsBitmask nikonFlashAdaptors[] = { 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) { static void printFlashCompensationValue(std::ostream& os, const unsigned char value, const bool manualScale) {
std::ios::fmtflags f(os.flags()); 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"}, {0x30c2, "-19"}, {0x403c, "+5"}, {0x403d, "+10"}, {0x403e, "+20"}, {0x40c2, "-20"}, {0x40c3, "-10"},
{0x40c4, "-5"}, {0x603d, "+11"}, {0x60c3, "-11"}, {0x803b, "+3"}, {0x803c, "+6"}, {0x803d, "+12"}, {0x40c4, "-5"}, {0x603d, "+11"}, {0x60c3, "-11"}, {0x803b, "+3"}, {0x803c, "+6"}, {0x803d, "+12"},
{0x80c3, "-12"}, {0x80c4, "-6"}, {0x80c5, "-3"}, {0xa03d, "+13"}, {0xa0c3, "-13"}, {0xc03c, "+7"}, {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 // Nikon3 Shot Info D300 (a) Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoSi3_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoSi3_[] = {
@ -1337,7 +1421,8 @@ constexpr TagDetails nikonAfFineTuneAdj2[] = {
{0x40c6, "-1"}, {0x543e, "+17"}, {0x54c2, "-17"}, {0x683d, "+9"}, {0x683e, "+18"}, {0x68c2, "-18"}, {0x40c6, "-1"}, {0x543e, "+17"}, {0x54c2, "-17"}, {0x683d, "+9"}, {0x683e, "+18"}, {0x68c2, "-18"},
{0x68c3, "-9"}, {0x7c3e, "+19"}, {0x7cc2, "-19"}, {0x903c, "+5"}, {0x903d, "+10"}, {0x903e, "+20"}, {0x68c3, "-9"}, {0x7c3e, "+19"}, {0x7cc2, "-19"}, {0x903c, "+5"}, {0x903d, "+10"}, {0x903e, "+20"},
{0x90c2, "-20"}, {0x90c3, "-10"}, {0x90c4, "-5"}, {0xb83d, "+11"}, {0xb8c3, "-11"}, {0xe03b, "+3"}, {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 // Nikon3 Shot Info D300 (b) Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoSi4_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoSi4_[] = {
@ -1358,10 +1443,19 @@ const TagInfo* Nikon3MakerNote::tagListSi4() {
} }
//! VibrationReduction //! 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 //! 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 // Nikon3 Shot Info Tag Info
constexpr TagInfo Nikon3MakerNote::tagInfoSi5_[] = { constexpr TagInfo Nikon3MakerNote::tagInfoSi5_[] = {

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

@ -39,10 +39,15 @@ constexpr TagDetails panasonicImageStabilizer[] = {
//! Macro, tag 0x001c //! Macro, tag 0x001c
constexpr TagDetails panasonicMacro[] = { 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 //! 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")}, {1, N_("Normal")},
{2, N_("Portrait")}, {2, N_("Portrait")},
{3, N_("Scenery")}, {3, N_("Scenery")},
@ -118,17 +123,27 @@ constexpr TagDetails panasonicShootingMode[] = {{0, N_("Off")}, // only SceneMo
{87, N_("Freeze Animal Motion")}, {87, N_("Freeze Animal Motion")},
{88, N_("Clear Sports Shot")}, {88, N_("Clear Sports Shot")},
{89, N_("Monochrome")}, {89, N_("Monochrome")},
{90, N_("Creative Control")}}; {90, N_("Creative Control")},
};
//! Audio, tag 0x0020 //! 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 //! ColorEffect, tag 0x0028
constexpr TagDetails panasonicColorEffect[] = { 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 //! 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 //! Contrast, tag 0x002c
constexpr TagDetails panasonicContrast[] = { constexpr TagDetails panasonicContrast[] = {
@ -138,26 +153,45 @@ constexpr TagDetails panasonicContrast[] = {
//! NoiseReduction, tag 0x002d //! NoiseReduction, tag 0x002d
constexpr TagDetails panasonicNoiseReduction[] = { 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 //! 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 //! Rotation, tag 0x0030
constexpr TagDetails panasonicRotation[] = { 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 //! AFAssistLamp, tag 0x0031
constexpr TagDetails panasonicAFAssistLamp[] = {{1, N_("Fired")}, constexpr TagDetails panasonicAFAssistLamp[] = {
{1, N_("Fired")},
{2, N_("Enabled but Not Used")}, {2, N_("Enabled but Not Used")},
{3, N_("Disabled but Required")}, {3, N_("Disabled but Required")},
{4, N_("Disabled and Not Required")}}; {4, N_("Disabled and Not Required")},
};
//! ColorMode, tag 0x0032 //! 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 //! 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 //! ConversionLens, tag 0x0035
constexpr TagDetails panasonicConversionLens[] = { constexpr TagDetails panasonicConversionLens[] = {
@ -169,91 +203,141 @@ constexpr TagDetails panasonicConversionLens[] = {
}; };
//! WorldTimeLocation, tag 0x003a //! 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 //! 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 //! FilmMode, tag 0x0042
constexpr TagDetails panasonicFilmMode[] = { constexpr TagDetails panasonicFilmMode[] = {
{1, N_("Standard (color)")}, {2, N_("Dynamic (color)")}, {3, N_("Nature (color)")}, {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)")}, {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 //! Bracket Settings, tag 0x0045
constexpr TagDetails panasonicBracketSettings[] = {{0, N_("No Bracket")}, constexpr TagDetails panasonicBracketSettings[] = {
{0, N_("No Bracket")},
{1, N_("3 images, Sequence 0/-/+")}, {1, N_("3 images, Sequence 0/-/+")},
{2, N_("3 images, Sequence -/0/+")}, {2, N_("3 images, Sequence -/0/+")},
{3, N_("5 images, Sequence 0/-/+")}, {3, N_("5 images, Sequence 0/-/+")},
{4, N_("5 images, Sequence -/0/+")}, {4, N_("5 images, Sequence -/0/+")},
{5, N_("7 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 //! 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 //! 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 //! Intelligent exposure, tag 0x005d
constexpr TagDetails panasonicIntelligentExposure[] = { 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 //! 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 //! Intelligent resolution, tag 0x0070
constexpr TagDetails panasonicIntelligentResolution[] = { 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 //! Intelligent D-Range, tag 0x0079
constexpr TagDetails panasonicIntelligentDRange[] = { 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 //! 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 //! Photo Style, tag 0x0089
constexpr TagDetails panasonicPhotoStyle[] = {{0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")}, constexpr TagDetails panasonicPhotoStyle[] = {
{3, N_("Natural")}, {4, N_("Monochrome")}, {5, N_("Scenery")}, {0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")}, {3, N_("Natural")}, {4, N_("Monochrome")},
{6, N_("Portrait")}}; {5, N_("Scenery")}, {6, N_("Portrait")},
};
//! Shading compensation, tag 0x008a //! 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 //! Camera orientation, tag 0x008f
constexpr TagDetails panasonicCameraOrientation[] = {{0, N_("Normal")}, {1, N_("Rotate CW")}, constexpr TagDetails panasonicCameraOrientation[] = {
{2, N_("Rotate 180")}, {3, N_("Rotate CCW")}, {0, N_("Normal")}, {1, N_("Rotate CW")}, {2, N_("Rotate 180")},
{4, N_("Tilt upwards")}, {5, N_("Tilt downwards")}}; {3, N_("Rotate CCW")}, {4, N_("Tilt upwards")}, {5, N_("Tilt downwards")},
};
//! Sweep panorama direction, tag 0x0093 //! Sweep panorama direction, tag 0x0093
constexpr TagDetails panasonicSweepPanoramaDirection[] = {{0, N_("Off")}, constexpr TagDetails panasonicSweepPanoramaDirection[] = {
{1, N_("Left to Right")}, {0, N_("Off")}, {1, N_("Left to Right")}, {2, N_("Right to Left")},
{2, N_("Right to Left")}, {3, N_("Top to Bottom")}, {4, N_("Bottom to Top")},
{3, N_("Top to Bottom")}, };
{4, N_("Bottom to Top")}};
//! Timer recording, tag 0x0096 //! Timer recording, tag 0x0096
constexpr TagDetails panasonicTimerRecording[] = { 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 //! HDR, tag 0x009e
constexpr TagDetails panasonicHDR[] = {{0, N_("Off")}, constexpr TagDetails panasonicHDR[] = {
{0, N_("Off")},
{100, N_("1 EV")}, {100, N_("1 EV")},
{200, N_("2 EV")}, {200, N_("2 EV")},
{300, N_("3 EV")}, {300, N_("3 EV")},
{32868, N_("1 EV (Auto)")}, {32868, N_("1 EV (Auto)")},
{32968, N_("2 EV (Auto)")}, {32968, N_("2 EV (Auto)")},
{33068, N_("3 EV (Auto)")}}; {33068, N_("3 EV (Auto)")},
};
//! Shutter Type, tag 0x009f //! 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 //! 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 //! 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 // Panasonic MakerNote Tag Info
constexpr TagInfo PanasonicMakerNote::tagInfo_[] = { constexpr TagInfo PanasonicMakerNote::tagInfo_[] = {

@ -465,7 +465,8 @@ constexpr TagDetails pentaxCities[] = {
constexpr TagDetails pentaxImageProcessing[] = { constexpr TagDetails pentaxImageProcessing[] = {
{0x00000000, N_("Unprocessed")}, {0x00000004, N_("Digital Filter")}, {0x01000000, N_("Resized")}, {0x00000000, N_("Unprocessed")}, {0x00000004, N_("Digital Filter")}, {0x01000000, N_("Resized")},
{0x02000000, N_("Cropped")}, {0x04000000, N_("Color Filter")}, {0x06000000, N_("Digital Filter 6")}, {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) //! PictureMode, combi-tag 0x0033 (3 bytes)
constexpr TagDetails pentaxPictureMode[] = { constexpr TagDetails pentaxPictureMode[] = {

@ -283,7 +283,8 @@ const Loader::LoaderList Loader::loaderList_[] = {
{nullptr, createLoaderExifJpeg, 2}, {nullptr, createLoaderExifJpeg, 3}, {nullptr, createLoaderExifJpeg, 2}, {nullptr, createLoaderExifJpeg, 3},
{nullptr, createLoaderExifJpeg, 4}, {nullptr, createLoaderExifJpeg, 5}, {nullptr, createLoaderExifJpeg, 4}, {nullptr, createLoaderExifJpeg, 5},
{nullptr, createLoaderExifJpeg, 6}, {"image/x-canon-cr2", createLoaderExifJpeg, 7}, {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_[] = { const LoaderExifJpeg::Param LoaderExifJpeg::param_[] = {
{"Exif.Image.JPEGInterchangeFormat", "Exif.Image.JPEGInterchangeFormatLength", nullptr}, // 0 {"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.")}, {"Year", N_("Year"), "Integer", xmpText, xmpExternal, N_("Year in which the video was made.")},
{"YResolution", N_("Y Resolution"), "Rational", xmpText, xmpInternal, {"YResolution", N_("Y Resolution"), "Rational", xmpText, xmpInternal,
N_("Vertical resolution in pixels per unit.")}, N_("Vertical resolution in pixels per unit.")},
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}}; {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr},
};
const XmpPropertyInfo xmpAudioInfo[] = { const XmpPropertyInfo xmpAudioInfo[] = {
{"AvgBytePerSec", N_("Average Bytes Per Second"), "Integer", xmpText, xmpExternal, {"AvgBytePerSec", N_("Average Bytes Per Second"), "Integer", xmpText, xmpExternal,
@ -4821,7 +4822,8 @@ const XmpPropertyInfo xmpDwCInfo[] = {
{"measurementRemarks", N_("Measurement Remarks"), "Text", xmpText, xmpExternal, {"measurementRemarks", N_("Measurement Remarks"), "Text", xmpText, xmpExternal,
N_("Comments or notes accompanying the MeasurementOrFact.")}, N_("Comments or notes accompanying the MeasurementOrFact.")},
// End of list marker // End of list marker
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}}; {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr},
};
const XmpPropertyInfo xmpAcdseeInfo[] = { const XmpPropertyInfo xmpAcdseeInfo[] = {
{"caption", N_("Caption"), "Text", xmpText, xmpExternal, N_("A brief description of the file")}, {"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")}, {"categories", N_("Categories"), "Text", xmpText, xmpExternal, N_("Catalog of hierarchical keywords and groups")},
// End of list marker // End of list marker
{nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr}}; {nullptr, nullptr, nullptr, invalidTypeId, xmpInternal, nullptr},
};
const XmpPrintInfo xmpPrintInfo[] = { const XmpPrintInfo xmpPrintInfo[] = {
{"Xmp.crs.CropUnits", EXV_PRINT_TAG(crsCropUnits)}, {"Xmp.crs.CropUnits", EXV_PRINT_TAG(crsCropUnits)},
@ -4902,7 +4905,8 @@ const XmpPrintInfo xmpPrintInfo[] = {
{"Xmp.plus.MinorModelAgeDisclosure", EXV_PRINT_VOCABULARY(plusMinorModelAgeDisclosure)}, {"Xmp.plus.MinorModelAgeDisclosure", EXV_PRINT_VOCABULARY(plusMinorModelAgeDisclosure)},
{"Xmp.plus.ModelReleaseStatus", EXV_PRINT_VOCABULARY(plusModelReleaseStatus)}, {"Xmp.plus.ModelReleaseStatus", EXV_PRINT_VOCABULARY(plusModelReleaseStatus)},
{"Xmp.plus.PropertyReleaseStatus", EXV_PRINT_VOCABULARY(plusPropertyReleaseStatus)}, {"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 { bool XmpNsInfo::operator==(const XmpNsInfo::Ns& ns) const {
return ns_ == ns.ns_; return ns_ == ns.ns_;

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

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

@ -20,7 +20,8 @@ namespace Exiv2::Internal {
// -- Standard Sony Makernotes tags --------------------------------------------------------------- // -- Standard Sony Makernotes tags ---------------------------------------------------------------
//! Lookup table to translate Sony image quality values to readable labels //! 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")}, {1, N_("Super Fine")},
{2, N_("Fine")}, {2, N_("Fine")},
{3, N_("Standard")}, {3, N_("Standard")},
@ -30,36 +31,56 @@ constexpr TagDetails sonyImageQuality[] = {{0, N_("RAW")},
{7, N_("Compressed RAW")}, {7, N_("Compressed RAW")},
{8, N_("Compressed RAW + JPEG")}, {8, N_("Compressed RAW + JPEG")},
{9, N_("Light")}, {9, N_("Light")},
{0xffffffff, N_("n/a")}}; {0xffffffff, N_("n/a")},
};
//! Lookup table to translate Sony white balance (main group) values to readable labels //! 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")}, {0x10, N_("Daylight")}, {0x20, N_("Cloudy")},
{0x30, N_("Shade")}, {0x40, N_("Tungsten")}, {0x30, N_("Shade")}, {0x40, N_("Tungsten")},
{0x50, N_("Flash")}, {0x60, N_("Fluorescent")}, {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 //! 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"}, constexpr TagDetails sonyHDRStdPart1[] = {
{0x12, "2.0 EV"}, {0x13, "2.5 EV"}, {0x14, "3.0 EV"}, {0x15, "3.5 EV"}, {0x00, N_("Off")}, {0x01, N_("Auto")}, {0x10, "1.0 EV"}, {0x11, "1.5 EV"}, {0x12, "2.0 EV"},
{0x16, "4.0 EV"}, {0x17, "4.5 EV"}, {0x18, "5.0 EV"}, {0x19, "5.5 EV"}, {0x13, "2.5 EV"}, {0x14, "3.0 EV"}, {0x15, "3.5 EV"}, {0x16, "4.0 EV"}, {0x17, "4.5 EV"},
{0x1a, "6.0 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 //! Lookup table to translate Sony auto HDR (part 2) values to readable labels
constexpr TagDetails sonyHDRStdPart2[] = { 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 //! 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 //! 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 //! 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 //! 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")}, {1, N_("Toy Camera")},
{2, N_("Pop Color")}, {2, N_("Pop Color")},
{3, N_("Posterization")}, {3, N_("Posterization")},
@ -94,29 +115,46 @@ constexpr TagDetails sonyPictureEffect[] = {{0, N_("Off")},
{98, N_("Watercolor 2")}, {98, N_("Watercolor 2")},
{112, N_("Illustration (low)")}, {112, N_("Illustration (low)")},
{113, N_("Illustration")}, {113, N_("Illustration")},
{114, N_("Illustration (high)")}}; {114, N_("Illustration (high)")},
};
//! Lookup table to translate Sony soft skin effect values to readable labels //! Lookup table to translate Sony soft skin effect values to readable labels
constexpr TagDetails sonySoftSkinEffect[] = { 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 //! 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 //! 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 //! 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 //! 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")}, {1, N_("Flash fired")},
{2, N_("External 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 //! 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")}, {1, N_("Center")},
{2, N_("Top")}, {2, N_("Top")},
{3, N_("Upper-right")}, {3, N_("Upper-right")},
@ -135,7 +173,8 @@ constexpr TagDetails sonyAFPointSelectedSet1[] = {{0, N_("Auto")},
{16, N_("Upper Far Right")}, {16, N_("Upper Far Right")},
{17, N_("Lower Far Right")}, {17, N_("Lower Far Right")},
{18, N_("Lower Far Left")}, {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 //! Lookup table to translate Sony auto focus point selected (set 2) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet2[] = { constexpr TagDetails sonyAFPointSelectedSet2[] = {
@ -154,10 +193,12 @@ constexpr TagDetails sonyAFPointSelectedSet2[] = {
{60, "G5"}, {61, "G6"}, {62, "G7"}, {63, "G8"}, {64, "G9"}, {60, "G5"}, {61, "G6"}, {62, "G7"}, {63, "G8"}, {64, "G9"},
{65, "G10"}, {66, "G11"}, {67, "H2"}, {68, "H3"}, {69, "H4"}, {65, "G10"}, {66, "G11"}, {67, "H2"}, {68, "H3"}, {69, "H4"},
{70, "H5"}, {71, "H6"}, {72, "H7"}, {73, "H8"}, {74, "H9"}, {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 //! 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"}, {93, "A5"},
{94, "A6"}, {94, "A6"},
{95, "A7"}, {95, "A7"},
@ -236,22 +277,26 @@ constexpr TagDetails sonyAFPointSelectedSet3[] = {{0, N_("Auto")},
{218, "H10"}, {218, "H10"},
{229, "I5"}, {229, "I5"},
{230, "I6"}, {230, "I6"},
{231, "I7"}}; {231, "I7"},
};
//! Lookup table to translate Sony auto focus point selected (set 4) values to readable labels //! Lookup table to translate Sony auto focus point selected (set 4) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet4[] = { constexpr TagDetails sonyAFPointSelectedSet4[] = {
{0, N_("n/a")}, {1, N_("Top Left Zone")}, {2, N_("Top Zone")}, {3, N_("Top Right Zone")}, {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")}, {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 //! Lookup table to translate Sony auto focus point selected (set 5) values to readable labels
constexpr TagDetails sonyAFPointSelectedSet5[] = { constexpr TagDetails sonyAFPointSelectedSet5[] = {
{0, N_("n/a")}, {1, N_("Center Zone")}, {2, N_("Top Zone")}, {3, N_("Right Zone")}, {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")}, {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 //! 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")}, {2, N_("Upper-right")}, {3, N_("Right")},
{4, N_("Lower-right")}, {5, N_("Bottom")}, {4, N_("Lower-right")}, {5, N_("Bottom")},
{6, N_("Lower-left")}, {7, N_("Left")}, {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")}, {12, N_("Near right")}, {13, N_("Lower-middle")},
{14, N_("Near left")}, {15, N_("Upper far right")}, {14, N_("Near left")}, {15, N_("Upper far right")},
{16, N_("Lower far right")}, {17, N_("Lower far left")}, {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 //! Lookup table to translate Sony auto focus points used (set 2) values to readable labels
constexpr TagDetailsBitlistSorted sonyAFPointsUsedSet2[] = { 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"}, {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"}, {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"}, {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 //! 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")}, constexpr TagDetails sonyFocusMode2[] = {
{4, N_("AF-A")}, {6, N_("DMF")}, {7, N_("AF-D")}}; {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 //! Lookup table to translate Sony auto focus area mode setting (set 1) values to readable labels
constexpr TagDetails sonyAFAreaModeSettingSet1[] = { 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 //! 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")}, {1, N_("Center")},
{3, N_("Flexible Spot")}, {3, N_("Flexible Spot")},
{4, N_("Flexible Spot (LA-EA4)")}, {4, N_("Flexible Spot (LA-EA4)")},
{9, N_("Center (LA-EA4)")}, {9, N_("Center (LA-EA4)")},
{11, N_("Zone")}, {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 //! Lookup table to translate Sony auto focus area mode setting (set 3) values to readable labels
constexpr TagDetails sonyAFAreaModeSettingSet3[] = { 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 //! 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 //! 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 //! Lookup table to translate Sony variable low pass filter values to readable labels
constexpr StringTagDetails sonyVariableLowPassFilter[] = { 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 //! Lookup table to translate Sony RAW file type values to readable labels
constexpr TagDetails sonyRAWFileType[] = { 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 //! 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)")}, {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 //! 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 //! 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 1", N_("Standard")},
{"0 2", N_("Fine")}, {"0 2", N_("Fine")},
{"0 3", N_("Extra fine")}, {"0 3", N_("Extra fine")},
@ -328,15 +402,21 @@ constexpr StringTagDetails sonyQuality2Std[] = {{"0 0", N_("n/a")},
{"1 1", N_("RAW + standard")}, {"1 1", N_("RAW + standard")},
{"1 2", N_("RAW + fine")}, {"1 2", N_("RAW + fine")},
{"1 3", N_("RAW + extra 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 //! 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 //! Lookup table to translate Sony model ID values to readable labels
// FORMAT: Uses a space before alternative models and caveats // FORMAT: Uses a space before alternative models and caveats
// NOTE: Keep the array format in sync with the getModel() function // 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"}, {2, "DSC-R1"},
{256, "DSLR-A100"}, {256, "DSLR-A100"},
{257, "DSLR-A900"}, {257, "DSLR-A900"},
@ -434,10 +514,12 @@ constexpr TagDetails sonyModelId[] = {{0, N_("Multiple camera models")},
{391, "ILME-FX30"}, {391, "ILME-FX30"},
{393, "ZV-E1"}, {393, "ZV-E1"},
{394, "ILCE-6700"}, {394, "ILCE-6700"},
{395, "ZV-1M2"}}; {395, "ZV-1M2"},
};
//! Lookup table to translate Sony creative style (main group) values to readable labels //! 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")}, {"Autumnleaves", N_("Autumn leaves")},
{"BW", N_("Black and White")}, {"BW", N_("Black and White")},
{"Clear", N_("Clear")}, {"Clear", N_("Clear")},
@ -455,17 +537,20 @@ constexpr StringTagDetails sonyCreativeStyleStd[] = {{"AdobeRGB", N_("Adobe RGB"
{"Standard", N_("Standard")}, {"Standard", N_("Standard")},
{"Sunset", N_("Sunset")}, {"Sunset", N_("Sunset")},
{"Vivid", N_("Vivid")}, {"Vivid", N_("Vivid")},
{"VV2", N_("VV2")}}; {"VV2", N_("VV2")},
};
//! Lookup table to translate Sony file format values to readable labels //! Lookup table to translate Sony file format values to readable labels
constexpr StringTagDetails sonyFileFormat[] = { 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"}, {"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 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"}, {"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 //! 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")}, {1, N_("Standard")},
{2, N_("Advanced Auto")}, {2, N_("Advanced Auto")},
{3, N_("Auto")}, {3, N_("Auto")},
@ -478,7 +563,8 @@ constexpr TagDetails print0xb025[] = {{0, N_("Off")},
{17, "Lv2"}, {17, "Lv2"},
{18, "Lv3"}, {18, "Lv3"},
{19, "Lv4"}, {19, "Lv4"},
{20, "Lv5"}}; {20, "Lv5"},
};
//! Lookup table to translate Sony color mode values to readable labels //! Lookup table to translate Sony color mode values to readable labels
constexpr TagDetails sonyColorMode[] = { constexpr TagDetails sonyColorMode[] = {
@ -490,10 +576,12 @@ constexpr TagDetails sonyColorMode[] = {
{19, N_("Vivid 2")}, {20, N_("IN")}, {21, N_("SH")}, {19, N_("Vivid 2")}, {20, N_("IN")}, {21, N_("SH")},
{100, N_("Neutral")}, {101, N_("Clear")}, {102, N_("Deep")}, {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")},
{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 //! 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")}, {1, N_("Portrait")},
{2, N_("Beach")}, {2, N_("Beach")},
{3, N_("Sports")}, {3, N_("Sports")},
@ -523,24 +611,42 @@ constexpr TagDetails sonyExposureMode[] = {{0, N_("Program AE")},
{40, N_("Background Defocus")}, {40, N_("Background Defocus")},
{41, N_("Soft Skin")}, {41, N_("Soft Skin")},
{42, N_("3D Image")}, {42, N_("3D Image")},
{0xffff, N_("n/a")}}; {0xffff, N_("n/a")},
};
//! Lookup table to translate Sony JPEG quality values to readable labels //! Lookup table to translate Sony JPEG quality values to readable labels
constexpr TagDetails sonyJPEGQuality[] = { 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 //! Lookup table to translate Sony anti-blur values to readable labels
constexpr TagDetails sonyAntiBlur[] = { 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 //! 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 //! 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 //! 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")}, {4, N_("Manual")},
{5, N_("Daylight")}, {5, N_("Daylight")},
{6, N_("Cloudy")}, {6, N_("Cloudy")},
@ -553,60 +659,87 @@ constexpr TagDetails sonyWhiteBalance2[] = {{0, N_("Auto")},
{15, N_("Flash")}, {15, N_("Flash")},
{17, N_("Underwater 1 (Blue Water)")}, {17, N_("Underwater 1 (Blue Water)")},
{18, N_("Underwater 2 (Green 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 //! 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 //! 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")}, constexpr TagDetails sonyAFModeSet1[] = {
{3, N_("Spot")}, {4, N_("Flexible Spot")}, {6, N_("Touch")}, {0, N_("Default")}, {1, N_("Multi")}, {2, N_("Center")}, {3, N_("Spot")}, {4, N_("Flexible Spot")},
{14, N_("Tracking")}, {15, N_("Face Detected")}, {0xffff, N_("n/a")}}; {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 //! 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")}, {1, N_("Center")},
{2, N_("Spot")}, {2, N_("Spot")},
{3, N_("Flexible spot")}, {3, N_("Flexible spot")},
{10, N_("Selective (for miniature effect)")}, {10, N_("Selective (for miniature effect)")},
{14, N_("Tracking")}, {14, N_("Tracking")},
{15, N_("Face tracking")}, {15, N_("Face tracking")},
{255, N_("Manual")}}; {255, N_("Manual")},
};
//! Lookup table to translate Sony auto focus illuminator values to readable labels //! 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 //! 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 //! Lookup table to translate Sony flash level values to readable labels
constexpr TagDetails sonyFlashLevel[] = { 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"}, {-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"}, {-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"}, {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 //! 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")}, {2, N_("Continuous")},
{5, N_("Exposure Bracketing")}, {5, N_("Exposure Bracketing")},
{6, N_("White Balance Bracketing")}, {6, N_("White Balance Bracketing")},
{8, N_("DRO Bracketing")}, {8, N_("DRO Bracketing")},
{0xffff, N_("n/a")}}; {0xffff, N_("n/a")},
};
//! Lookup table to translate Sony sequence number values to readable labels //! 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 //! Lookup table to translate Sony focus mode 3 values to readable labels
constexpr TagDetails sonyFocusMode3[] = { 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 //! Lookup table to translate Sony high ISO noise reduction 2 values to readable labels
constexpr TagDetails sonyHighISONoiseReduction2[] = { 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 //! 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")}, {1, N_("Continuous")},
{2, N_("Continuous - Exposure Bracketing")}, {2, N_("Continuous - Exposure Bracketing")},
{3, N_("DRO or White Balance Bracketing")}, {3, N_("DRO or White Balance Bracketing")},
@ -628,16 +761,19 @@ constexpr TagDetails sonyReleaseMode2[] = {{0, N_("Normal")},
{27, N_("Continuous - High Sensitivity")}, {27, N_("Continuous - High Sensitivity")},
{28, N_("Smile Shutter")}, {28, N_("Smile Shutter")},
{29, N_("Continuous - Tele-zoom Advance Priority")}, {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 //! Lookup table to translate Sony long exposure noise reduction values to readable labels
constexpr TagDetails sonyLongExposureNoiseReduction[] = { constexpr TagDetails sonyLongExposureNoiseReduction[] = {
{0x00000000, N_("Off")}, {0x00000001, N_("On (unused)")}, {0x00010001, N_("On (dark subtracted)")}, {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 //! 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")}, constexpr TagDetails sonyHighISONoiseReductionStd[] = {
{3, N_("High")}, {256, N_("Auto")}, {0xffff, N_("n/a")}}; {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) { static auto getModel(const ExifData* metadata, std::string& val) {
auto pos = metadata->findKey(ExifKey("Exif.Image.Model")); 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 //! 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 //! Lookup table to translate Sony camera settings metering mode values to readable labels
constexpr TagDetails sonyMeteringMode[] = { 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 //! Lookup table to translate Sony camera settings creative style values to readable labels
constexpr TagDetails sonyCreativeStyle[] = { constexpr TagDetails sonyCreativeStyle[] = {
@ -1595,7 +1739,8 @@ constexpr TagDetails sonyCreativeStyle[] = {
{4, N_("Landscape")}, {5, N_("Sunset")}, {6, N_("Night View/Portrait")}, {4, N_("Landscape")}, {5, N_("Sunset")}, {6, N_("Night View/Portrait")},
{8, N_("Black & White")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")}, {8, N_("Black & White")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")},
{12, N_("Clear")}, {13, N_("Deep")}, {14, N_("Light")}, {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 //! Lookup table to translate Sony camera settings flash mode values to readable labels
constexpr TagDetails sonyFlashMode[] = { constexpr TagDetails sonyFlashMode[] = {
@ -1604,17 +1749,24 @@ constexpr TagDetails sonyFlashMode[] = {
}; };
//! Lookup table to translate Sony AF illuminator values to readable labels //! 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 //! 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")}, {4, N_("Landscape")}, {5, N_("Sunset")}, {7, N_("Night View/Portrait")},
{8, N_("B&W")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")}, {8, N_("B&W")}, {9, N_("Adobe RGB")}, {11, N_("Neutral")},
{129, N_("StyleBox1")}, {130, N_("StyleBox2")}, {131, N_("StyleBox3")}, {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 //! 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")}, {1, N_("Manual")},
{2, N_("Program AE")}, {2, N_("Program AE")},
{3, N_("Aperture-priority AE")}, {3, N_("Aperture-priority AE")},
@ -1627,16 +1779,27 @@ constexpr TagDetails sonyExposureProgram[] = {{0, N_("Auto")},
{19, N_("Night Portrait")}, {19, N_("Night Portrait")},
{20, N_("Landscape")}, {20, N_("Landscape")},
{21, N_("Macro")}, {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 //! 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 //! 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 //! 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 // Sony Camera Settings Tag Info
// NOTE: all are for A200, A230, A300, A350, A700, A850 and A900 Sony model excepted // 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 //! 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")}, {1, N_("Center")},
{2, N_("Spot")}, {2, N_("Spot")},
{3, N_("Flexible Spot")}, {3, N_("Flexible Spot")},
@ -1778,7 +1942,8 @@ constexpr TagDetails sony2FpAFAreaMode[] = {{0, N_("Multi")},
{14, N_("Tracking")}, {14, N_("Tracking")},
{15, N_("Face Tracking")}, {15, N_("Face Tracking")},
{20, N_("Animal Eye Tracking")}, {20, N_("Animal Eye Tracking")},
{255, N_("Manual")}}; {255, N_("Manual")},
};
//! Sony Tag 9402 Sony2Fp (FocusPosition) //! Sony Tag 9402 Sony2Fp (FocusPosition)
constexpr TagInfo SonyMakerNote::tagInfoFp_[] = { constexpr TagInfo SonyMakerNote::tagInfoFp_[] = {
@ -1873,7 +2038,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonyMisc1_[] = {
IfdId::sonyMisc1Id, SectionId::makerTags, signedByte, -1, printSonyMisc1CameraTemperature}, IfdId::sonyMisc1Id, SectionId::makerTags, signedByte, -1, printSonyMisc1CameraTemperature},
// End of list marker // End of list marker
{0xffff, "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", IfdId::sonyMisc1Id, {0xffff, "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", "(UnknownSonyMisc1Tag)", IfdId::sonyMisc1Id,
SectionId::makerTags, unsignedByte, -1, printValue}}; SectionId::makerTags, unsignedByte, -1, printValue},
};
const TagInfo* SonyMakerNote::tagListSonyMisc1() { const TagInfo* SonyMakerNote::tagListSonyMisc1() {
return tagInfoSonyMisc1_; 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 //! 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")}, {1, N_("Aperture-priority AE")},
{2, N_("Shutter speed priority AE")}, {2, N_("Shutter speed priority AE")},
{3, N_("Manual")}, {3, N_("Manual")},
@ -1924,7 +2091,8 @@ constexpr TagDetails sonyExposureProgram3[] = {{0, N_("Program AE")},
{42, N_("3D Image")}, {42, N_("3D Image")},
{43, N_("Cont. Priority AE")}, {43, N_("Cont. Priority AE")},
{45, N_("Document")}, {45, N_("Document")},
{46, N_("Party")}}; {46, N_("Party")},
};
//! Sony Tag 9404b SonyMisc2b tags //! Sony Tag 9404b SonyMisc2b tags
constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = { constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = {
@ -1938,7 +2106,8 @@ constexpr TagInfo SonyMakerNote::tagInfoSonyMisc2b_[] = {
unsignedByte, -1, printSonyMisc2bFocusPosition2}, unsignedByte, -1, printSonyMisc2bFocusPosition2},
// End of list marker // End of list marker
{0xffff, "(UnknownSonyMisc2bTag)", "(Unknown SonyMisc2b tag)", "(Unknown SonyMisc2b tag)", IfdId::sonyMisc2bId, {0xffff, "(UnknownSonyMisc2bTag)", "(Unknown SonyMisc2b tag)", "(Unknown SonyMisc2b tag)", IfdId::sonyMisc2bId,
SectionId::makerTags, unsignedByte, -1, printValue}}; SectionId::makerTags, unsignedByte, -1, printValue},
};
const TagInfo* SonyMakerNote::tagListSonyMisc2b() { const TagInfo* SonyMakerNote::tagListSonyMisc2b() {
return tagInfoSonyMisc2b_; 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 //! 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")}, {1, N_("1 shot")},
{2, N_("2 shots")}, {2, N_("2 shots")},
{3, N_("3 shots")}, {3, N_("3 shots")},
@ -2000,23 +2170,35 @@ constexpr TagDetails sonyMisc3cSequenceLength1[] = {{0, N_("Continuous")},
{12, N_("12 shots")}, {12, N_("12 shots")},
{16, N_("16 shots")}, {16, N_("16 shots")},
{100, N_("Continuous - iSweep Panorama")}, {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 //! 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")}, constexpr TagDetails sonyMisc3cSequenceLength2[] = {
{3, N_("3 files")}, {5, N_("5 files")}, {7, N_("7 files")}, {0, N_("Continuous")}, {1, N_("1 file")}, {2, N_("2 files")}, {3, N_("3 files")},
{9, N_("9 files")}, {10, N_("10 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 //! Lookup table to translate Sony camera SonyMisc3c, camera orientation values to readable labels
constexpr TagDetails sonyMisc3cCameraOrientation[] = { 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 //! Lookup table to translate SonyMisc3c Quality2 (a) values to readable labels
constexpr TagDetails sonyMisc3cQuality2a[] = { 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 //! 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) //! SonyMisc3c tags (Tag 9400c)
constexpr TagInfo SonyMakerNote::tagInfoSonyMisc3c_[] = { 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. // TODO: Add FaceInfo1 (72) and FaceInfo2 (94) which are sub-groups of tags.
// End of list marker // End of list marker
{0xffff, "(UnknownsonySInfo1Tag)", "(Unknown SonySInfo1 Tag)", "(Unknown SonySInfo1 Tag)", IfdId::sonySInfo1Id, {0xffff, "(UnknownsonySInfo1Tag)", "(Unknown SonySInfo1 Tag)", "(Unknown SonySInfo1 Tag)", IfdId::sonySInfo1Id,
SectionId::makerTags, unsignedByte, -1, printValue}}; SectionId::makerTags, unsignedByte, -1, printValue},
};
const TagInfo* SonyMakerNote::tagListSonySInfo1() { const TagInfo* SonyMakerNote::tagListSonySInfo1() {
return tagInfoSonySInfo1_; return tagInfoSonySInfo1_;

@ -166,10 +166,15 @@ constexpr GroupInfo groupInfo[] = {
{IfdId::sonyMisc3cId, "Makernote", "SonyMisc3c", SonyMakerNote::tagListSonyMisc3c}, {IfdId::sonyMisc3cId, "Makernote", "SonyMisc3c", SonyMakerNote::tagListSonyMisc3c},
{IfdId::sonySInfo1Id, "Makernote", "SonySInfo1", SonyMakerNote::tagListSonySInfo1}, {IfdId::sonySInfo1Id, "Makernote", "SonySInfo1", SonyMakerNote::tagListSonySInfo1},
{IfdId::sony2010eId, "Makernote", "Sony2010e", SonyMakerNote::tagList2010e}, {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 //! 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 //! Orientation, tag 0x0112
constexpr TagDetails exifOrientation[] = { constexpr TagDetails exifOrientation[] = {
@ -179,7 +184,10 @@ constexpr TagDetails exifOrientation[] = {
}; };
//! PlanarConfiguration, tag 0x011c //! PlanarConfiguration, tag 0x011c
constexpr TagDetails exifPlanarConfiguration[] = {{1, N_("Chunky")}, {2, N_("Planar")}}; constexpr TagDetails exifPlanarConfiguration[] = {
{1, N_("Chunky")},
{2, N_("Planar")},
};
//! Predictor, tag 0x013d //! Predictor, tag 0x013d
constexpr TagDetails exifPredictor[] = { constexpr TagDetails exifPredictor[] = {
@ -193,7 +201,10 @@ constexpr TagDetails exifPredictor[] = {
}; };
//! InkSet, tag 0x014c //! 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 //! NewSubfileType, TIFF tag 0x00fe - this is actually a bitmask
constexpr TagDetails exifNewSubfileType[] = { constexpr TagDetails exifNewSubfileType[] = {
@ -213,12 +224,15 @@ constexpr TagDetails exifNewSubfileType[] = {
}; };
//! SubfileType, TIFF tag 0x00ff //! 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")}, {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 //! Compression, tag 0x0103
constexpr TagDetails exifCompression[] = {{1, N_("Uncompressed")}, constexpr TagDetails exifCompression[] = {
{1, N_("Uncompressed")},
{2, N_("CCITT RLE")}, {2, N_("CCITT RLE")},
{3, N_("T4/Group 3 Fax")}, {3, N_("T4/Group 3 Fax")},
{4, N_("T6/Group 4 Fax")}, {4, N_("T6/Group 4 Fax")},
@ -250,7 +264,8 @@ constexpr TagDetails exifCompression[] = {{1, N_("Uncompressed")},
{34713, N_("Nikon NEF Compressed")}, {34713, N_("Nikon NEF Compressed")},
{34892, N_("JPEG (lossy)")}, // DNG 1.4 {34892, N_("JPEG (lossy)")}, // DNG 1.4
{65000, N_("Kodak DCR Compressed")}, {65000, N_("Kodak DCR Compressed")},
{65535, N_("Pentax PEF Compressed")}}; {65535, N_("Pentax PEF Compressed")},
};
//! PhotometricInterpretation, tag 0x0106 //! PhotometricInterpretation, tag 0x0106
constexpr TagDetails exifPhotometricInterpretation[] = { constexpr TagDetails exifPhotometricInterpretation[] = {
@ -269,33 +284,38 @@ constexpr TagDetails exifPhotometricInterpretation[] = {
{32845, N_("Pixar LogLuv")}, {32845, N_("Pixar LogLuv")},
{34892, N_("Linear Raw")}, {34892, N_("Linear Raw")},
{51177, N_("Depth Map")}, // DNG 1.5 {51177, N_("Depth Map")}, // DNG 1.5
{52527, N_("Semantic Mask")} // DNG 1.6 {52527, N_("Semantic Mask")}, // DNG 1.6
}; };
//! Thresholding, tag 0x0107 //! 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")}, {2, N_("Ordered dither or halftone technique")},
{3, N_("Randomized process")}}; {3, N_("Randomized process")},
};
//! SampleFormat, tag 0x0153 //! SampleFormat, tag 0x0153
constexpr TagDetails exifSampleFormat[] = { constexpr TagDetails exifSampleFormat[] = {
{1, N_("Unsigned integer data")}, {1, N_("Unsigned integer data")}, {2, N_("Two's complement signed integer data")},
{2, N_("Two's complement signed integer data")}, {3, N_("IEEE floating point data")}, {4, N_("Undefined data format")},
{3, N_("IEEE floating point data")}, {4, N_("Undefined data format")}, // To silence compiler warning
{4, N_("Undefined data format")},
{4, N_("Undefined data format")} // To silence compiler warning
}; };
//! Indexed, tag 0x015a //! 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 //! exifJpegLosslessPredictor, tag 0x0205
constexpr TagDetails exifJpegLosslessPredictor[] = {{1, N_("A")}, {2, N_("B")}, {3, N_("C")}, constexpr TagDetails exifJpegLosslessPredictor[] = {
{4, N_("A+B-C")}, {5, N_("A+((B-C)/2)")}, {6, N_("B+((A-C)/2)")}, {1, N_("A")}, {2, N_("B")}, {3, N_("C")}, {4, N_("A+B-C")},
{7, N_("(A+B)/2")}}; {5, N_("A+((B-C)/2)")}, {6, N_("B+((A-C)/2)")}, {7, N_("(A+B)/2")},
};
//! LightSource, tag 0x9208 //! LightSource, tag 0x9208
constexpr TagDetails exifLightSource[] = {{0, N_("Unknown")}, constexpr TagDetails exifLightSource[] = {
{0, N_("Unknown")},
{1, N_("Daylight")}, {1, N_("Daylight")},
{2, N_("Fluorescent")}, {2, N_("Fluorescent")},
{3, N_("Tungsten (incandescent light)")}, {3, N_("Tungsten (incandescent light)")},
@ -315,10 +335,12 @@ constexpr TagDetails exifLightSource[] = {{0, N_("Unknown")},
{22, N_("D75")}, {22, N_("D75")},
{23, N_("D50")}, {23, N_("D50")},
{24, N_("ISO studio tungsten")}, {24, N_("ISO studio tungsten")},
{255, N_("Other light source")}}; {255, N_("Other light source")},
};
//! Flash, Exif tag 0x9209 //! Flash, Exif tag 0x9209
constexpr TagDetails exifFlash[] = {{0x00, N_("No flash")}, constexpr TagDetails exifFlash[] = {
{0x00, N_("No flash")},
{0x01, N_("Fired")}, {0x01, N_("Fired")},
{0x05, N_("Fired, return light not detected")}, {0x05, N_("Fired, return light not detected")},
{0x07, N_("Fired, return light 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")}, {0x58, N_("No, auto, red-eye reduction")},
{0x59, N_("Yes, auto, red-eye reduction")}, {0x59, N_("Yes, auto, red-eye reduction")},
{0x5d, N_("Yes, auto, red-eye reduction, return light not detected")}, {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 //! FocalPlaneResolutionUnit, TIFF/EP tag 0x9210
constexpr TagDetails tiffFocalPlaneResolutionUnit[] = { 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 //! SensingMethod, TIFF/EP tag 0x9217
constexpr TagDetails tiffSensingMethod[] = { constexpr TagDetails tiffSensingMethod[] = {
{0, N_("Undefined")}, {1, N_("Monochrome area")}, {2, N_("One-chip color area")}, {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")}, {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 //! CFALayout, DNG tag 0xc617
constexpr TagDetails dngCfaLayout[] = { 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 {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 {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 {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 //! 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 //! ColorimetricReference, DNG 1.2 tag 0xc6bf
constexpr TagDetails dngColorimetricReference[] = {{0, N_("XYZ values are scene-referred")}, constexpr TagDetails dngColorimetricReference[] = {
{1, N_("XYZ values are output-referred")}}; {0, N_("XYZ values are scene-referred")},
{1, N_("XYZ values are output-referred")},
};
//! ProfileEmbedPolicy, DNG 1.2 tag 0xc6fd //! ProfileEmbedPolicy, DNG 1.2 tag 0xc6fd
constexpr TagDetails dngProfileEmbedPolicy[] = { 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 //! PreviewColorSpace, DNG 1.2 tag 0xc71a
constexpr TagDetails dngPreviewColorSpace[] = { 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 //! 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 //! 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 //! 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 //! 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 //! 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) //! Base IFD Tags (IFD0 and IFD1)
constexpr TagInfo ifdTagInfo[] = { constexpr TagInfo ifdTagInfo[] = {
@ -1668,7 +1720,11 @@ const TagInfo* ifdTagList() {
//! CompositeImage, tag 0xa460 //! CompositeImage, tag 0xa460
constexpr TagDetails exifCompositeImage[] = { 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 // Exif IFD Tags
constexpr TagInfo exifTagInfo[] = { constexpr TagInfo exifTagInfo[] = {
@ -2062,32 +2118,60 @@ const TagInfo* exifTagList() {
} }
//! GPS latitude reference, tag 0x0001; also GPSDestLatitudeRef, tag 0x0013 //! 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 //! 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 //! 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 //! 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 //! GPS measurement mode, tag 0x000a
constexpr TagDetails exifGPSMeasureMode[] = {{'2', N_("2-dimensional measurement")}, constexpr TagDetails exifGPSMeasureMode[] = {
{'3', N_("3-dimensional measurement")}}; {'2', N_("2-dimensional measurement")},
{'3', N_("3-dimensional measurement")},
};
//! GPS speed reference, tag 0x000c //! 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 //! 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 //! 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 //! 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 // GPS Info Tags
constexpr TagInfo gpsTagInfo[] = { constexpr TagInfo gpsTagInfo[] = {
@ -2746,7 +2830,10 @@ std::ostream& print0x0112(std::ostream& os, const Value& value, const ExifData*
} }
//! YCbCrPositioning, tag 0x0213 //! 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) { std::ostream& print0x0213(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifYCbCrPositioning)(os, value, 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[] = { constexpr TagDetails exifExposureProgram[] = {
{0, N_("Not defined")}, {1, N_("Manual")}, {2, N_("Auto")}, {0, N_("Not defined")}, {1, N_("Manual")}, {2, N_("Auto")},
{3, N_("Aperture priority")}, {4, N_("Shutter priority")}, {5, N_("Creative program")}, {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) { std::ostream& print0x8822(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifExposureProgram)(os, value, 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[] = { constexpr TagDetails exifColorSpace[] = {
{1, N_("sRGB")}, {1, N_("sRGB")},
{2, N_("Adobe RGB")}, // Not defined to Exif 2.2 spec. But used by a lot of cameras. {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) { std::ostream& print0xa001(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifColorSpace)(os, value, 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 //! 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) { std::ostream& print0xa301(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifSceneType)(os, value, metadata); return EXV_PRINT_TAG(exifSceneType)(os, value, metadata);
} }
//! CustomRendered, tag 0xa401 //! 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) { std::ostream& print0xa401(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifCustomRendered)(os, value, metadata); return EXV_PRINT_TAG(exifCustomRendered)(os, value, metadata);
} }
//! ExposureMode, tag 0xa402 //! 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) { std::ostream& print0xa402(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifExposureMode)(os, value, metadata); return EXV_PRINT_TAG(exifExposureMode)(os, value, metadata);
} }
//! WhiteBalance, tag 0xa403 //! 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) { std::ostream& print0xa403(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifWhiteBalance)(os, value, 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 //! GainControl, tag 0xa407
constexpr TagDetails exifGainControl[] = {{0, N_("None")}, constexpr TagDetails exifGainControl[] = {
{1, N_("Low gain up")}, {0, N_("None")}, {1, N_("Low gain up")}, {2, N_("High gain up")},
{2, N_("High gain up")}, {3, N_("Low gain down")}, {4, N_("High gain down")},
{3, N_("Low gain down")}, };
{4, N_("High gain down")}};
std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData* metadata) { std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifGainControl)(os, value, metadata); return EXV_PRINT_TAG(exifGainControl)(os, value, metadata);
} }
//! Saturation, tag 0xa409 //! 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) { std::ostream& print0xa409(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifSaturation)(os, value, 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 //! 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) { std::ostream& printNormalSoftHard(std::ostream& os, const Value& value, const ExifData* metadata) {
return EXV_PRINT_TAG(exifNormalSoftHard)(os, value, metadata); return EXV_PRINT_TAG(exifNormalSoftHard)(os, value, metadata);

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

Loading…
Cancel
Save