add missing commas

Formats the structs properly.

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

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

File diff suppressed because it is too large Load Diff

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

@ -19,61 +19,75 @@
// class member definitions
namespace Exiv2::Internal {
//! OffOn, multiple tags
constexpr TagDetails fujiOffOn[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails fujiOffOn[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Sharpness, tag 0x1001
constexpr TagDetails fujiSharpness[] = {
{0, N_("-4 (softest)")}, {1, N_("-3 (very soft)")}, {2, N_("-2 (soft)")},
{3, N_("0 (normal)")}, {4, N_("+2 (hard)")}, {5, N_("+3 (very hard)")},
{6, N_("+4 (hardest)")}, {130, N_("-1 (medium soft)")}, {132, N_("+1 (medium hard)")}};
{6, N_("+4 (hardest)")}, {130, N_("-1 (medium soft)")}, {132, N_("+1 (medium hard)")},
};
//! WhiteBalance, tag 0x1002
constexpr TagDetails fujiWhiteBalance[] = {{0, N_("Auto")},
{1, N_("Auto White Priority")},
{2, N_("Auto Ambience Priority")},
{256, N_("Daylight")},
{512, N_("Cloudy")},
{768, N_("Fluorescent (daylight)")},
{769, N_("Fluorescent (warm white)")},
{770, N_("Fluorescent (cool white)")},
{1024, N_("Incandescent")},
{1536, N_("Underwater")},
{3480, N_("Custom")},
{3840, N_("Custom 1")},
{3841, N_("Custom 2")},
{3842, N_("Custom 3")},
{3843, N_("Custom 4")},
{3844, N_("Custom 5")},
{4080, N_("Kelvin")}};
constexpr TagDetails fujiWhiteBalance[] = {
{0, N_("Auto")},
{1, N_("Auto White Priority")},
{2, N_("Auto Ambience Priority")},
{256, N_("Daylight")},
{512, N_("Cloudy")},
{768, N_("Fluorescent (daylight)")},
{769, N_("Fluorescent (warm white)")},
{770, N_("Fluorescent (cool white)")},
{1024, N_("Incandescent")},
{1536, N_("Underwater")},
{3480, N_("Custom")},
{3840, N_("Custom 1")},
{3841, N_("Custom 2")},
{3842, N_("Custom 3")},
{3843, N_("Custom 4")},
{3844, N_("Custom 5")},
{4080, N_("Kelvin")},
};
//! Color, tag 0x1003
constexpr TagDetails fujiColor[] = {{0, N_("0 (normal)")},
{128, N_("+1 (medium high)")},
{192, N_("+3 (very high)")},
{224, N_("+4 (highest)")},
{256, N_("+2 (high)")},
{384, N_("-1 (medium low)")},
{512, N_("-2 (low)")}, // this is "Low" with exiftool
{768, N_("Monochrome")},
{769, N_("Monochrome + R Filter")},
{770, N_("Monochrome + Ye Filter")},
{771, N_("Monochrome + G Filter")},
{784, N_("Sepia")},
{1024, N_("-2 (low)")},
{1216, N_("-3 (very low)")},
{1248, N_("-4 (lowest)")},
{1280, N_("ACROS")},
{1281, N_("ACROS + R Filter")},
{1282, N_("ACROS + Ye Filter")},
{1283, N_("ACROS + G Filter")},
{32768, N_("Film Simulation")}};
constexpr TagDetails fujiColor[] = {
{0, N_("0 (normal)")},
{128, N_("+1 (medium high)")},
{192, N_("+3 (very high)")},
{224, N_("+4 (highest)")},
{256, N_("+2 (high)")},
{384, N_("-1 (medium low)")},
{512, N_("-2 (low)")}, // this is "Low" with exiftool
{768, N_("Monochrome")},
{769, N_("Monochrome + R Filter")},
{770, N_("Monochrome + Ye Filter")},
{771, N_("Monochrome + G Filter")},
{784, N_("Sepia")},
{1024, N_("-2 (low)")},
{1216, N_("-3 (very low)")},
{1248, N_("-4 (lowest)")},
{1280, N_("ACROS")},
{1281, N_("ACROS + R Filter")},
{1282, N_("ACROS + Ye Filter")},
{1283, N_("ACROS + G Filter")},
{32768, N_("Film Simulation")},
};
//! Tone, tag 0x1004
constexpr TagDetails fujiTone[] = {{0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")},
{384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")}};
constexpr TagDetails fujiTone[] = {
{0, N_("Normal")}, {80, N_("Medium High")}, {256, N_("High")},
{384, N_("Medium Low")}, {512, N_("Low")}, {32768, N_("Film Simulation")},
};
//! Tone, tag 0x1006
constexpr TagDetails fujiContrast[] = {{0, N_("Normal")}, {256, N_("High")}, {768, N_("Low")}};
constexpr TagDetails fujiContrast[] = {
{0, N_("Normal")},
{256, N_("High")},
{768, N_("Low")},
};
//! WhiteBalanceFineTune, tag 0x100a
static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value& value, const ExifData*) {
@ -91,99 +105,120 @@ static std::ostream& printFujiWhiteBalanceFineTune(std::ostream& os, const Value
}
//! NoiseReduction, tag 0x100b
constexpr TagDetails fujiNoiseReduction[]{{64, N_("Low")}, {128, N_("Normal")}, {256, N_("n/a")}};
constexpr TagDetails fujiNoiseReduction[]{
{64, N_("Low")},
{128, N_("Normal")},
{256, N_("n/a")},
};
//! High ISO NR, tag 0x100e
constexpr TagDetails fujiHighIsoNR[] = {
{0, N_("0 (normal)")}, {256, N_("+2 (strong)")}, {384, N_("+1 (medium strong)")},
{448, N_("+3 (very strong)")}, {480, N_("+4 (strongest)")}, {512, N_("-2 (weak)")},
{640, N_("-1 (medium weak)")}, {704, N_("-3 (very weak)")}, {736, N_("-4 (weakest)")}};
{640, N_("-1 (medium weak)")}, {704, N_("-3 (very weak)")}, {736, N_("-4 (weakest)")},
};
//! Clarity, tag 0x100f
constexpr TagDetails fujiClarity[] = {{-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")},
{-1000, N_("-1")}, {0, N_("0")}, {1000, N_("+1")}, {2000, N_("+2")},
{3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")}};
constexpr TagDetails fujiClarity[] = {
{-5000, N_("-5")}, {-4000, N_("-4")}, {-3000, N_("-3")}, {-2000, N_("-2")}, {-1000, N_("-1")}, {0, N_("0")},
{1000, N_("+1")}, {2000, N_("+2")}, {3000, N_("+3")}, {4000, N_("+4")}, {5000, N_("+5")},
};
//! FlashMode, tag 0x1010
constexpr TagDetails fujiFlashMode[] = {{0x0000, N_("Auto")},
{0x0001, N_("On")},
{0x0002, N_("Off")},
{0x0003, N_("Red-eye reduction")},
{0x0004, N_("External")},
{0x0010, N_("Commander")},
{0x8000, N_("No flash")},
{0x8120, N_("TTL")},
{0x8320, N_("TTL Auto - Did not fire")},
{0x9840, N_("Manual")},
{0x9860, N_("Flash Commander")},
{0x9880, N_("Multi-flash")},
{0xa920, N_("1st Curtain (front)")},
{0xaa20, N_("TTL Slow - 1st Curtain (front)")},
{0xab20, N_("TTL Auto - 1st Curtain (front)")},
{0xad20, N_("TTL - Red-eye Flash - 1st Curtain (front)")},
{0xae20, N_("TTL - Slow - Red-eye Flash - 1st Curtain (front)")},
{0xaf20, N_("TTL - Auto - Red-eye Flash - 1st Curtain (front)")},
{0xc920, N_("2nd Curtain (rear)")},
{0xca20, N_("TTL Slow - 2nd Curtain (rear)")},
{0xcb20, N_("TTL Auto - 2nd Curtain (rear)")},
{0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")},
{0xce20, N_("TTL Slow - Red-eye Flash - 2nd Curtain (rear)")},
{0xcf20, N_("TTL Auto - Red-eye Flash - 2nd Curtain (rear)")},
{0xe920, N_("High Speed Sync (HSS)")}};
constexpr TagDetails fujiFlashMode[] = {
{0x0000, N_("Auto")},
{0x0001, N_("On")},
{0x0002, N_("Off")},
{0x0003, N_("Red-eye reduction")},
{0x0004, N_("External")},
{0x0010, N_("Commander")},
{0x8000, N_("No flash")},
{0x8120, N_("TTL")},
{0x8320, N_("TTL Auto - Did not fire")},
{0x9840, N_("Manual")},
{0x9860, N_("Flash Commander")},
{0x9880, N_("Multi-flash")},
{0xa920, N_("1st Curtain (front)")},
{0xaa20, N_("TTL Slow - 1st Curtain (front)")},
{0xab20, N_("TTL Auto - 1st Curtain (front)")},
{0xad20, N_("TTL - Red-eye Flash - 1st Curtain (front)")},
{0xae20, N_("TTL - Slow - Red-eye Flash - 1st Curtain (front)")},
{0xaf20, N_("TTL - Auto - Red-eye Flash - 1st Curtain (front)")},
{0xc920, N_("2nd Curtain (rear)")},
{0xca20, N_("TTL Slow - 2nd Curtain (rear)")},
{0xcb20, N_("TTL Auto - 2nd Curtain (rear)")},
{0xcd20, N_("TTL - Red-eye Flash - 2nd Curtain (rear)")},
{0xce20, N_("TTL Slow - Red-eye Flash - 2nd Curtain (rear)")},
{0xcf20, N_("TTL Auto - Red-eye Flash - 2nd Curtain (rear)")},
{0xe920, N_("High Speed Sync (HSS)")},
};
//! FocusMode, tag 0x1021
constexpr TagDetails fujiFocusMode[] = {{0, N_("Auto")}, {1, N_("Manual")}, {65535, N_("Movie")}};
constexpr TagDetails fujiFocusMode[] = {
{0, N_("Auto")},
{1, N_("Manual")},
{65535, N_("Movie")},
};
//! FocusArea, tag 0x1022
constexpr TagDetails fujiFocusArea[] = {
{0, N_("Wide")}, {1, N_("Single Point")}, {256, N_("Zone")}, {512, N_("Tracking")}};
{0, N_("Wide")},
{1, N_("Single Point")},
{256, N_("Zone")},
{512, N_("Tracking")},
};
//! PictureMode, tag 0x1031
constexpr TagDetails fujiPictureMode[] = {{0, N_("Auto")},
{1, N_("Portrait")},
{2, N_("Landscape")},
{3, N_("Macro")},
{4, N_("Sports")},
{5, N_("Night scene")},
{6, N_("Program AE")},
{7, N_("Natural light")},
{8, N_("Anti-blur")},
{9, N_("Beach & Snow")},
{10, N_("Sunset")},
{11, N_("Museum")},
{12, N_("Party")},
{13, N_("Flower")},
{14, N_("Text")},
{15, N_("Natural Light & Flash")},
{16, N_("Beach")},
{17, N_("Snow")},
{18, N_("Fireworks")},
{19, N_("Underwater")},
{20, N_("Portrait with Skin Correction")},
{22, N_("Panorama")},
{23, N_("Night (tripod)")},
{24, N_("Pro Low-light")},
{25, N_("Pro Focus")},
{26, N_("Portrait 2")},
{27, N_("Dog Face Detection")},
{28, N_("Cat Face Detection")},
{48, N_("HDR")},
{64, N_("Advanced Filter")},
{256, N_("Aperture-priority AE")},
{512, N_("Shutter speed priority AE")},
{768, N_("Manual")}};
constexpr TagDetails fujiPictureMode[] = {
{0, N_("Auto")},
{1, N_("Portrait")},
{2, N_("Landscape")},
{3, N_("Macro")},
{4, N_("Sports")},
{5, N_("Night scene")},
{6, N_("Program AE")},
{7, N_("Natural light")},
{8, N_("Anti-blur")},
{9, N_("Beach & Snow")},
{10, N_("Sunset")},
{11, N_("Museum")},
{12, N_("Party")},
{13, N_("Flower")},
{14, N_("Text")},
{15, N_("Natural Light & Flash")},
{16, N_("Beach")},
{17, N_("Snow")},
{18, N_("Fireworks")},
{19, N_("Underwater")},
{20, N_("Portrait with Skin Correction")},
{22, N_("Panorama")},
{23, N_("Night (tripod)")},
{24, N_("Pro Low-light")},
{25, N_("Pro Focus")},
{26, N_("Portrait 2")},
{27, N_("Dog Face Detection")},
{28, N_("Cat Face Detection")},
{48, N_("HDR")},
{64, N_("Advanced Filter")},
{256, N_("Aperture-priority AE")},
{512, N_("Shutter speed priority AE")},
{768, N_("Manual")},
};
//! EXRMode, tag 0x1034
constexpr TagDetails fujiExrMode[] = {{0x100, N_("HR (High Resolution)")},
{0x200, N_("SN (Signal to Noise priority)")},
{0x300, N_("DR (Dynamic Range priority)")}};
constexpr TagDetails fujiExrMode[] = {
{0x100, N_("HR (High Resolution)")},
{0x200, N_("SN (Signal to Noise priority)")},
{0x300, N_("DR (Dynamic Range priority)")},
};
//! ShadowTone, tag 0x1040
//! HighlightTone, tag 0x041
constexpr TagDetails fujiSHTone[] = {{-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")},
{-32, N_("+2")}, {-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")},
{0, N_("0")}, {8, N_("-0.5")}, {16, N_("-1")}, {24, N_("-1.5")},
{32, N_("-2")}};
constexpr TagDetails fujiSHTone[] = {
{-64, N_("+4")}, {-56, N_("+3.5")}, {-48, N_("+3")}, {-40, N_("+2.5")}, {-32, N_("+2")},
{-24, N_("+1.5")}, {-16, N_("+1")}, {-8, N_("+0.5")}, {0, N_("0")}, {8, N_("-0.5")},
{16, N_("-1")}, {24, N_("-1.5")}, {32, N_("-2")},
};
//! DigitalZoom, tag 0x1044
static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value, const ExifData*) {
@ -197,7 +232,11 @@ static std::ostream& printFujiDigitalZoom(std::ostream& os, const Value& value,
//! GrainEffectRoughness, tag 0x104c
//! ColorChromeEffect, tag 0x1048
//! ColorChromeFXBlue, tag 0x104e
constexpr TagDetails fujiOff0Weak32Strong64[] = {{0, N_("Off")}, {32, N_("Weak")}, {64, N_("Strong")}};
constexpr TagDetails fujiOff0Weak32Strong64[] = {
{0, N_("Off")},
{32, N_("Weak")},
{64, N_("Strong")},
};
//! CropMode, tag 0x104d
constexpr TagDetails fujiCropMode[] = {
@ -219,20 +258,27 @@ static std::ostream& printFujiMonochromaticColor(std::ostream& os, const Value&
}
//! ShutterType, tag 0x1050
constexpr TagDetails fujiShutterType[] = {{0, N_("Mechanical")},
{1, N_("Electronic")},
{2, N_("Electronic (long shutter speed)")},
{3, N_("Electronic Front Curtain")}};
constexpr TagDetails fujiShutterType[] = {
{0, N_("Mechanical")},
{1, N_("Electronic")},
{2, N_("Electronic (long shutter speed)")},
{3, N_("Electronic Front Curtain")},
};
//! Continuous, tag 0x1100
constexpr TagDetails fujiContinuous[] = {{0, N_("Off")},
{1, N_("On")},
{2, N_("Pre-shot/No flash & flash")}, // TODO newer cameras: Pre-shot
{6, N_("Pixel Shift")}};
constexpr TagDetails fujiContinuous[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Pre-shot/No flash & flash")}, // TODO newer cameras: Pre-shot
{6, N_("Pixel Shift")},
};
//! DriveSetting Byte 1, tag 0x1100
constexpr TagDetails fujiDriveSettingByte1[] = {
{0, N_("Single")}, {1, N_("Continuous Low")}, {2, N_("Continuous High")}};
{0, N_("Single")},
{1, N_("Continuous Low")},
{2, N_("Continuous High")},
};
//! DriveSetting, tag 0x1103
static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value, const ExifData*) {
@ -258,77 +304,110 @@ static std::ostream& printFujiDriveSetting(std::ostream& os, const Value& value,
}
//! PanoramaDirection, tag 0x1154
constexpr TagDetails fujiPanoramaDirection[] = {{1, N_("Right")}, {2, N_("Up")}, {3, N_("Left")}, {4, N_("Down")}};
constexpr TagDetails fujiPanoramaDirection[] = {
{1, N_("Right")},
{2, N_("Up")},
{3, N_("Left")},
{4, N_("Down")},
};
//! AdvancedFilter, tag 0x1201
constexpr TagDetails fujiAdvancedFilter[] = {{0x10000, N_("Pop Color")},
{0x20000, N_("Hi Key")},
{0x30000, N_("Toy Camera")},
{0x40000, N_("Miniature")},
{0x50000, N_("Dynamic Tone")},
{0x60001, N_("Partial Color Red")},
{0x60002, N_("Partial Color Yellow")},
{0x60003, N_("Partial Color Green")},
{0x60004, N_("Partial Color Blue")},
{0x60005, N_("Partial Color Orange")},
{0x60006, N_("Partial Color Purple")},
{0x70000, N_("Soft Focus")},
{0x90000, N_("Low Key")}};
constexpr TagDetails fujiAdvancedFilter[] = {
{0x10000, N_("Pop Color")},
{0x20000, N_("Hi Key")},
{0x30000, N_("Toy Camera")},
{0x40000, N_("Miniature")},
{0x50000, N_("Dynamic Tone")},
{0x60001, N_("Partial Color Red")},
{0x60002, N_("Partial Color Yellow")},
{0x60003, N_("Partial Color Green")},
{0x60004, N_("Partial Color Blue")},
{0x60005, N_("Partial Color Orange")},
{0x60006, N_("Partial Color Purple")},
{0x70000, N_("Soft Focus")},
{0x90000, N_("Low Key")},
};
//! FinePixColor, tag 0x1210
constexpr TagDetails fujiFinePixColor[] = {{0, N_("Standard")}, {16, N_("Chrome")}, {48, N_("Black & white")}};
constexpr TagDetails fujiFinePixColor[] = {
{0, N_("Standard")},
{16, N_("Chrome")},
{48, N_("Black & white")},
};
//! DynamicRange, tag 0x1400
constexpr TagDetails fujiDynamicRange[] = {{1, N_("Standard")}, {3, N_("Wide")}};
constexpr TagDetails fujiDynamicRange[] = {
{1, N_("Standard")},
{3, N_("Wide")},
};
//! FilmMode, tag 0x1401
constexpr TagDetails fujiFilmMode[] = {{0, N_("PROVIA (F0/Standard)")},
{256, N_("F1/Studio Portrait")},
{272, N_("F1a/Studio Portrait Enhanced Saturation")},
{288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")},
{304, N_("F1c/Studio Portrait Increased Sharpness")},
{512, N_("Velvia (F2/Fujichrome)")},
{768, N_("F3/Studio Portrait Ex")},
{1024, N_("F4/Velvia")},
{1280, N_("PRO Neg. Std")},
{1281, N_("PRO Neg. Hi")},
{1536, N_("CLASSIC CHROME")},
{1792, N_("ETERNA")},
{2048, N_("CLASSIC Neg.")},
{2304, N_("ETERNA Bleach Bypass")},
{2560, N_("Nostalgic Neg.")}};
constexpr TagDetails fujiFilmMode[] = {
{0, N_("PROVIA (F0/Standard)")},
{256, N_("F1/Studio Portrait")},
{272, N_("F1a/Studio Portrait Enhanced Saturation")},
{288, N_("ASTIA (F1b/Studio Portrait Smooth Skin Tone)")},
{304, N_("F1c/Studio Portrait Increased Sharpness")},
{512, N_("Velvia (F2/Fujichrome)")},
{768, N_("F3/Studio Portrait Ex")},
{1024, N_("F4/Velvia")},
{1280, N_("PRO Neg. Std")},
{1281, N_("PRO Neg. Hi")},
{1536, N_("CLASSIC CHROME")},
{1792, N_("ETERNA")},
{2048, N_("CLASSIC Neg.")},
{2304, N_("ETERNA Bleach Bypass")},
{2560, N_("Nostalgic Neg.")},
};
//! DynamicRange, tag 0x1402
constexpr TagDetails fujiDynamicRangeSetting[] = {{0, N_("Auto")},
{1, N_("Manual")},
{256, N_("Standard (100%)")},
{512, N_("Wide mode 1 (230%)")},
{513, N_("Wide mode 2 (400%)")},
{32768, N_("Film simulation mode")}};
constexpr TagDetails fujiDynamicRangeSetting[] = {
{0, N_("Auto")},
{1, N_("Manual")},
{256, N_("Standard (100%)")},
{512, N_("Wide mode 1 (230%)")},
{513, N_("Wide mode 2 (400%)")},
{32768, N_("Film simulation mode")},
};
//! SceneRecognition, tag 0x1425
constexpr TagDetails fujiSceneRecognition[] = {{0x000, N_("Unrecognized")},
{0x100, N_("Portrait Image")},
{0x103, N_("Night Portrait")},
{0x105, N_("Backlit Portrait")},
{0x200, N_("Landscape Image")},
{0x300, N_("Night Scene")},
{0x400, N_("Macro")}};
constexpr TagDetails fujiSceneRecognition[] = {
{0x000, N_("Unrecognized")}, {0x100, N_("Portrait Image")},
{0x103, N_("Night Portrait")}, {0x105, N_("Backlit Portrait")},
{0x200, N_("Landscape Image")}, {0x300, N_("Night Scene")},
{0x400, N_("Macro")},
};
//! ImageGeneration, tag 0x1426
constexpr TagDetails fujiImageGeneration[] = {{0, N_("Original Image")}, {1, N_("Re-developed from RAW")}};
constexpr TagDetails fujiImageGeneration[] = {
{0, N_("Original Image")},
{1, N_("Re-developed from RAW")},
};
//! DRangePriority, tag 0x1443
constexpr TagDetails fujiDRangePriority[] = {{0, N_("Auto")}, {1, N_("Fixed")}};
constexpr TagDetails fujiDRangePriority[] = {
{0, N_("Auto")},
{1, N_("Fixed")},
};
//! DRangePriorityAuto, tag 0x1444
constexpr TagDetails fujiDRangePriorityAuto[] = {{1, N_("Weak")}, {2, N_("Strong")}};
constexpr TagDetails fujiDRangePriorityAuto[] = {
{1, N_("Weak")},
{2, N_("Strong")},
};
//! DRangePriorityFixed, tag 0x1445
constexpr TagDetails fujiDRangePriorityFixed[] = {{1, N_("Weak")}, {2, N_("Strong")}};
constexpr TagDetails fujiDRangePriorityFixed[] = {
{1, N_("Weak")},
{2, N_("Strong")},
};
//! FaceElementType, every byte at tag 0x4201
constexpr TagDetails fujiFaceElementType[] = {{1, N_("Face")}, {2, N_("Left Eye")}, {3, N_("Right Eye")}};
constexpr TagDetails fujiFaceElementType[] = {
{1, N_("Face")},
{2, N_("Left Eye")},
{3, N_("Right Eye")},
};
//! FaceElementType, tag 0x4203
static std::ostream& printFujiFaceElementTypes(std::ostream& os, const Value& value, const ExifData*) {

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

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

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

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

@ -17,88 +17,127 @@
// class member definitions
namespace Exiv2::Internal {
//! OffOn, multiple tags
constexpr TagDetails olympusOffOn[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails olympusOffOn[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! NoYes, multiple tags
constexpr TagDetails olympusNoYes[] = {{0, N_("No")}, {1, N_("Yes")}};
constexpr TagDetails olympusNoYes[] = {
{0, N_("No")},
{1, N_("Yes")},
};
//! Quality, tag 0x0201
constexpr TagDetails olympusQuality[] = {{1, N_("Standard Quality (SQ)")},
{2, N_("High Quality (HQ)")},
{3, N_("Super High Quality (SHQ)")},
{6, N_("Raw")}};
constexpr TagDetails olympusQuality[] = {
{1, N_("Standard Quality (SQ)")},
{2, N_("High Quality (HQ)")},
{3, N_("Super High Quality (SHQ)")},
{6, N_("Raw")},
};
//! Macro, tag 0x0202
constexpr TagDetails olympusMacro[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Super macro")}};
constexpr TagDetails olympusMacro[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Super macro")},
};
//! OneTouchWB, tag 0x0302
constexpr TagDetails olympusOneTouchWb[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("On (preset)")}};
constexpr TagDetails olympusOneTouchWb[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("On (preset)")},
};
//! SceneMode, tag 0x403 and CameraSettings tag 0x509
constexpr TagDetails olympusSceneMode[] = {{0, N_("Standard")},
{6, N_("Auto")},
{7, N_("Sport")},
{8, N_("Portrait")},
{9, N_("Landscape+Portrait")},
{10, N_("Landscape")},
{11, N_("Night Scene")},
{12, N_("Self Portrait")},
{13, N_("Panorama")},
{14, N_("2 in 1")},
{15, N_("Movie")},
{16, N_("Landscape+Portrait")},
{17, N_("Night+Portrait")},
{18, N_("Indoor")},
{19, N_("Fireworks")},
{20, N_("Sunset")},
{22, N_("Macro")},
{23, N_("Super Macro")},
{24, N_("Food")},
{25, N_("Documents")},
{26, N_("Museum")},
{27, N_("Shoot & Select")},
{28, N_("Beach & Snow")},
{29, N_("Self Portrait+Timer")},
{30, N_("Candle")},
{31, N_("Available Light")},
{32, N_("Behind Glass")},
{33, N_("My Mode")},
{34, N_("Pet")},
{35, N_("Underwater Wide1")},
{36, N_("Underwater Macro")},
{37, N_("Shoot & Select1")},
{38, N_("Shoot & Select2")},
{39, N_("High Key")},
{40, N_("Digital Image Stabilization")},
{41, N_("Auction")},
{42, N_("Beach")},
{43, N_("Snow")},
{44, N_("Underwater Wide2")},
{45, N_("Low Key")},
{46, N_("Children")},
{47, N_("Vivid")},
{48, N_("Nature Macro")},
{49, N_("Underwater Snapshot")},
{50, N_("Shooting Guide")}};
constexpr TagDetails olympusSceneMode[] = {
{0, N_("Standard")},
{6, N_("Auto")},
{7, N_("Sport")},
{8, N_("Portrait")},
{9, N_("Landscape+Portrait")},
{10, N_("Landscape")},
{11, N_("Night Scene")},
{12, N_("Self Portrait")},
{13, N_("Panorama")},
{14, N_("2 in 1")},
{15, N_("Movie")},
{16, N_("Landscape+Portrait")},
{17, N_("Night+Portrait")},
{18, N_("Indoor")},
{19, N_("Fireworks")},
{20, N_("Sunset")},
{22, N_("Macro")},
{23, N_("Super Macro")},
{24, N_("Food")},
{25, N_("Documents")},
{26, N_("Museum")},
{27, N_("Shoot & Select")},
{28, N_("Beach & Snow")},
{29, N_("Self Portrait+Timer")},
{30, N_("Candle")},
{31, N_("Available Light")},
{32, N_("Behind Glass")},
{33, N_("My Mode")},
{34, N_("Pet")},
{35, N_("Underwater Wide1")},
{36, N_("Underwater Macro")},
{37, N_("Shoot & Select1")},
{38, N_("Shoot & Select2")},
{39, N_("High Key")},
{40, N_("Digital Image Stabilization")},
{41, N_("Auction")},
{42, N_("Beach")},
{43, N_("Snow")},
{44, N_("Underwater Wide2")},
{45, N_("Low Key")},
{46, N_("Children")},
{47, N_("Vivid")},
{48, N_("Nature Macro")},
{49, N_("Underwater Snapshot")},
{50, N_("Shooting Guide")},
};
//! FlashDevice, tag 0x1005
constexpr TagDetails olympusFlashDevice[] = {
{0, N_("None")}, {1, N_("Internal")}, {4, N_("External")}, {5, N_("Internal + External")}};
{0, N_("None")},
{1, N_("Internal")},
{4, N_("External")},
{5, N_("Internal + External")},
};
//! FocusRange, tag 0x100a
constexpr TagDetails olympusFocusRange[] = {{0, N_("Normal")}, {1, N_("Macro")}};
constexpr TagDetails olympusFocusRange[] = {
{0, N_("Normal")},
{1, N_("Macro")},
};
//! FocusMode, tag 0x100b
constexpr TagDetails olympusFocusMode[] = {{0, N_("Auto")}, {1, N_("Manual")}};
constexpr TagDetails olympusFocusMode[] = {
{0, N_("Auto")},
{1, N_("Manual")},
};
//! Sharpness, tag 0x100f
constexpr TagDetails olympusSharpness[] = {{0, N_("Normal")}, {1, N_("Hard")}, {2, N_("Soft")}};
constexpr TagDetails olympusSharpness[] = {
{0, N_("Normal")},
{1, N_("Hard")},
{2, N_("Soft")},
};
//! Contrast, tag 0x1029
constexpr TagDetails olympusContrast[] = {{0, N_("High")}, {1, N_("Normal")}, {2, N_("Low")}};
constexpr TagDetails olympusContrast[] = {
{0, N_("High")},
{1, N_("Normal")},
{2, N_("Low")},
};
//! CCDScanMode, tag 0x1039
constexpr TagDetails olympusCCDScanMode[] = {{0, N_("Interlaced")}, {1, N_("Progressive")}};
constexpr TagDetails olympusCCDScanMode[] = {
{0, N_("Interlaced")},
{1, N_("Progressive")},
};
// Olympus Tag Info
constexpr TagInfo OlympusMakerNote::tagInfo_[] = {
@ -287,124 +326,156 @@ const TagInfo* OlympusMakerNote::tagList() {
// Olympus CameraSettings Tags
//! ExposureMode, tag 0x0200
constexpr TagDetails olympusExposureMode[] = {{1, N_("Manual")},
{2, N_("Program")},
{3, N_("Aperture-priority AE")},
{4, N_("Shutter speed priority AE")},
{5, N_("Program-shift")}};
constexpr TagDetails olympusExposureMode[] = {
{1, N_("Manual")}, {2, N_("Program")}, {3, N_("Aperture-priority AE")}, {4, N_("Shutter speed priority AE")},
{5, N_("Program-shift")},
};
//! MeteringMode, tag 0x0202
constexpr TagDetails olympusMeteringMode[] = {{2, N_("Center-weighted average")},
{3, N_("Spot")},
{5, N_("ESP")},
{261, N_("Pattern+AF")},
{515, N_("Spot+Highlight control")},
{1027, N_("Spot+Shadow control")}};
constexpr TagDetails olympusMeteringMode[] = {
{2, N_("Center-weighted average")},
{3, N_("Spot")},
{5, N_("ESP")},
{261, N_("Pattern+AF")},
{515, N_("Spot+Highlight control")},
{1027, N_("Spot+Shadow control")},
};
//! MacroMode, tag 0x0300
constexpr TagDetails olympusMacroMode[] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Super Macro")}};
constexpr TagDetails olympusMacroMode[] = {
{0, N_("Off")},
{1, N_("On")},
{2, N_("Super Macro")},
};
//! FocusMode, tag 0x0301
[[maybe_unused]] constexpr TagDetails olympusCsFocusMode[] = {{0, N_("Single AF")},
{1, N_("Sequential shooting AF")},
{2, N_("Continuous AF")},
{3, N_("Multi AF")},
{10, N_("MF")}};
[[maybe_unused]] constexpr TagDetails olympusCsFocusMode[] = {
{0, N_("Single AF")}, {1, N_("Sequential shooting AF")}, {2, N_("Continuous AF")}, {3, N_("Multi AF")},
{10, N_("MF")},
};
//! FocusProcess, tag 0x0302
constexpr TagDetails olympusFocusProcess[] = {{0, N_("AF Not Used")}, {1, N_("AF Used")}};
constexpr TagDetails olympusFocusProcess[] = {
{0, N_("AF Not Used")},
{1, N_("AF Used")},
};
//! AFSearch, tag 0x0303
constexpr TagDetails olympusAFSearch[] = {{0, N_("Not Ready")}, {1, N_("Ready")}};
constexpr TagDetails olympusAFSearch[] = {
{0, N_("Not Ready")},
{1, N_("Ready")},
};
//! FlashMode, tag 0x0400
constexpr TagDetailsBitmask olympusFlashMode[] = {
{0x0000, N_("Off")}, {0x0001, N_("On")}, {0x0002, N_("Fill-in")}, {0x0004, N_("Red-eye")},
{0x0008, N_("Slow-sync")}, {0x0010, N_("Forced On")}, {0x0020, N_("2nd Curtain")}};
{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")},
};
//! FlashRemoteControl, tag 0x0403
constexpr TagDetails olympusFlashRemoteControl[] = {{0x0, N_("Off")},
{0x1, N_("Channel 1, Low")},
{0x2, N_("Channel 2, Low")},
{0x3, N_("Channel 3, Low")},
{0x4, N_("Channel 4, Low")},
{0x9, N_("Channel 1, Mid")},
{0xa, N_("Channel 2, Mid")},
{0xb, N_("Channel 3, Mid")},
{0xc, N_("Channel 4, Mid")},
{0x11, N_("Channel 1, High")},
{0x12, N_("Channel 2, High")},
{0x13, N_("Channel 3, High")},
{0x14, N_("Channel 4, High")}};
constexpr TagDetails olympusFlashRemoteControl[] = {
{0x0, N_("Off")},
{0x1, N_("Channel 1, Low")},
{0x2, N_("Channel 2, Low")},
{0x3, N_("Channel 3, Low")},
{0x4, N_("Channel 4, Low")},
{0x9, N_("Channel 1, Mid")},
{0xa, N_("Channel 2, Mid")},
{0xb, N_("Channel 3, Mid")},
{0xc, N_("Channel 4, Mid")},
{0x11, N_("Channel 1, High")},
{0x12, N_("Channel 2, High")},
{0x13, N_("Channel 3, High")},
{0x14, N_("Channel 4, High")},
};
//! FlashControlMode, tag 0x0404
constexpr TagDetails olympusFlashControlMode[] = {{0, N_("Off")}, {3, N_("TTL")}, {4, N_("Auto")}, {5, N_("Manual")}};
constexpr TagDetails olympusFlashControlMode[] = {
{0, N_("Off")},
{3, N_("TTL")},
{4, N_("Auto")},
{5, N_("Manual")},
};
//! WhiteBalance, tag 0x0500
constexpr TagDetails olympusWhiteBalance[] = {{0, N_("Auto")},
{1, N_("Auto (Keep Warm Color Off)")},
{16, N_("7500K (Fine Weather with Shade)")},
{17, N_("6000K (Cloudy)")},
{18, N_("5300K (Fine Weather)")},
{20, N_("3000K (Tungsten light)")},
{21, N_("3600K (Tungsten light-like)")},
{22, N_("Auto Setup")},
{23, N_("5500K (Flash)")},
{33, N_("6600K (Daylight fluorescent)")},
{34, N_("4500K (Neutral white fluorescent)")},
{35, N_("4000K (Cool white fluorescent)")},
{36, N_("White Fluorescent")},
{48, N_("3600K (Tungsten light-like)")},
{67, N_("Underwater")},
{256, N_("One Touch WB 1")},
{257, N_("One Touch WB 2")},
{258, N_("One Touch WB 3")},
{259, N_("One Touch WB 4")},
{512, N_("Custom WB 1")},
{513, N_("Custom WB 2")},
{514, N_("Custom WB 3")},
{515, N_("Custom WB 4")}};
constexpr TagDetails olympusWhiteBalance[] = {
{0, N_("Auto")},
{1, N_("Auto (Keep Warm Color Off)")},
{16, N_("7500K (Fine Weather with Shade)")},
{17, N_("6000K (Cloudy)")},
{18, N_("5300K (Fine Weather)")},
{20, N_("3000K (Tungsten light)")},
{21, N_("3600K (Tungsten light-like)")},
{22, N_("Auto Setup")},
{23, N_("5500K (Flash)")},
{33, N_("6600K (Daylight fluorescent)")},
{34, N_("4500K (Neutral white fluorescent)")},
{35, N_("4000K (Cool white fluorescent)")},
{36, N_("White Fluorescent")},
{48, N_("3600K (Tungsten light-like)")},
{67, N_("Underwater")},
{256, N_("One Touch WB 1")},
{257, N_("One Touch WB 2")},
{258, N_("One Touch WB 3")},
{259, N_("One Touch WB 4")},
{512, N_("Custom WB 1")},
{513, N_("Custom WB 2")},
{514, N_("Custom WB 3")},
{515, N_("Custom WB 4")},
};
//! ModifiedSaturation, tag 0x0504
constexpr TagDetails olympusModifiedSaturation[] = {{0, N_("Off")},
{1, N_("CM1 (Red Enhance)")},
{2, N_("CM2 (Green Enhance)")},
{3, N_("CM3 (Blue Enhance)")},
{4, N_("CM4 (Skin Tones)")}};
constexpr TagDetails olympusModifiedSaturation[] = {
{0, N_("Off")},
{1, N_("CM1 (Red Enhance)")},
{2, N_("CM2 (Green Enhance)")},
{3, N_("CM3 (Blue Enhance)")},
{4, N_("CM4 (Skin Tones)")},
};
//! ColorSpace, tag 0x0507
constexpr TagDetails olympusColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}};
constexpr TagDetails olympusColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
{2, N_("Pro Photo RGB")},
};
//! NoiseReduction, tag 0x050a
constexpr TagDetailsBitmask olympusNoiseReduction[] = {{0x0001, N_("Noise Reduction")},
{0x0002, N_("Noise Filter")},
{0x0004, N_("Noise Filter (ISO Boost)")},
{0x0008, N_("Auto")}};
constexpr TagDetailsBitmask olympusNoiseReduction[] = {
{0x0001, N_("Noise Reduction")},
{0x0002, N_("Noise Filter")},
{0x0004, N_("Noise Filter (ISO Boost)")},
{0x0008, N_("Auto")},
};
//! PictureMode, tag 0x0520
constexpr TagDetails olympusPictureMode[] = {{1, N_("Vivid")},
{2, N_("Natural")},
{3, N_("Muted")},
{4, N_("Portrait")},
{5, N_("i-Enhance")},
{6, N_("e-Portrait")},
{7, N_("Color Creator")},
{9, N_("Color Profile 1")},
{10, N_("Color Profile 2")},
{11, N_("Color Profile 3")},
{12, N_("Monochrome Profile 1")},
{13, N_("Monochrome Profile 2")},
{14, N_("Monochrome Profile 3")},
{256, N_("Monotone")},
{512, N_("Sepia")}};
constexpr TagDetails olympusPictureMode[] = {
{1, N_("Vivid")},
{2, N_("Natural")},
{3, N_("Muted")},
{4, N_("Portrait")},
{5, N_("i-Enhance")},
{6, N_("e-Portrait")},
{7, N_("Color Creator")},
{9, N_("Color Profile 1")},
{10, N_("Color Profile 2")},
{11, N_("Color Profile 3")},
{12, N_("Monochrome Profile 1")},
{13, N_("Monochrome Profile 2")},
{14, N_("Monochrome Profile 3")},
{256, N_("Monotone")},
{512, N_("Sepia")},
};
//! PictureModeBWFilter, tag 0x0525
constexpr TagDetails olympusPictureModeBWFilter[] = {{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Yellow")},
{3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}};
constexpr TagDetails olympusPictureModeBWFilter[] = {
{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")},
};
//! PictureModeTone, tag 0x0526
constexpr TagDetails olympusPictureModeTone[] = {{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Sepia")},
{3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}};
constexpr TagDetails olympusPictureModeTone[] = {
{0, N_("n/a")}, {1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")},
};
constexpr TagDetails artFilters[] = {
{0, N_("Off")},
@ -448,11 +519,17 @@ constexpr TagDetails artFilters[] = {
};
//! OlympusCs Quality, tag 0x0603
constexpr TagDetails olympusCsQuality[] = {{1, N_("SQ")}, {2, N_("HQ")}, {3, N_("SHQ")}, {4, N_("RAW")}};
constexpr TagDetails olympusCsQuality[] = {
{1, N_("SQ")},
{2, N_("HQ")},
{3, N_("SHQ")},
{4, N_("RAW")},
};
//! Olympus ImageStabilization, tag 0x0604
static constexpr TagDetails olympusImageStabilization[] = {
{0, N_("Off")}, {1, N_("S-IS 1")}, {2, N_("S-IS 2")}, {3, N_("S-IS 3")}, {4, N_("S-IS AUTO")}};
{0, N_("Off")}, {1, N_("S-IS 1")}, {2, N_("S-IS 2")}, {3, N_("S-IS 3")}, {4, N_("S-IS AUTO")},
};
constexpr TagInfo OlympusMakerNote::tagInfoCs_[] = {
{0x0000, "CameraSettingsVersion", N_("Camera Settings Version"), N_("Camera settings version"), IfdId::olympusCsId,
@ -573,7 +650,11 @@ const TagInfo* OlympusMakerNote::tagListCs() {
}
//! OlympusEq FlashType, tag 0x1000
constexpr TagDetails olympusEqFlashType[] = {{0, N_("None")}, {2, N_("Simple E-System")}, {3, N_("E-System")}};
constexpr TagDetails olympusEqFlashType[] = {
{0, N_("None")},
{2, N_("Simple E-System")},
{3, N_("E-System")},
};
//! OlympusEq FlashModel, tag 0x1001
constexpr TagDetails olympusEqFlashModel[] = {
@ -642,21 +723,34 @@ const TagInfo* OlympusMakerNote::tagListEq() {
}
//! OlympusRd ColorSpace, tag 0x0108
constexpr TagDetails olympusRdColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}};
constexpr TagDetails olympusRdColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
{2, N_("Pro Photo RGB")},
};
//! OlympusRd Engine, tag 0x0109
constexpr TagDetails olympusRdEngine[] = {
{0, N_("High Speed")}, {1, N_("High Function")}, {2, N_("Advanced High Speed")}, {3, N_("Advanced High Function")}};
{0, N_("High Speed")},
{1, N_("High Function")},
{2, N_("Advanced High Speed")},
{3, N_("Advanced High Function")},
};
//! OlympusRd EditStatus, tag 0x010b
constexpr TagDetails olympusRdEditStatus[] = {
{0, N_("Original")}, {1, N_("Edited (Landscape)")}, {6, N_("Edited (Portrait)")}, {8, N_("Edited (Portrait)")}};
{0, N_("Original")},
{1, N_("Edited (Landscape)")},
{6, N_("Edited (Portrait)")},
{8, N_("Edited (Portrait)")},
};
//! OlympusRd Settings, tag 0x010c
constexpr TagDetailsBitmask olympusRdSettings[] = {{0x0001, N_("WB Color Temp")}, {0x0004, N_("WB Gray Point")},
{0x0008, N_("Saturation")}, {0x0010, N_("Contrast")},
{0x0020, N_("Sharpness")}, {0x0040, N_("Color Space")},
{0x0080, N_("High Function")}, {0x0100, N_("Noise Reduction")}};
constexpr TagDetailsBitmask olympusRdSettings[] = {
{0x0001, N_("WB Color Temp")}, {0x0004, N_("WB Gray Point")}, {0x0008, N_("Saturation")},
{0x0010, N_("Contrast")}, {0x0020, N_("Sharpness")}, {0x0040, N_("Color Space")},
{0x0080, N_("High Function")}, {0x0100, N_("Noise Reduction")},
};
constexpr TagInfo OlympusMakerNote::tagInfoRd_[] = {
{0x0000, "RawDevVersion", N_("Raw Development Version"), N_("Raw development version"), IfdId::olympusRdId,
@ -697,25 +791,38 @@ const TagInfo* OlympusMakerNote::tagListRd() {
}
//! OlympusRd2 WhiteBalance, tag 0x0101
constexpr TagDetails olympusRd2WhiteBalance[] = {{1, N_("Color Temperature")}, {2, N_("Gray Point")}};
constexpr TagDetails olympusRd2WhiteBalance[] = {
{1, N_("Color Temperature")},
{2, N_("Gray Point")},
};
//! OlympusRd2 ColorSpace, tag 0x0109
constexpr TagDetails olympusRd2ColorSpace[] = {{0, N_("sRGB")}, {1, N_("Adobe RGB")}, {2, N_("Pro Photo RGB")}};
constexpr TagDetails olympusRd2ColorSpace[] = {
{0, N_("sRGB")},
{1, N_("Adobe RGB")},
{2, N_("Pro Photo RGB")},
};
//! OlympusRd2 Engine, tag 0x010b
constexpr TagDetails olympusRd2Engine[] = {{0, N_("High Speed")}, {1, N_("High Function")}};
constexpr TagDetails olympusRd2Engine[] = {
{0, N_("High Speed")},
{1, N_("High Function")},
};
//! OlympusRd2 PictureMode, tag 0x010c
constexpr TagDetails olympusRd2PictureMode[] = {
{1, N_("Vivid")}, {2, N_("Natural")}, {3, N_("Muted")}, {256, N_("Monotone")}, {512, N_("Sepia")}};
{1, N_("Vivid")}, {2, N_("Natural")}, {3, N_("Muted")}, {256, N_("Monotone")}, {512, N_("Sepia")},
};
//! OlympusRd2 PM_BWFilter, tag 0x0110
constexpr TagDetails olympusRd2PM_BWFilter[] = {
{1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")}};
{1, N_("Neutral")}, {2, N_("Yellow")}, {3, N_("Orange")}, {4, N_("Red")}, {5, N_("Green")},
};
//! OlympusRd2 PMPictureTone, tag 0x0111
constexpr TagDetails olympusRd2PMPictureTone[] = {
{1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")}};
{1, N_("Neutral")}, {2, N_("Sepia")}, {3, N_("Blue")}, {4, N_("Purple")}, {5, N_("Green")},
};
constexpr TagInfo OlympusMakerNote::tagInfoRd2_[] = {
{0x0000, "RawDev2Version", N_("Raw Development 2 Version"), N_("Raw development 2 version"), IfdId::olympusRd2Id,
@ -775,11 +882,15 @@ const TagInfo* OlympusMakerNote::tagListRd2() {
//! OlympusIp MultipleExposureMode, tag 0x101c
constexpr TagDetails olympusIpMultipleExposureMode[] = {
{0, N_("Off")}, {2, N_("On (2 frames)")}, {3, N_("On (3 frames)")}};
{0, N_("Off")},
{2, N_("On (2 frames)")},
{3, N_("On (3 frames)")},
};
//! OlympusIp olympusIpAspectRatio, tag 0x101c
constexpr TagDetails olympusIpAspectRatio[] = {{1, "4:3"}, {2, "3:2"}, {3, "16:9"}, {4, "6:6"}, {5, "5:4"},
{6, "7:6"}, {7, "6:5"}, {8, "7:5"}, {9, "3:4"}};
constexpr TagDetails olympusIpAspectRatio[] = {
{1, "4:3"}, {2, "3:2"}, {3, "16:9"}, {4, "6:6"}, {5, "5:4"}, {6, "7:6"}, {7, "6:5"}, {8, "7:5"}, {9, "3:4"},
};
constexpr TagInfo OlympusMakerNote::tagInfoIp_[] = {
{0x0000, "ImageProcessingVersion", N_("Image Processing Version"), N_("Image processing version"),
@ -894,7 +1005,10 @@ const TagInfo* OlympusMakerNote::tagListIp() {
}
//! OlympusFi ExternalFlashBounce, tag 0x1204
constexpr TagDetails olympusFiExternalFlashBounce[] = {{0, N_("Bounce or Off")}, {1, N_("Direct")}};
constexpr TagDetails olympusFiExternalFlashBounce[] = {
{0, N_("Bounce or Off")},
{1, N_("Direct")},
};
constexpr TagInfo OlympusMakerNote::tagInfoFi_[] = {
{0x0000, "FocusInfoVersion", N_("Focus Info Version"), N_("Focus info version"), IfdId::olympusFiId,
@ -957,18 +1071,20 @@ const TagInfo* OlympusMakerNote::tagListFe() {
}
//! OlympusRi LightSource, tag 0x1000
constexpr TagDetails olympusRiLightSource[] = {{0, N_("Unknown")},
{16, N_("Shade")},
{17, N_("Cloudy")},
{18, N_("Fine Weather")},
{20, N_("Tungsten (incandescent)")},
{22, N_("Evening Sunlight")},
{33, N_("Daylight Fluorescent (D 5700 - 7100K)")},
{34, N_("Day White Fluorescent (N 4600 - 5400K)")},
{35, N_("Cool White Fluorescent (W 3900 - 4500K)")},
{36, N_("White Fluorescent (WW 3200 - 3700K)")},
{256, N_("One Touch White Balance")},
{512, N_("Custom 1-4")}};
constexpr TagDetails olympusRiLightSource[] = {
{0, N_("Unknown")},
{16, N_("Shade")},
{17, N_("Cloudy")},
{18, N_("Fine Weather")},
{20, N_("Tungsten (incandescent)")},
{22, N_("Evening Sunlight")},
{33, N_("Daylight Fluorescent (D 5700 - 7100K)")},
{34, N_("Day White Fluorescent (N 4600 - 5400K)")},
{35, N_("Cool White Fluorescent (W 3900 - 4500K)")},
{36, N_("White Fluorescent (WW 3200 - 3700K)")},
{256, N_("One Touch White Balance")},
{512, N_("Custom 1-4")},
};
constexpr TagInfo OlympusMakerNote::tagInfoRi_[] = {
{0x0000, "RawInfoVersion", N_("Raw Info Version"), N_("Raw info version"), IfdId::olympusRiId, SectionId::makerTags,

@ -39,96 +39,111 @@ constexpr TagDetails panasonicImageStabilizer[] = {
//! Macro, tag 0x001c
constexpr TagDetails panasonicMacro[] = {
{1, N_("On")}, {2, N_("Off")}, {257, N_("Tele-macro")}, {513, N_("Macro-zoom")}};
{1, N_("On")},
{2, N_("Off")},
{257, N_("Tele-macro")},
{513, N_("Macro-zoom")},
};
//! ShootingMode, tag 0x001f and SceneMode, tag 0x8001
constexpr TagDetails panasonicShootingMode[] = {{0, N_("Off")}, // only SceneMode
{1, N_("Normal")},
{2, N_("Portrait")},
{3, N_("Scenery")},
{4, N_("Sports")},
{5, N_("Night portrait")},
{6, N_("Program")},
{7, N_("Aperture priority")},
{8, N_("Shutter-speed priority")},
{9, N_("Macro")},
{10, N_("Spot")},
{11, N_("Manual")},
{12, N_("Movie preview")},
{13, N_("Panning")},
{14, N_("Simple")},
{15, N_("Color effects")},
{16, N_("Self Portrait")},
{17, N_("Economy")},
{18, N_("Fireworks")},
{19, N_("Party")},
{20, N_("Snow")},
{21, N_("Night scenery")},
{22, N_("Food")},
{23, N_("Baby")},
{24, N_("Soft skin")},
{25, N_("Candlelight")},
{26, N_("Starry night")},
{27, N_("High sensitivity")},
{28, N_("Panorama assist")},
{29, N_("Underwater")},
{30, N_("Beach")},
{31, N_("Aerial photo")},
{32, N_("Sunset")},
{33, N_("Pet")},
{34, N_("Intelligent ISO")},
{35, N_("Clipboard")},
{36, N_("High speed continuous shooting")},
{37, N_("Intelligent auto")},
{39, N_("Multi-aspect")},
{41, N_("Transform")},
{42, N_("Flash Burst")},
{43, N_("Pin Hole")},
{44, N_("Film Grain")},
{45, N_("My Color")},
{46, N_("Photo Frame")},
{51, N_("HDR")},
{55, N_("Handheld Night Shot")},
{57, N_("3D")},
{59, N_("Creative Control")},
{62, N_("Panorama")},
{63, N_("Glass Through")},
{64, N_("HDR")},
{66, N_("Digital Filter")},
{67, N_("Clear Portrait")},
{68, N_("Silky Skin")},
{69, N_("Backlit Softness")},
{70, N_("Clear in Backlight")},
{71, N_("Relaxing Tone")},
{72, N_("Sweet Child's Face")},
{73, N_("Distinct Scenery")},
{74, N_("Bright Blue Sky")},
{75, N_("Romantic Sunset Glow")},
{76, N_("Vivid Sunset Glow")},
{77, N_("Glistening Water")},
{78, N_("Clear Nightscape")},
{79, N_("Cool Night Sky")},
{80, N_("Warm Glowing Nightscape")},
{81, N_("Artistic Nightscape")},
{82, N_("Glittering Illuminations")},
{83, N_("Clear Night Portrait")},
{84, N_("Soft Image of a Flower")},
{85, N_("Appetizing Food")},
{86, N_("Cute Desert")},
{87, N_("Freeze Animal Motion")},
{88, N_("Clear Sports Shot")},
{89, N_("Monochrome")},
{90, N_("Creative Control")}};
constexpr TagDetails panasonicShootingMode[] = {
{0, N_("Off")}, // only SceneMode
{1, N_("Normal")},
{2, N_("Portrait")},
{3, N_("Scenery")},
{4, N_("Sports")},
{5, N_("Night portrait")},
{6, N_("Program")},
{7, N_("Aperture priority")},
{8, N_("Shutter-speed priority")},
{9, N_("Macro")},
{10, N_("Spot")},
{11, N_("Manual")},
{12, N_("Movie preview")},
{13, N_("Panning")},
{14, N_("Simple")},
{15, N_("Color effects")},
{16, N_("Self Portrait")},
{17, N_("Economy")},
{18, N_("Fireworks")},
{19, N_("Party")},
{20, N_("Snow")},
{21, N_("Night scenery")},
{22, N_("Food")},
{23, N_("Baby")},
{24, N_("Soft skin")},
{25, N_("Candlelight")},
{26, N_("Starry night")},
{27, N_("High sensitivity")},
{28, N_("Panorama assist")},
{29, N_("Underwater")},
{30, N_("Beach")},
{31, N_("Aerial photo")},
{32, N_("Sunset")},
{33, N_("Pet")},
{34, N_("Intelligent ISO")},
{35, N_("Clipboard")},
{36, N_("High speed continuous shooting")},
{37, N_("Intelligent auto")},
{39, N_("Multi-aspect")},
{41, N_("Transform")},
{42, N_("Flash Burst")},
{43, N_("Pin Hole")},
{44, N_("Film Grain")},
{45, N_("My Color")},
{46, N_("Photo Frame")},
{51, N_("HDR")},
{55, N_("Handheld Night Shot")},
{57, N_("3D")},
{59, N_("Creative Control")},
{62, N_("Panorama")},
{63, N_("Glass Through")},
{64, N_("HDR")},
{66, N_("Digital Filter")},
{67, N_("Clear Portrait")},
{68, N_("Silky Skin")},
{69, N_("Backlit Softness")},
{70, N_("Clear in Backlight")},
{71, N_("Relaxing Tone")},
{72, N_("Sweet Child's Face")},
{73, N_("Distinct Scenery")},
{74, N_("Bright Blue Sky")},
{75, N_("Romantic Sunset Glow")},
{76, N_("Vivid Sunset Glow")},
{77, N_("Glistening Water")},
{78, N_("Clear Nightscape")},
{79, N_("Cool Night Sky")},
{80, N_("Warm Glowing Nightscape")},
{81, N_("Artistic Nightscape")},
{82, N_("Glittering Illuminations")},
{83, N_("Clear Night Portrait")},
{84, N_("Soft Image of a Flower")},
{85, N_("Appetizing Food")},
{86, N_("Cute Desert")},
{87, N_("Freeze Animal Motion")},
{88, N_("Clear Sports Shot")},
{89, N_("Monochrome")},
{90, N_("Creative Control")},
};
//! Audio, tag 0x0020
constexpr TagDetails panasonicAudio[] = {{1, N_("Yes")}, {2, N_("No")}, {3, N_("Stereo")}};
constexpr TagDetails panasonicAudio[] = {
{1, N_("Yes")},
{2, N_("No")},
{3, N_("Stereo")},
};
//! ColorEffect, tag 0x0028
constexpr TagDetails panasonicColorEffect[] = {
{1, N_("Off")}, {2, N_("Warm")}, {3, N_("Cool")}, {4, N_("Black and white")}, {5, N_("Sepia")}, {6, N_("Happy")}};
{1, N_("Off")}, {2, N_("Warm")}, {3, N_("Cool")}, {4, N_("Black and white")}, {5, N_("Sepia")}, {6, N_("Happy")},
};
//! BustMode, tag 0x002a
constexpr TagDetails panasonicBurstMode[] = {{0, N_("Off")}, {1, N_("Low/High quality")}, {2, N_("Infinite")}};
constexpr TagDetails panasonicBurstMode[] = {
{0, N_("Off")},
{1, N_("Low/High quality")},
{2, N_("Infinite")},
};
//! Contrast, tag 0x002c
constexpr TagDetails panasonicContrast[] = {
@ -138,26 +153,45 @@ constexpr TagDetails panasonicContrast[] = {
//! NoiseReduction, tag 0x002d
constexpr TagDetails panasonicNoiseReduction[] = {
{0, N_("Standard")}, {1, N_("Low (-1)")}, {2, N_("High (+1)")}, {3, N_("Lowest (-2)")}, {4, N_("Highest (+2)")}};
{0, N_("Standard")}, {1, N_("Low (-1)")}, {2, N_("High (+1)")}, {3, N_("Lowest (-2)")}, {4, N_("Highest (+2)")},
};
//! SelfTimer, tag 0x002e
constexpr TagDetails panasonicSelfTimer[] = {{1, N_("Off")}, {2, "10 s"}, {3, "2 s"}, {4, "10 s / 3 pictures"}};
constexpr TagDetails panasonicSelfTimer[] = {
{1, N_("Off")},
{2, "10 s"},
{3, "2 s"},
{4, "10 s / 3 pictures"},
};
//! Rotation, tag 0x0030
constexpr TagDetails panasonicRotation[] = {
{1, N_("Horizontal (normal)")}, {3, N_("Rotate 180")}, {6, N_("Rotate 90 CW")}, {8, N_("Rotate 270 CW")}};
{1, N_("Horizontal (normal)")},
{3, N_("Rotate 180")},
{6, N_("Rotate 90 CW")},
{8, N_("Rotate 270 CW")},
};
//! AFAssistLamp, tag 0x0031
constexpr TagDetails panasonicAFAssistLamp[] = {{1, N_("Fired")},
{2, N_("Enabled but Not Used")},
{3, N_("Disabled but Required")},
{4, N_("Disabled and Not Required")}};
constexpr TagDetails panasonicAFAssistLamp[] = {
{1, N_("Fired")},
{2, N_("Enabled but Not Used")},
{3, N_("Disabled but Required")},
{4, N_("Disabled and Not Required")},
};
//! ColorMode, tag 0x0032
constexpr TagDetails panasonicColorMode[] = {{0, N_("Normal")}, {1, N_("Natural")}, {2, N_("Vivid")}};
constexpr TagDetails panasonicColorMode[] = {
{0, N_("Normal")},
{1, N_("Natural")},
{2, N_("Vivid")},
};
//! OpticalZoomMode, tag 0x0034
constexpr TagDetails panasonicOpticalZoomMode[] = {{1, N_("Standard")}, {2, N_("EX optics")}};
constexpr TagDetails panasonicOpticalZoomMode[] = {
{1, N_("Standard")},
{2, N_("EX optics")},
};
//! ConversionLens, tag 0x0035
constexpr TagDetails panasonicConversionLens[] = {
@ -169,91 +203,141 @@ constexpr TagDetails panasonicConversionLens[] = {
};
//! WorldTimeLocation, tag 0x003a
constexpr TagDetails panasonicWorldTimeLocation[] = {{1, N_("Home")}, {2, N_("Destination")}};
constexpr TagDetails panasonicWorldTimeLocation[] = {
{1, N_("Home")},
{2, N_("Destination")},
};
//! TextStamp, tag 0x003b, 0x003e, 000x8008 and 0x8009
constexpr TagDetails panasonicTextStamp[] = {{1, N_("Off")}, {2, N_("On")}};
constexpr TagDetails panasonicTextStamp[] = {
{1, N_("Off")},
{2, N_("On")},
};
//! FilmMode, tag 0x0042
constexpr TagDetails panasonicFilmMode[] = {
{1, N_("Standard (color)")}, {2, N_("Dynamic (color)")}, {3, N_("Nature (color)")},
{4, N_("Smooth (color)")}, {5, N_("Standard (B&W)")}, {6, N_("Dynamic (B&W)")},
{7, N_("Smooth (B&W)")}, {10, N_("Nostalgic")}, {11, N_("Vibrant")}};
{7, N_("Smooth (B&W)")}, {10, N_("Nostalgic")}, {11, N_("Vibrant")},
};
//! Bracket Settings, tag 0x0045
constexpr TagDetails panasonicBracketSettings[] = {{0, N_("No Bracket")},
{1, N_("3 images, Sequence 0/-/+")},
{2, N_("3 images, Sequence -/0/+")},
{3, N_("5 images, Sequence 0/-/+")},
{4, N_("5 images, Sequence -/0/+")},
{5, N_("7 images, Sequence 0/-/+")},
{6, N_("7 images, Sequence -/0/+")}};
constexpr TagDetails panasonicBracketSettings[] = {
{0, N_("No Bracket")},
{1, N_("3 images, Sequence 0/-/+")},
{2, N_("3 images, Sequence -/0/+")},
{3, N_("5 images, Sequence 0/-/+")},
{4, N_("5 images, Sequence -/0/+")},
{5, N_("7 images, Sequence 0/-/+")},
{6, N_("7 images, Sequence -/0/+")},
};
//! Flash curtain, tag 0x0048
constexpr TagDetails panasonicFlashCurtain[] = {{0, N_("n/a")}, {1, N_("1st")}, {2, N_("2nd")}};
constexpr TagDetails panasonicFlashCurtain[] = {
{0, N_("n/a")},
{1, N_("1st")},
{2, N_("2nd")},
};
//! Long Shutter Noise Reduction, tag 0x0049
constexpr TagDetails panasonicLongShutterNoiseReduction[] = {{1, N_("Off")}, {2, N_("On")}};
constexpr TagDetails panasonicLongShutterNoiseReduction[] = {
{1, N_("Off")},
{2, N_("On")},
};
//! Intelligent exposure, tag 0x005d
constexpr TagDetails panasonicIntelligentExposure[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}};
{0, N_("Off")},
{1, N_("Low")},
{2, N_("Standard")},
{3, N_("High")},
};
//! Flash warning, tag 0x0062
constexpr TagDetails panasonicFlashWarning[] = {{0, N_("No")}, {1, N_("Yes (flash required but disabled")}};
constexpr TagDetails panasonicFlashWarning[] = {
{0, N_("No")},
{1, N_("Yes (flash required but disabled")},
};
//! Intelligent resolution, tag 0x0070
constexpr TagDetails panasonicIntelligentResolution[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}, {4, N_("Extended")}};
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}, {4, N_("Extended")},
};
//! Intelligent D-Range, tag 0x0079
constexpr TagDetails panasonicIntelligentDRange[] = {
{0, N_("Off")}, {1, N_("Low")}, {2, N_("Standard")}, {3, N_("High")}};
{0, N_("Off")},
{1, N_("Low")},
{2, N_("Standard")},
{3, N_("High")},
};
//! Clear Retouch, tag 0x007c
constexpr TagDetails panasonicClearRetouch[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails panasonicClearRetouch[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Photo Style, tag 0x0089
constexpr TagDetails panasonicPhotoStyle[] = {{0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")},
{3, N_("Natural")}, {4, N_("Monochrome")}, {5, N_("Scenery")},
{6, N_("Portrait")}};
constexpr TagDetails panasonicPhotoStyle[] = {
{0, N_("NoAuto")}, {1, N_("Standard or Custom")}, {2, N_("Vivid")}, {3, N_("Natural")}, {4, N_("Monochrome")},
{5, N_("Scenery")}, {6, N_("Portrait")},
};
//! Shading compensation, tag 0x008a
constexpr TagDetails panasonicShadingCompensation[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails panasonicShadingCompensation[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Camera orientation, tag 0x008f
constexpr TagDetails panasonicCameraOrientation[] = {{0, N_("Normal")}, {1, N_("Rotate CW")},
{2, N_("Rotate 180")}, {3, N_("Rotate CCW")},
{4, N_("Tilt upwards")}, {5, N_("Tilt downwards")}};
constexpr TagDetails panasonicCameraOrientation[] = {
{0, N_("Normal")}, {1, N_("Rotate CW")}, {2, N_("Rotate 180")},
{3, N_("Rotate CCW")}, {4, N_("Tilt upwards")}, {5, N_("Tilt downwards")},
};
//! Sweep panorama direction, tag 0x0093
constexpr TagDetails panasonicSweepPanoramaDirection[] = {{0, N_("Off")},
{1, N_("Left to Right")},
{2, N_("Right to Left")},
{3, N_("Top to Bottom")},
{4, N_("Bottom to Top")}};
constexpr TagDetails panasonicSweepPanoramaDirection[] = {
{0, N_("Off")}, {1, N_("Left to Right")}, {2, N_("Right to Left")},
{3, N_("Top to Bottom")}, {4, N_("Bottom to Top")},
};
//! Timer recording, tag 0x0096
constexpr TagDetails panasonicTimerRecording[] = {
{0, N_("Off")}, {1, N_("Time Lapse")}, {2, N_("Stop-Motion Animation")}};
{0, N_("Off")},
{1, N_("Time Lapse")},
{2, N_("Stop-Motion Animation")},
};
//! HDR, tag 0x009e
constexpr TagDetails panasonicHDR[] = {{0, N_("Off")},
{100, N_("1 EV")},
{200, N_("2 EV")},
{300, N_("3 EV")},
{32868, N_("1 EV (Auto)")},
{32968, N_("2 EV (Auto)")},
{33068, N_("3 EV (Auto)")}};
constexpr TagDetails panasonicHDR[] = {
{0, N_("Off")},
{100, N_("1 EV")},
{200, N_("2 EV")},
{300, N_("3 EV")},
{32868, N_("1 EV (Auto)")},
{32968, N_("2 EV (Auto)")},
{33068, N_("3 EV (Auto)")},
};
//! Shutter Type, tag 0x009f
constexpr TagDetails panasonicShutterType[] = {{0, N_("Mechanical")}, {1, N_("Electronic")}, {2, N_("Hybrid")}};
constexpr TagDetails panasonicShutterType[] = {
{0, N_("Mechanical")},
{1, N_("Electronic")},
{2, N_("Hybrid")},
};
//! Touch AE, tag 0x00ab
constexpr TagDetails panasonicTouchAE[] = {{0, N_("Off")}, {1, N_("On")}};
constexpr TagDetails panasonicTouchAE[] = {
{0, N_("Off")},
{1, N_("On")},
};
//! Flash Fired, tag 0x8007
constexpr TagDetails panasonicFlashFired[] = {{1, N_("No")}, {2, N_("Yes")}};
constexpr TagDetails panasonicFlashFired[] = {
{1, N_("No")},
{2, N_("Yes")},
};
// Panasonic MakerNote Tag Info
constexpr TagInfo PanasonicMakerNote::tagInfo_[] = {

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

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

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

@ -16,90 +16,92 @@
namespace Exiv2::Internal {
const std::map<std::string, std::string> infoTags = {{"AGES", "Xmp.video.Rated"},
{"CMNT", "Xmp.video.Comment"},
{"CODE", "Xmp.video.EncodedBy"},
{"COMM", "Xmp.video.Comment"},
{"DIRC", "Xmp.video.Director"},
{"DISP", "Xmp.audio.SchemeTitle"},
{"DTIM", "Xmp.video.DateTimeOriginal"},
{"GENR", "Xmp.video.Genre"},
{"IARL", "Xmp.video.ArchivalLocation"},
{"IART", "Xmp.video.Artist"},
{"IAS1", "Xmp.video.Edit1"},
{"IAS2", "Xmp.video.Edit2"},
{"IAS3", "Xmp.video.Edit3"},
{"IAS4", "Xmp.video.Edit4"},
{"IAS5", "Xmp.video.Edit5"},
{"IAS6", "Xmp.video.Edit6"},
{"IAS7", "Xmp.video.Edit7"},
{"IAS8", "Xmp.video.Edit8"},
{"IAS9", "Xmp.video.Edit9"},
{"IBSU", "Xmp.video.BaseURL"},
{"ICAS", "Xmp.audio.DefaultStream"},
{"ICDS", "Xmp.video.CostumeDesigner"},
{"ICMS", "Xmp.video.Commissioned"},
{"ICMT", "Xmp.video.Comment"},
{"ICNM", "Xmp.video.Cinematographer"},
{"ICNT", "Xmp.video.Country"},
{"ICOP", "Xmp.video.Copyright"},
{"ICRD", "Xmp.video.DateTimeDigitized"},
{"ICRP", "Xmp.video.Cropped"},
{"IDIM", "Xmp.video.Dimensions"},
{"IDPI", "Xmp.video.DotsPerInch"},
{"IDST", "Xmp.video.DistributedBy"},
{"IEDT", "Xmp.video.EditedBy"},
{"IENC", "Xmp.video.EncodedBy"},
{"IENG", "Xmp.video.Engineer"},
{"IGNR", "Xmp.video.Genre"},
{"IKEY", "Xmp.video.PerformerKeywords"},
{"ILGT", "Xmp.video.Lightness"},
{"ILGU", "Xmp.video.LogoURL"},
{"ILIU", "Xmp.video.LogoIconURL"},
{"ILNG", "Xmp.video.Language"},
{"IMBI", "Xmp.video.InfoBannerImage"},
{"IMBU", "Xmp.video.InfoBannerURL"},
{"IMED", "Xmp.video.Medium"},
{"IMIT", "Xmp.video.InfoText"},
{"IMIU", "Xmp.video.InfoURL"},
{"IMUS", "Xmp.video.MusicBy"},
{"INAM", "Xmp.video.Title"},
{"IPDS", "Xmp.video.ProductionDesigner"},
{"IPLT", "Xmp.video.NumOfColors"},
{"IPRD", "Xmp.video.Product"},
{"IPRO", "Xmp.video.ProducedBy"},
{"IRIP", "Xmp.video.RippedBy"},
{"IRTD", "Xmp.video.Rating"},
{"ISBJ", "Xmp.video.Subject"},
{"ISFT", "Xmp.video.Software"},
{"ISGN", "Xmp.video.SecondaryGenre"},
{"ISHP", "Xmp.video.Sharpness"},
{"ISRC", "Xmp.video.Source"},
{"ISRF", "Xmp.video.SourceForm"},
{"ISTD", "Xmp.video.ProductionStudio"},
{"ISTR", "Xmp.video.Starring"},
{"ITCH", "Xmp.video.Technician"},
{"IWMU", "Xmp.video.WatermarkURL"},
{"IWRI", "Xmp.video.WrittenBy"},
{"LANG", "Xmp.video.Language"},
{"LOCA", "Xmp.video.LocationInfo"},
{"PRT1", "Xmp.video.Part"},
{"PRT2", "Xmp.video.NumOfParts"},
{"RATE", "Xmp.video.Rate"},
{"STAR", "Xmp.video.Starring"},
{"STAT", "Xmp.video.Statistics"},
{"TAPE", "Xmp.video.TapeName"},
{"TCDO", "Xmp.video.EndTimecode"},
{"TCOD", "Xmp.video.StartTimecode"},
{"TITL", "Xmp.video.Title"},
{"TLEN", "Xmp.video.Length"},
{"TORG", "Xmp.video.Organization"},
{"TRCK", "Xmp.video.TrackNumber"},
{"TURL", "Xmp.video.URL"},
{"TVER", "Xmp.video.SoftwareVersion"},
{"VMAJ", "Xmp.video.VegasVersionMajor"},
{"VMIN", "Xmp.video.VegasVersionMinor"},
{"YEAR", "Xmp.video.Year"}};
const std::map<std::string, std::string> infoTags = {
{"AGES", "Xmp.video.Rated"},
{"CMNT", "Xmp.video.Comment"},
{"CODE", "Xmp.video.EncodedBy"},
{"COMM", "Xmp.video.Comment"},
{"DIRC", "Xmp.video.Director"},
{"DISP", "Xmp.audio.SchemeTitle"},
{"DTIM", "Xmp.video.DateTimeOriginal"},
{"GENR", "Xmp.video.Genre"},
{"IARL", "Xmp.video.ArchivalLocation"},
{"IART", "Xmp.video.Artist"},
{"IAS1", "Xmp.video.Edit1"},
{"IAS2", "Xmp.video.Edit2"},
{"IAS3", "Xmp.video.Edit3"},
{"IAS4", "Xmp.video.Edit4"},
{"IAS5", "Xmp.video.Edit5"},
{"IAS6", "Xmp.video.Edit6"},
{"IAS7", "Xmp.video.Edit7"},
{"IAS8", "Xmp.video.Edit8"},
{"IAS9", "Xmp.video.Edit9"},
{"IBSU", "Xmp.video.BaseURL"},
{"ICAS", "Xmp.audio.DefaultStream"},
{"ICDS", "Xmp.video.CostumeDesigner"},
{"ICMS", "Xmp.video.Commissioned"},
{"ICMT", "Xmp.video.Comment"},
{"ICNM", "Xmp.video.Cinematographer"},
{"ICNT", "Xmp.video.Country"},
{"ICOP", "Xmp.video.Copyright"},
{"ICRD", "Xmp.video.DateTimeDigitized"},
{"ICRP", "Xmp.video.Cropped"},
{"IDIM", "Xmp.video.Dimensions"},
{"IDPI", "Xmp.video.DotsPerInch"},
{"IDST", "Xmp.video.DistributedBy"},
{"IEDT", "Xmp.video.EditedBy"},
{"IENC", "Xmp.video.EncodedBy"},
{"IENG", "Xmp.video.Engineer"},
{"IGNR", "Xmp.video.Genre"},
{"IKEY", "Xmp.video.PerformerKeywords"},
{"ILGT", "Xmp.video.Lightness"},
{"ILGU", "Xmp.video.LogoURL"},
{"ILIU", "Xmp.video.LogoIconURL"},
{"ILNG", "Xmp.video.Language"},
{"IMBI", "Xmp.video.InfoBannerImage"},
{"IMBU", "Xmp.video.InfoBannerURL"},
{"IMED", "Xmp.video.Medium"},
{"IMIT", "Xmp.video.InfoText"},
{"IMIU", "Xmp.video.InfoURL"},
{"IMUS", "Xmp.video.MusicBy"},
{"INAM", "Xmp.video.Title"},
{"IPDS", "Xmp.video.ProductionDesigner"},
{"IPLT", "Xmp.video.NumOfColors"},
{"IPRD", "Xmp.video.Product"},
{"IPRO", "Xmp.video.ProducedBy"},
{"IRIP", "Xmp.video.RippedBy"},
{"IRTD", "Xmp.video.Rating"},
{"ISBJ", "Xmp.video.Subject"},
{"ISFT", "Xmp.video.Software"},
{"ISGN", "Xmp.video.SecondaryGenre"},
{"ISHP", "Xmp.video.Sharpness"},
{"ISRC", "Xmp.video.Source"},
{"ISRF", "Xmp.video.SourceForm"},
{"ISTD", "Xmp.video.ProductionStudio"},
{"ISTR", "Xmp.video.Starring"},
{"ITCH", "Xmp.video.Technician"},
{"IWMU", "Xmp.video.WatermarkURL"},
{"IWRI", "Xmp.video.WrittenBy"},
{"LANG", "Xmp.video.Language"},
{"LOCA", "Xmp.video.LocationInfo"},
{"PRT1", "Xmp.video.Part"},
{"PRT2", "Xmp.video.NumOfParts"},
{"RATE", "Xmp.video.Rate"},
{"STAR", "Xmp.video.Starring"},
{"STAT", "Xmp.video.Statistics"},
{"TAPE", "Xmp.video.TapeName"},
{"TCDO", "Xmp.video.EndTimecode"},
{"TCOD", "Xmp.video.StartTimecode"},
{"TITL", "Xmp.video.Title"},
{"TLEN", "Xmp.video.Length"},
{"TORG", "Xmp.video.Organization"},
{"TRCK", "Xmp.video.TrackNumber"},
{"TURL", "Xmp.video.URL"},
{"TVER", "Xmp.video.SoftwareVersion"},
{"VMAJ", "Xmp.video.VegasVersionMajor"},
{"VMIN", "Xmp.video.VegasVersionMinor"},
{"YEAR", "Xmp.video.Year"},
};
const std::map<uint16_t, std::string> audioEncodingValues = {
{0x1, "Microsoft PCM"},
@ -344,7 +346,8 @@ const std::map<uint16_t, std::string> audioEncodingValues = {
{0xe708, "Unknown -"},
{0xf1ac, "Free Lossless Audio Codec FLAC"},
{0xfffe, "Extensible"},
{0xffff, "Development"}};
{0xffff, "Development"},
};
} // namespace Exiv2::Internal
// *****************************************************************************

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

File diff suppressed because it is too large Load Diff

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

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

Loading…
Cancel
Save