Added methods to access built-in read-only taglists (Max Lapshin)

This commit is contained in:
Andreas Huggel 2006-11-21 15:43:11 +00:00
parent 757724b5f1
commit 3ff1bf4e13
18 changed files with 154 additions and 1 deletions

View File

@ -102,6 +102,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownCanonMakerNoteTag)", "(UnknownCanonMakerNoteTag)", "Unknown CanonMakerNote tag", canonIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* CanonMakerNote::tagList()
{
return tagInfo_;
}
//! Macro, tag 0x0001
extern const TagDetails canonCsMacro[] = {
{ 1, "On" },
@ -368,6 +373,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownCanonCsTag)", "(UnknownCanonCsTag)", "Unknown Canon Camera Settings 1 tag", canonCsIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* CanonMakerNote::tagListCs()
{
return tagInfoCs_;
}
//! WhiteBalance, tag 0x0007
extern const TagDetails canonSiWhiteBalance[] = {
{ 0, "Auto" },
@ -449,6 +459,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownCanonSiTag)", "(UnknownCanonSiTag)", "Unknown Canon Camera Settings 2 tag", canonSiIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* CanonMakerNote::tagListSi()
{
return tagInfoSi_;
}
//! PanoramaDirection, tag 0x0005
extern const TagDetails canonPaDirection[] = {
{ 0, "Left to right" },
@ -466,6 +481,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownCanonCs2Tag)", "(UnknownCanonCs2Tag)", "Unknown Canon Panorama tag", canonPaIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* CanonMakerNote::tagListPa()
{
return tagInfoPa_;
}
// Canon Custom Function Tag Info
const TagInfo CanonMakerNote::tagInfoCf_[] = {
TagInfo(0x0001, "NoiseReduction", "NoiseReduction", "Long exposure noise reduction", canonCfIfdId, makerTags, unsignedShort, printValue),
@ -487,6 +507,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownCanonCfTag)", "(UnknownCanonCfTag)", "Unknown Canon Custom Function tag", canonCfIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* CanonMakerNote::tagListCf()
{
return tagInfoCf_;
}
//! AFPointsUsed, tag 0x0016
extern const TagDetailsBitmask canonPiAFPointsUsed[] = {
{ 0x01, "right" },
@ -523,6 +548,10 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownCanonPiTag)", "(UnknownCanonPiTag)", "Unknown Canon Picture Info tag", canonPiIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* CanonMakerNote::tagListPi()
{
return tagInfoPi_;
}
int CanonMakerNote::read(const byte* buf,
long len,

View File

@ -127,6 +127,18 @@ namespace Exiv2 {
long size() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Canon tags
static const TagInfo* tagList();
//! Return read-only list of built-in Canon Camera Settings tags
static const TagInfo* tagListCs();
//! Return read-only list of built-in Canon Shot Info tags
static const TagInfo* tagListSi();
//! Return read-only list of built-in Canon Panorama tags
static const TagInfo* tagListPa();
//! Return read-only list of built-in Canon Custom Function tags
static const TagInfo* tagListCf();
//! Return read-only list of built-in Canon Picture Info tags
static const TagInfo* tagListPi();
//@}
//! @name Print functions for Canon %MakerNote tags

View File

@ -163,6 +163,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "(UnknownFujiMakerNoteTag)", "Unknown FujiMakerNote tag", fujiIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* FujiMakerNote::tagList()
{
return tagInfo_;
}
FujiMakerNote::FujiMakerNote(bool alloc)
: IfdMakerNote(fujiIfdId, alloc)
{

View File

@ -116,6 +116,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Fujifilm tags
static const TagInfo* tagList();
//@}
//! @cond IGNORE

View File

@ -240,6 +240,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownMinoltaMakerNoteTag)", "(UnknownMinoltaMakerNoteTag)", "Unknown MinoltaMakerNote tag", minoltaIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* MinoltaMakerNote::tagList()
{
return tagInfo_;
}
// -- Standard Minolta camera settings ---------------------------------------------------------------
//! Lookup table to translate Minolta Std camera settings exposure mode values to readable labels
@ -601,9 +606,14 @@ namespace Exiv2 {
TagInfo(0x003F, "FlashMetering", "Flash Metering", "Flash metering", minoltaCsNewIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(minoltaFlashMeteringStd)),
// End of list marker
TagInfo(0xffff, "(UnknownMinoltaCsTag)", "(UnknownMinoltaCsTag)", "Unknown Minolta Camera Settings tag", minoltaCsNewIfdId, makerTags, invalidTypeId, printValue)
TagInfo(0xffff, "(UnknownMinoltaCsStdTag)", "(UnknownMinoltaCsStdTag)", "Unknown Minolta Camera Settings tag", minoltaCsNewIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* MinoltaMakerNote::tagListCsStd()
{
return tagInfoCsStd_;
}
// -- Minolta Dynax 7D camera settings ---------------------------------------------------------------
//! Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels
@ -750,6 +760,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownMinoltaCs7DTag)", "(UnknownMinoltaCs7DTag)", "Unknown Minolta Camera Settings 7D tag", minoltaCs7DIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* MinoltaMakerNote::tagListCs7D()
{
return tagInfoCs7D_;
}
// -- Minolta Dynax 5D camera settings ---------------------------------------------------------------
//! Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels
@ -934,6 +949,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownMinoltaCs5DTag)", "(UnknownMinoltaCs5DTag)", "Unknown Minolta Camera Settings 5D tag", minoltaCs5DIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* MinoltaMakerNote::tagListCs5D()
{
return tagInfoCs5D_;
}
// TODO : Add camera settings tags info "New2"...
//! @cond IGNORE

View File

@ -126,6 +126,14 @@ namespace Exiv2 {
long size() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Minolta tags
static const TagInfo* tagList();
//! Return read-only list of built-in Minolta Standard Camera Settings tags
static const TagInfo* tagListCsStd();
//! Return read-only list of built-in Minolta 7D Camera Settings tags
static const TagInfo* tagListCs7D();
//! Return read-only list of built-in Minolta 5D Camera Settings tags
static const TagInfo* tagListCs5D();
//@}
//! @name Print functions for Minolta %MakerNote tags

View File

@ -106,6 +106,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownNikon1MnTag)", "(UnknownNikon1MnTag)", "Unknown Nikon1MakerNote tag", nikon1IfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* Nikon1MakerNote::tagList()
{
return tagInfo_;
}
Nikon1MakerNote::Nikon1MakerNote(bool alloc)
: IfdMakerNote(nikon1IfdId, alloc)
{
@ -300,6 +305,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownNikon2MnTag)", "(UnknownNikon2MnTag)", "Unknown Nikon2MakerNote tag", nikon2IfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* Nikon2MakerNote::tagList()
{
return tagInfo_;
}
Nikon2MakerNote::Nikon2MakerNote(bool alloc)
: IfdMakerNote(nikon2IfdId, alloc)
{
@ -500,6 +510,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownNikon3MnTag)", "(UnknownNikon3MnTag)", "Unknown Nikon3MakerNote tag", nikon3IfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* Nikon3MakerNote::tagList()
{
return tagInfo_;
}
Nikon3MakerNote::Nikon3MakerNote(bool alloc)
: IfdMakerNote(nikon3IfdId, alloc)
{

View File

@ -114,6 +114,8 @@ namespace Exiv2 {
//@{
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Nikon1 tags
static const TagInfo* tagList();
//@}
//! @name Print functions for Nikon1 %MakerNote tags
@ -184,6 +186,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Nikon2 tags
static const TagInfo* tagList();
//@}
//! @name Print functions for Nikon2 %MakerNote tags
@ -243,6 +247,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Nikon3 tags
static const TagInfo* tagList();
//@}
//! @name Print functions for Nikon3 %MakerNote tags

View File

@ -164,6 +164,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownOlympusMakerNoteTag)", "(UnknownOlympusMakerNoteTag)", "Unknown OlympusMakerNote tag", olympusIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* OlympusMakerNote::tagList()
{
return tagInfo_;
}
OlympusMakerNote::OlympusMakerNote(bool alloc)
: IfdMakerNote(olympusIfdId, alloc)
{

View File

@ -119,6 +119,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Olympus tags
static const TagInfo* tagList();
//@}
//! @name Print functions for Olympus %MakerNote tags

View File

@ -181,6 +181,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownPanasonicMakerNoteTag)", "(UnknownPanasonicMakerNoteTag)", "Unknown PanasonicMakerNote tag", panasonicIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* PanasonicMakerNote::tagList()
{
return tagInfo_;
}
PanasonicMakerNote::PanasonicMakerNote(bool alloc)
: IfdMakerNote(panasonicIfdId, alloc, false)
{

View File

@ -116,6 +116,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Panasonic tags
static const TagInfo* tagList();
//@}
//! @name Print functions for Panasonic %MakerNote tags

View File

@ -89,6 +89,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "(UnknownSigmaMakerNoteTag)", "Unknown SigmaMakerNote tag", sigmaIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* SigmaMakerNote::tagList()
{
return tagInfo_;
}
SigmaMakerNote::SigmaMakerNote(bool alloc)
: IfdMakerNote(sigmaIfdId, alloc)
{

View File

@ -115,6 +115,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Sigma tags
static const TagInfo* tagList();
//@}
//! @name Print functions for Sigma (Foveon) %MakerNote tags

View File

@ -71,6 +71,11 @@ namespace Exiv2 {
TagInfo(0xffff, "(UnknownSonyMakerNoteTag)", "Unknown SonyMakerNote tag", "Unknown SonyMakerNote tag", sonyIfdId, makerTags, invalidTypeId, printValue)
};
const TagInfo* SonyMakerNote::tagList()
{
return tagInfo_;
}
SonyMakerNote::SonyMakerNote(bool alloc)
: IfdMakerNote(sonyIfdId, alloc, false)
{

View File

@ -113,6 +113,8 @@ namespace Exiv2 {
int checkHeader() const;
AutoPtr create(bool alloc =true) const;
AutoPtr clone() const;
//! Return read-only list of built-in Sony tags
static const TagInfo* tagList();
//@}
//! @cond IGNORE

View File

@ -463,6 +463,11 @@ namespace Exiv2 {
"Unknown IFD tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
const TagInfo* ExifTags::ifdTagList()
{
return ifdTagInfo;
}
//! ExposureProgram, tag 0x8822
extern const TagDetails exifExposureProgram[] = {
{ 0, "Not defined" },
@ -900,6 +905,11 @@ namespace Exiv2 {
"Unknown Exif tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
const TagInfo* ExifTags::exifTagList()
{
return exifTagInfo;
}
//! GPS latitude reference, tag 0x0001; also GPSDestLatitudeRef, tag 0x0013
extern const TagDetails exifGPSLatitudeRef[] = {
{ 78, "North" },
@ -1074,6 +1084,11 @@ namespace Exiv2 {
"Unknown GPSInfo tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
const TagInfo* ExifTags::gpsTagList()
{
return gpsTagInfo;
}
// Exif Interoperability IFD Tags
static const TagInfo iopTagInfo[] = {
TagInfo(0x0001, "InteroperabilityIndex", "InteroperabilityIndex",
@ -1100,6 +1115,11 @@ namespace Exiv2 {
"Unknown Exif Interoperability tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
const TagInfo* ExifTags::iopTagList()
{
return iopTagInfo;
}
// Unknown Tag
static const TagInfo unknownTag(0xffff, "Unknown tag", "Unknown tag",
"Unknown tag", ifdIdNotSet, sectionIdNotSet, asciiString, printValue);

View File

@ -272,6 +272,14 @@ namespace Exiv2 {
uint16_t tag,
IfdId ifdId,
const Value& value);
//! Return read-only list of built-in IFD0/1 tags
static const TagInfo* ifdTagList();
//! Return read-only list of built-in Exif IFD tags
static const TagInfo* exifTagList();
//! Return read-only list of built-in IOP tags
static const TagInfo* iopTagList();
//! Return read-only list of built-in GPS tags
static const TagInfo* gpsTagList();
//! Print a list of all standard Exif tags to output stream
static void taglist(std::ostream& os);
//! Print a list of all tags related to one makernote %IfdId