#726: Added pretty-print and easy-access functions for the Samsung2 makernote.

v0.27.3
Andreas Huggel 15 years ago
parent 5f5d089b00
commit fc03156491

@ -102,7 +102,8 @@ namespace Exiv2 {
"Exif.Sony1Cs2.ISOSetting", "Exif.Sony1Cs2.ISOSetting",
"Exif.Sony2Cs2.ISOSetting", "Exif.Sony2Cs2.ISOSetting",
"Exif.Pentax.ISO", "Exif.Pentax.ISO",
"Exif.Olympus.ISOSpeed" "Exif.Olympus.ISOSpeed",
"Exif.Samsung2.ISO"
}; };
// Find the first ISO value which is not "0" // Find the first ISO value which is not "0"
@ -259,7 +260,8 @@ namespace Exiv2 {
"Exif.Minolta.LensID", "Exif.Minolta.LensID",
"Exif.SonyMinolta.LensID", "Exif.SonyMinolta.LensID",
"Exif.Sony1.LensID", "Exif.Sony1.LensID",
"Exif.Sony2.LensID" "Exif.Sony2.LensID",
"Exif.Samsung2.LensType"
}; };
return findMetadatum(ed, keys, EXV_COUNTOF(keys)); return findMetadatum(ed, keys, EXV_COUNTOF(keys));
} }
@ -358,7 +360,8 @@ namespace Exiv2 {
{ {
static const char* keys[] = { static const char* keys[] = {
"Exif.Photo.ExposureTime", "Exif.Photo.ExposureTime",
"Exif.Image.ExposureTime" "Exif.Image.ExposureTime",
"Exif.Samsung2.ExposureTime"
}; };
return findMetadatum(ed, keys, EXV_COUNTOF(keys)); return findMetadatum(ed, keys, EXV_COUNTOF(keys));
} }
@ -367,7 +370,8 @@ namespace Exiv2 {
{ {
static const char* keys[] = { static const char* keys[] = {
"Exif.Photo.FNumber", "Exif.Photo.FNumber",
"Exif.Image.FNumber" "Exif.Image.FNumber",
"Exif.Samsung2.FNumber"
}; };
return findMetadatum(ed, keys, EXV_COUNTOF(keys)); return findMetadatum(ed, keys, EXV_COUNTOF(keys));
} }

@ -55,32 +55,70 @@ namespace Exiv2 {
{ 3, N_("Samsung Zoom 50-200mm F4-5.6 ED OIS") } { 3, N_("Samsung Zoom 50-200mm F4-5.6 ED OIS") }
}; };
std::ostream& printPictureWizard(std::ostream& os, const Value& value, const ExifData*)
{
if (value.count() != 5 || value.typeId() != unsignedShort) {
return os << value;
}
return os << "Mode: " << value.toLong(0)
<< ", Col: " << value.toLong(1)
<< ", Sat: " << value.toLong(2) - 4
<< ", Sha: " << value.toLong(3) - 4
<< ", Con: " << value.toLong(4) - 4;
}
std::ostream& printCameraTemperature(std::ostream& os, const Value& value, const ExifData*)
{
if (value.count() != 1 || value.typeId() != signedRational) {
return os << value;
}
return os << value.toFloat() << " C";
}
std::ostream& printFocalLength35(std::ostream& os, const Value& value, const ExifData*)
{
if (value.count() != 1 || value.typeId() != unsignedLong) {
return os << value;
}
long length = value.toLong();
if (length == 0) {
os << _("Unknown");
}
else {
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << length / 10.0 << " mm";
os.copyfmt(oss);
}
return os;
}
// Samsung MakerNote Tag Info // Samsung MakerNote Tag Info
const TagInfo Samsung2MakerNote::tagInfo_[] = { const TagInfo Samsung2MakerNote::tagInfo_[] = {
TagInfo(0x0001, "Version", N_("Version"), N_("Makernote version"), TagInfo(0x0001, "Version", N_("Version"), N_("Makernote version"),
samsung2Id, makerTags, undefined, -1, printExifVersion), samsung2Id, makerTags, undefined, -1, printExifVersion),
TagInfo(0x0021, "PictureWizard", N_("PictureWizard"), N_("Picture wizard"), TagInfo(0x0021, "PictureWizard", N_("PictureWizard"), N_("Picture wizard"),
samsung2Id, makerTags, unsignedShort, -1, printValue), samsung2Id, makerTags, unsignedShort, -1, printPictureWizard),
TagInfo(0x0035, "Preview", N_("Pointer to a preview image"), N_("Offset to an IFD containing a preview image"), TagInfo(0x0035, "Preview", N_("Pointer to a preview image"), N_("Offset to an IFD containing a preview image"),
samsung2Id, makerTags, unsignedLong, -1, printValue), samsung2Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0x0043, "CameraTemperature", N_("Camera Temperature"), N_("Camera temperature"), TagInfo(0x0043, "CameraTemperature", N_("Camera Temperature"), N_("Camera temperature"),
samsung2Id, makerTags, undefined, -1, printValue), samsung2Id, makerTags, signedRational, -1, printCameraTemperature),
TagInfo(0xa001, "FirmwareName", N_("Firmware Name"), N_("Firmware name"), TagInfo(0xa001, "FirmwareName", N_("Firmware Name"), N_("Firmware name"),
samsung2Id, makerTags, asciiString, -1, printValue), samsung2Id, makerTags, asciiString, -1, printValue),
TagInfo(0xa003, "LensType", N_("Lens Type"), N_("Lens type"), TagInfo(0xa003, "LensType", N_("Lens Type"), N_("Lens type"),
samsung2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(samsung2LensType)), samsung2Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(samsung2LensType)),
TagInfo(0xa010, "SensorAreas", N_("Sensor Areas"), N_("Sensor areas"), TagInfo(0xa010, "SensorAreas", N_("Sensor Areas"), N_("Sensor areas"),
samsung2Id, makerTags, unsignedLong, -1, printValue), samsung2Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0xa013, "ExposureCompensation", N_("Exposure Compensation"), N_("Exposure compensation"), TagInfo(0xa013, "ExposureBiasValue", N_("Exposure Bias Value"), N_("Exposure bias value"),
samsung2Id, makerTags, undefined, -1, printValue), samsung2Id, makerTags, signedRational, -1, print0x9204),
TagInfo(0xa014, "ISO", N_("ISO"), N_("ISO"), TagInfo(0xa014, "ISO", N_("ISO"), N_("ISO"),
samsung2Id, makerTags, unsignedLong, -1, printValue), samsung2Id, makerTags, unsignedLong, -1, printValue),
TagInfo(0xa018, "ExposureTime", N_("Exposure Time"), N_("Exposure time"), TagInfo(0xa018, "ExposureTime", N_("Exposure Time"), N_("Exposure time"),
samsung2Id, makerTags, undefined, -1, printValue), samsung2Id, makerTags, unsignedRational, -1, print0x829a),
TagInfo(0xa019, "FNumber", N_("FNumber"), N_("The F number."), TagInfo(0xa019, "FNumber", N_("FNumber"), N_("The F number."),
samsung2Id, makerTags, undefined, -1, printValue), samsung2Id, makerTags, unsignedRational, -1, print0x829d),
TagInfo(0xa01a, "FocalLengthIn35mmFormat", N_("Focal Length In 35mm Format"), N_("Focal length in 35mm format"), TagInfo(0xa01a, "FocalLengthIn35mmFormat", N_("Focal Length In 35mm Format"), N_("Focal length in 35mm format"),
samsung2Id, makerTags, unsignedLong, -1, printValue), samsung2Id, makerTags, unsignedLong, -1, printFocalLength35),
TagInfo(0xa021, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"), TagInfo(0xa021, "WB_RGGBLevels", N_("WB RGGB Levels"), N_("WB RGGB levels"),
samsung2Id, makerTags, unsignedLong, -1, printValue), samsung2Id, makerTags, unsignedLong, -1, printValue),
// End of list marker // End of list marker

@ -261,6 +261,7 @@ namespace Exiv2 {
{ 10, N_("JBIG Color") }, { 10, N_("JBIG Color") },
{ 32766, N_("Next 2-bits RLE") }, { 32766, N_("Next 2-bits RLE") },
{ 32769, N_("Epson ERF Compressed") }, { 32769, N_("Epson ERF Compressed") },
{ 32770, N_("Samsung SRW Compressed") },
{ 32771, N_("CCITT RLE 1-word") }, { 32771, N_("CCITT RLE 1-word") },
{ 32773, N_("PackBits (Macintosh RLE)") }, { 32773, N_("PackBits (Macintosh RLE)") },
{ 32809, N_("Thunderscan RLE") }, { 32809, N_("Thunderscan RLE") },

Loading…
Cancel
Save