Added subIFD olympcs to Olympus2 makernote and ifdIds, tags. Still incomplete.
This commit is contained in:
parent
695aa1750a
commit
7216dae83d
@ -70,6 +70,7 @@ namespace Exiv2 {
|
||||
const uint16_t nikonpv = 280; //!< Nikon preview sub-IFD
|
||||
const uint16_t olymp1mn = 281; //!< Olympus makernote
|
||||
const uint16_t olymp2mn = 282; //!< Olympus II makernote
|
||||
const uint16_t olympcs = 283; //!< Olympus camera settings
|
||||
}
|
||||
|
||||
// *****************************************************************************
|
||||
|
||||
@ -57,6 +57,12 @@ namespace Exiv2 {
|
||||
{ 1, N_("On") }
|
||||
};
|
||||
|
||||
//! NoYes, multiple tags
|
||||
extern const TagDetails olympusNoYes[] = {
|
||||
{ 0, N_("No") },
|
||||
{ 1, N_("Yes") }
|
||||
};
|
||||
|
||||
//! Quality, tag 0x0201
|
||||
extern const TagDetails olympusQuality[] = {
|
||||
{ 1, N_("Standard Quality (SQ)") },
|
||||
@ -403,6 +409,35 @@ namespace Exiv2 {
|
||||
return tagInfo_;
|
||||
}
|
||||
|
||||
//! ExposureMode, tag 0x0200
|
||||
extern const TagDetails olympusExposureMode[] = {
|
||||
{ 1, N_("Manual") },
|
||||
{ 2, N_("Program") },
|
||||
{ 3, N_("Aperture-priority AE") },
|
||||
{ 4, N_("Shutter speed priority AE") },
|
||||
{ 5, N_("Program-shift") }
|
||||
};
|
||||
|
||||
const TagInfo OlympusMakerNote::tagInfoCs_[] = {
|
||||
TagInfo(0x0000, "CameraSettingsVersion", N_("Camera Settings Version"), N_("Camera settings version"), olympusCsIfdId, makerTags, undefined, printValue),
|
||||
TagInfo(0x0100, "PreviewImageValid", N_("PreviewImage Valid"), N_("Preview image valid"), olympusCsIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(olympusNoYes)),
|
||||
TagInfo(0x0101, "PreviewImageStart", N_("PreviewImage Start"), N_("Preview image start"), olympusCsIfdId, makerTags, unsignedLong, printValue),
|
||||
TagInfo(0x0102, "PreviewImageLength", N_("PreviewImage Length"), N_("Preview image length"), olympusCsIfdId, makerTags, unsignedLong, printValue),
|
||||
TagInfo(0x0200, "ExposureMode", N_("Exposure Mode"), N_("Exposure mode"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusExposureMode)),
|
||||
TagInfo(0x0201, "AELock", N_("AE Lock"), N_("Auto exposure lock"), olympusCsIfdId, makerTags, unsignedShort, EXV_PRINT_TAG(olympusOffOn)),
|
||||
// Todo: add remaining tags...
|
||||
|
||||
// End of list marker
|
||||
TagInfo(0xffff, "(UnknownOlympusCsTag)", "(UnknownOlympusCsTag)",
|
||||
N_("Unknown OlympusCs tag"),
|
||||
olympusCsIfdId, makerTags, invalidTypeId, printValue)
|
||||
};
|
||||
|
||||
const TagInfo* OlympusMakerNote::tagListCs()
|
||||
{
|
||||
return tagInfoCs_;
|
||||
}
|
||||
|
||||
std::ostream& OlympusMakerNote::print0x0200(std::ostream& os, const Value& value, const ExifData*)
|
||||
{
|
||||
if (value.count() != 3 || value.typeId() != unsignedLong) {
|
||||
|
||||
@ -59,6 +59,8 @@ namespace Exiv2 {
|
||||
public:
|
||||
//! Return read-only list of built-in Olympus tags
|
||||
static const TagInfo* tagList();
|
||||
//! Return read-only list of built-in Olympus Camera Settings tags
|
||||
static const TagInfo* tagListCs();
|
||||
|
||||
//! @name Print functions for Olympus %MakerNote tags
|
||||
//@{
|
||||
@ -73,6 +75,7 @@ namespace Exiv2 {
|
||||
private:
|
||||
//! Tag information
|
||||
static const TagInfo tagInfo_[];
|
||||
static const TagInfo tagInfoCs_[];
|
||||
|
||||
}; // class OlympusMakerNote
|
||||
|
||||
|
||||
@ -110,6 +110,8 @@ namespace Exiv2 {
|
||||
{ nikon3IfdId, "Makernote", "Nikon3", Nikon3MakerNote::tagList },
|
||||
{ nikonPvIfdId, "Makernote", "NikonPreview", ExifTags::ifdTagList },
|
||||
{ olympusIfdId, "Makernote", "Olympus", OlympusMakerNote::tagList },
|
||||
{ olympus2IfdId, "Makernote", "Olympus2", OlympusMakerNote::tagList },
|
||||
{ olympusCsIfdId, "Makernote", "OlympusCs", OlympusMakerNote::tagListCs },
|
||||
{ panasonicIfdId, "Makernote", "Panasonic", PanasonicMakerNote::tagList },
|
||||
{ pentaxIfdId, "Makernote", "Pentax", PentaxMakerNote::tagList },
|
||||
{ sigmaIfdId, "Makernote", "Sigma", SigmaMakerNote::tagList },
|
||||
|
||||
@ -65,7 +65,8 @@ namespace Exiv2 {
|
||||
};
|
||||
|
||||
// Todo: This mapping table probably belongs somewhere else - move it
|
||||
//! List of groups and their names
|
||||
// Note: Names must be unique!
|
||||
//! List of groups and their names.
|
||||
extern const TiffGroupInfo tiffGroupInfo[] = {
|
||||
{ 1, "Image" },
|
||||
{ 2, "Thumbnail" },
|
||||
@ -77,7 +78,7 @@ namespace Exiv2 {
|
||||
{ 8, "SubImage2" },
|
||||
{ 9, "SubImage3" },
|
||||
{ 10, "SubImage4" },
|
||||
// { 257, "Olympus" },
|
||||
// 257 not needed (olympmn)
|
||||
{ 258, "Fujifilm" },
|
||||
{ 259, "Canon" },
|
||||
{ 260, "CanonCs" },
|
||||
@ -91,7 +92,7 @@ namespace Exiv2 {
|
||||
{ 268, "Sigma" },
|
||||
// 269 not needed (sonymn)
|
||||
{ 270, "Sony" },
|
||||
{ 271, "Sony" },
|
||||
{ 271, "Sony" }, // Todo: Need second Sony group!
|
||||
{ 272, "Minolta" },
|
||||
{ 273, "MinoltaCsOld" },
|
||||
{ 274, "MinoltaCsNew" },
|
||||
@ -102,7 +103,8 @@ namespace Exiv2 {
|
||||
{ 279, "Pentax" },
|
||||
{ 280, "NikonPreview" },
|
||||
{ 281, "Olympus" },
|
||||
{ 282, "Olympus" }
|
||||
{ 282, "Olympus2" },
|
||||
{ 283, "OlympusCs" }
|
||||
};
|
||||
|
||||
bool TiffGroupInfo::operator==(const uint16_t& group) const
|
||||
|
||||
@ -371,10 +371,10 @@ namespace Exiv2 {
|
||||
{ Tag::next, Group::olymp1mn, Group::ignr, 0x927c, Group::exif, newTiffDirectory },
|
||||
{ Tag::all, Group::olymp1mn, Group::olymp1mn, 0x927c, Group::exif, newTiffEntry },
|
||||
|
||||
// Olympus makernote - some Olympus cameras use Minolta structures
|
||||
// Todo: Adding such tags will not work (maybe result in a Minolta makernote), need separate groups
|
||||
// Olympus2 makernote
|
||||
{ 0x0001, Group::olymp2mn, Group::minocso, 0x927c, Group::exif, newTiffArrayEntry<ttUnsignedLong, false> },
|
||||
{ 0x0003, Group::olymp2mn, Group::minocsn, 0x927c, Group::exif, newTiffArrayEntry<ttUnsignedLong, false> },
|
||||
{ 0x2020, Group::olymp2mn, Group::olympcs, 0x927c, Group::exif, newTiffSubIfd },
|
||||
{ Tag::next, Group::olymp2mn, Group::ignr, 0x927c, Group::exif, newTiffDirectory },
|
||||
{ Tag::all, Group::olymp2mn, Group::olymp2mn, 0x927c, Group::exif, newTiffEntry },
|
||||
|
||||
|
||||
@ -142,7 +142,8 @@ namespace Exiv2 {
|
||||
minoltaIfdId, minoltaCs5DIfdId, minoltaCs7DIfdId,
|
||||
minoltaCsOldIfdId, minoltaCsNewIfdId,
|
||||
nikon1IfdId, nikon2IfdId, nikon3IfdId, nikonPvIfdId,
|
||||
olympusIfdId, panasonicIfdId, pentaxIfdId, sigmaIfdId, sonyIfdId,
|
||||
olympusIfdId, olympus2IfdId, olympusCsIfdId,
|
||||
panasonicIfdId, pentaxIfdId, sigmaIfdId, sonyIfdId,
|
||||
lastIfdId };
|
||||
|
||||
//! Container for binary data
|
||||
|
||||
Loading…
Reference in New Issue
Block a user