Added support for Olympus FE and Raw Info subdirs and tags.

v0.27.3
Andreas Huggel 17 years ago
parent 87ac67e5f1
commit 2f958d8a56

@ -51,7 +51,7 @@ TABLES = Exif \
Minolta MinoltaCsNew MinoltaCs5D MinoltaCs7D \
Nikon1 Nikon2 Nikon3 \
Olympus OlympusCs OlympusEq OlympusRd OlympusRd2 \
OlympusIp OlympusFi \
OlympusIp OlympusFi OlympusFe1 OlympusRi \
Panasonic \
Pentax \
Sigma \

@ -44,6 +44,16 @@ __OlympusIp__
__OlympusFi__
<br>
<h3>Olympus FE Tags</h3>
<p>Click on a column header to sort the table.</p>
__OlympusFe1__
<br>
<h3>Olympus Raw Info Tags</h3>
<p>Click on a column header to sort the table.</p>
__OlympusRi__
<br>
</div>
<!-- closes content -->

@ -76,6 +76,16 @@ namespace Exiv2 {
const uint16_t olymprd2 = 286; //!< Olympus raw development 2 tags
const uint16_t olympip = 287; //!< Olympus image processing tags
const uint16_t olympfi = 288; //!< Olympus focus info tags
const uint16_t olympfe1 = 289; //!< Olympus FE 1 tags
const uint16_t olympfe2 = 290; //!< Olympus FE 2 tags
const uint16_t olympfe3 = 291; //!< Olympus FE 3 tags
const uint16_t olympfe4 = 292; //!< Olympus FE 4 tags
const uint16_t olympfe5 = 293; //!< Olympus FE 5 tags
const uint16_t olympfe6 = 294; //!< Olympus FE 6 tags
const uint16_t olympfe7 = 295; //!< Olympus FE 7 tags
const uint16_t olympfe8 = 296; //!< Olympus FE 8 tags
const uint16_t olympfe9 = 297; //!< Olympus FE 9 tags
const uint16_t olympri = 298; //!< Olympus raw info tags
}
// *****************************************************************************

@ -939,6 +939,79 @@ namespace Exiv2 {
return tagInfoFi_;
}
const TagInfo OlympusMakerNote::tagInfoFe_[] = {
TagInfo(0x0100, "BodyFirmwareVersion", N_("Body Firmware Version"), N_("Body firmware version"), olympusFe1IfdId, makerTags, asciiString, printValue),
// End of list marker
TagInfo(0xffff, "(UnknownOlympusFeTag)", "(UnknownOlympusFeTag)", N_("Unknown OlympusFe tag"), olympusFe1IfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* OlympusMakerNote::tagListFe()
{
return tagInfoFe_;
}
//! OlympusRi LightSource, tag 0x1000
extern const 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") }
};
const TagInfo OlympusMakerNote::tagInfoRi_[] = {
TagInfo(0x0000, "RawInfoVersion", N_("Raw Info Version"), N_("Raw info version"), olympusRiIfdId, makerTags, undefined, printValue),
TagInfo(0x0100, "WB_RBLevelsUsed", N_("WB_RB Levels Used"), N_("WB_RB levels used"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0110, "WB_RBLevelsAuto", N_("WB_RB Levels Auto"), N_("WB_RB levels auto"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0120, "WB_RBLevelsShade", N_("WB_RB Levels Shade"), N_("WB_RB levels shade"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0121, "WB_RBLevelsCloudy", N_("WB_RB Levels Cloudy"), N_("WB_RB levels cloudy"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0122, "WB_RBLevelsFineWeather", N_("WB_RB Levels Fine Weather"), N_("WB_RB levels fine weather"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0123, "WB_RBLevelsTungsten", N_("WB_RB Levels Tungsten"), N_("WB_RB levels tungsten"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0124, "WB_RBLevelsEveningSunlight", N_("WB_RB Levels Evening Sunlight"), N_("WB_RB levels evening sunlight"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0130, "WB_RBLevelsDaylightFluor", N_("WB_RB Levels Daylight Fluor"), N_("WB_RB levels daylight fluor"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0131, "WB_RBLevelsDayWhiteFluor", N_("WB_RB Levels Day White Fluor"), N_("WB_RB levels day white fluor"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0132, "WB_RBLevelsCoolWhiteFluor", N_("WB_RB Levels Cool White Fluor"), N_("WB_RB levels cool white fluor"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0133, "WB_RBLevelsWhiteFluorescent", N_("WB_RB Levels White Fluorescent"), N_("WB_RB levels white fluorescent"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0200, "ColorMatrix2", N_("Color Matrix2"), N_("Color matrix 2"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0310, "CoringFilter", N_("Coring Filter"), N_("Coring filter"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0311, "CoringValues", N_("Coring Values"), N_("Coring values"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0600, "BlackLevel2", N_("Black Level 2"), N_("Black level 2"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0601, "YCbCrCoefficients", N_("YCbCr Coefficients"), N_("YCbCr coefficients"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0611, "ValidPixelDepth", N_("Valid Pixel Depth"), N_("Valid pixel depth"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0612, "CropLeft", N_("Crop Left"), N_("Crop left"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0613, "CropTop", N_("Crop Top"), N_("Crop top"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0614, "CropWidth", N_("Crop Width"), N_("Crop width"), olympusRiIfdId, makerTags, unsignedLong, printValue),
TagInfo(0x0615, "CropHeight", N_("Crop Height"), N_("Crop height"), olympusRiIfdId, makerTags, unsignedLong, printValue),
TagInfo(0x1000, "LightSource", N_("Light Source"), N_("Light source"), olympusRiIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusRiLightSource)),
TagInfo(0x1001, "WhiteBalanceComp", N_("White Balance Comp"), N_("White balance comp"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x1010, "SaturationSetting", N_("Saturation Setting"), N_("Saturation setting"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x1011, "HueSetting", N_("Hue Setting"), N_("Hue setting"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x1012, "ContrastSetting", N_("Contrast Setting"), N_("Contrast setting"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x1013, "SharpnessSetting", N_("Sharpness Setting"), N_("Sharpness setting"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x2000, "CMExposureCompensation", N_("CM Exposure Compensation"), N_("CM exposure compensation"), olympusRiIfdId, makerTags, signedRational, printValue),
TagInfo(0x2001, "CMWhiteBalance", N_("CM White Balance"), N_("CM white balance"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x2002, "CMWhiteBalanceComp", N_("CM White Balance Comp"), N_("CM white balance comp"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x2010, "CMWhiteBalanceGrayPoint", N_("CM White Balance Gray Point"), N_("CM white balance gray point"), olympusRiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x2020, "CMSaturation", N_("CM Saturation"), N_("CM saturation"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x2021, "CMHue", N_("CM Hue"), N_("CM hue"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x2022, "CMContrast", N_("CM Contrast"), N_("CM contrast"), olympusRiIfdId, makerTags, signedShort, printValue),
TagInfo(0x2023, "CMSharpness", N_("CM Sharpness"), N_("CM sharpness"), olympusRiIfdId, makerTags, signedShort, printValue),
// End of list marker
TagInfo(0xffff, "(UnknownOlympusRiTag)", "(UnknownOlympusRiTag)", N_("Unknown OlympusRi tag"), olympusRiIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* OlympusMakerNote::tagListRi()
{
return tagInfoRi_;
}
// Gradation
std::ostream& OlympusMakerNote::print0x050f(std::ostream& os, const Value& value, const ExifData*)
{

@ -71,6 +71,10 @@ namespace Exiv2 {
static const TagInfo* tagListIp();
//! Return read-only list of built-in Olympus Focus Info tags
static const TagInfo* tagListFi();
//! Return read-only list of built-in Olympus FE tags
static const TagInfo* tagListFe();
//! Return read-only list of built-in Olympus Raw Info tags
static const TagInfo* tagListRi();
//! @name Print functions for Olympus %MakerNote tags
//@{
@ -95,6 +99,8 @@ namespace Exiv2 {
static const TagInfo tagInfoRd2_[];
static const TagInfo tagInfoIp_[];
static const TagInfo tagInfoFi_[];
static const TagInfo tagInfoFe_[];
static const TagInfo tagInfoRi_[];
}; // class OlympusMakerNote

@ -121,6 +121,16 @@ namespace Exiv2 {
{ olympusRd2IfdId, "Makernote", "OlympusRd2", OlympusMakerNote::tagListRd2 },
{ olympusIpIfdId, "Makernote", "OlympusIp", OlympusMakerNote::tagListIp },
{ olympusFiIfdId, "Makernote", "OlympusFi", OlympusMakerNote::tagListFi },
{ olympusFe1IfdId, "Makernote", "OlympusFe1", OlympusMakerNote::tagListFe },
{ olympusFe2IfdId, "Makernote", "OlympusFe2", OlympusMakerNote::tagListFe },
{ olympusFe3IfdId, "Makernote", "OlympusFe3", OlympusMakerNote::tagListFe },
{ olympusFe4IfdId, "Makernote", "OlympusFe4", OlympusMakerNote::tagListFe },
{ olympusFe5IfdId, "Makernote", "OlympusFe5", OlympusMakerNote::tagListFe },
{ olympusFe6IfdId, "Makernote", "OlympusFe6", OlympusMakerNote::tagListFe },
{ olympusFe7IfdId, "Makernote", "OlympusFe7", OlympusMakerNote::tagListFe },
{ olympusFe8IfdId, "Makernote", "OlympusFe8", OlympusMakerNote::tagListFe },
{ olympusFe9IfdId, "Makernote", "OlympusFe9", OlympusMakerNote::tagListFe },
{ olympusRiIfdId, "Makernote", "OlympusRi", OlympusMakerNote::tagListRi },
{ panasonicIfdId, "Makernote", "Panasonic", PanasonicMakerNote::tagList },
{ pentaxIfdId, "Makernote", "Pentax", PentaxMakerNote::tagList },
{ sigmaIfdId, "Makernote", "Sigma", SigmaMakerNote::tagList },

@ -110,7 +110,17 @@ namespace Exiv2 {
{ 285, "OlympusRd" },
{ 286, "OlympusRd2" },
{ 287, "OlympusIp" },
{ 288, "OlympusFi" }
{ 288, "OlympusFi" },
{ 289, "OlympusFe1" },
{ 290, "OlympusFe2" },
{ 291, "OlympusFe3" },
{ 292, "OlympusFe4" },
{ 293, "OlympusFe5" },
{ 294, "OlympusFe6" },
{ 295, "OlympusFe7" },
{ 296, "OlympusFe8" },
{ 297, "OlympusFe9" },
{ 298, "OlympusRi" }
};
bool TiffGroupInfo::operator==(const uint16_t& group) const

@ -370,6 +370,16 @@ namespace Exiv2 {
{ 0x2031, Group::olymp2mn, Group::olymprd2, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2040, Group::olymp2mn, Group::olympip, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2050, Group::olymp2mn, Group::olympfi, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2100, Group::olymp2mn, Group::olympfe1, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2200, Group::olymp2mn, Group::olympfe2, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2300, Group::olymp2mn, Group::olympfe3, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2400, Group::olymp2mn, Group::olympfe4, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2500, Group::olymp2mn, Group::olympfe5, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2600, Group::olymp2mn, Group::olympfe6, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2700, Group::olymp2mn, Group::olympfe7, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2800, Group::olymp2mn, Group::olympfe8, 0x927c, Group::exif, newTiffSubIfd },
{ 0x2900, Group::olymp2mn, Group::olympfe9, 0x927c, Group::exif, newTiffSubIfd },
{ 0x3000, Group::olymp2mn, Group::olympri, 0x927c, Group::exif, newTiffSubIfd },
{ Tag::next, Group::olymp2mn, Group::ignr, 0x927c, Group::exif, newTiffDirectory },
{ Tag::all, Group::olymp2mn, Group::olymp2mn, 0x927c, Group::exif, newTiffEntry },
@ -393,6 +403,36 @@ namespace Exiv2 {
// Olympus2 focus info subdir
{ Tag::all, Group::olympfi, Group::olympfi, 0x2050, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 1 subdir
{ Tag::all, Group::olympfe1, Group::olympfe1, 0x2100, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 2 subdir
{ Tag::all, Group::olympfe2, Group::olympfe2, 0x2200, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 3 subdir
{ Tag::all, Group::olympfe3, Group::olympfe3, 0x2300, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 4 subdir
{ Tag::all, Group::olympfe4, Group::olympfe4, 0x2400, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 5 subdir
{ Tag::all, Group::olympfe5, Group::olympfe5, 0x2500, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 6 subdir
{ Tag::all, Group::olympfe6, Group::olympfe6, 0x2600, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 7 subdir
{ Tag::all, Group::olympfe7, Group::olympfe7, 0x2700, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 8 subdir
{ Tag::all, Group::olympfe8, Group::olympfe8, 0x2800, Group::olymp2mn, newTiffEntry },
// Olympus2 FE 9 subdir
{ Tag::all, Group::olympfe9, Group::olympfe9, 0x2900, Group::olymp2mn, newTiffEntry },
// Olympus2 Raw Info subdir
{ Tag::all, Group::olympri, Group::olympri, 0x3000, Group::olymp2mn, newTiffEntry },
// Fujifilm makernote
{ Tag::next, Group::fujimn, Group::ignr, 0x927c, Group::exif, newTiffDirectory },
{ Tag::all, Group::fujimn, Group::fujimn, 0x927c, Group::exif, newTiffEntry },

@ -146,6 +146,9 @@ namespace Exiv2 {
nikon1IfdId, nikon2IfdId, nikon3IfdId, nikonPvIfdId,
olympusIfdId, olympus2IfdId, olympusCsIfdId, olympusEqIfdId,
olympusRdIfdId, olympusRd2IfdId, olympusIpIfdId, olympusFiIfdId,
olympusFe1IfdId, olympusFe2IfdId, olympusFe3IfdId, olympusFe4IfdId,
olympusFe5IfdId, olympusFe6IfdId, olympusFe7IfdId, olympusFe8IfdId,
olympusFe9IfdId, olympusRiIfdId,
panasonicIfdId, pentaxIfdId, sigmaIfdId, sonyIfdId,
lastIfdId };

Loading…
Cancel
Save