[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:35:56 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=9bf351c
The following commit has been merged in the master branch:
commit 9bf351c60bf9944126ccdc8832241f1add06a5bf
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Sat Jan 17 02:23:27 2004 +0000
More code
---
src/exif.cpp | 35 ++++-
src/exif.hpp | 16 ++-
src/exiftest.cpp | 10 +-
src/tags.cpp | 416 ++++++++++++++++++++++++++-----------------------------
src/tags.hpp | 33 +++--
src/utils.cpp | 17 +--
src/utils.hpp | 25 +---
7 files changed, 271 insertions(+), 281 deletions(-)
diff --git a/src/exif.cpp b/src/exif.cpp
index ae140c6..4d9993a 100644
--- a/src/exif.cpp
+++ b/src/exif.cpp
@@ -12,7 +12,7 @@
RCS information
$Name: $
- $Revision: 1.1 $
+ $Revision: 1.2 $
*/
// *****************************************************************************
// included header files
@@ -215,6 +215,14 @@ namespace Exif {
return *this;
} // Metadatum::operator=
+ std::string Metadatum::key() const
+ {
+ std::string key = std::string(ifdItem())
+ + "." + std::string(sectionName())
+ + "." + std::string(tagName());
+ return key;
+ }
+
Ifd::Ifd(IfdId ifdId)
: ifdId_(ifdId), offset_(0), next_(0), size_(0)
{
@@ -427,8 +435,8 @@ namespace Exif {
if (rc) return rc;
// Find and read Interoperability IFD in ExifIFD
- Ifd exifIopIfd(exifIopIfd);
- rc = exifIfd.readSubIfd(exifIopIfd, buf, byteOrder, 0xa005);
+ Ifd iopIfd(iopIfd);
+ rc = exifIfd.readSubIfd(iopIfd, buf, byteOrder, 0xa005);
if (rc) return rc;
// Find and read GPSInfo sub-IFD in IFD0
@@ -443,16 +451,31 @@ namespace Exif {
if (rc) return rc;
}
- // Todo: Should we also look for Exif IFD and GPSInfo IFD in IFD1
- // and, if found, Interop. IFD in the Exif IFD???
+ // Find and read ExifIFD sub-IFD of IFD1
+ Ifd ifd1ExifIfd(ifd1ExifIfd);
+ rc = ifd1.readSubIfd(ifd1ExifIfd, buf, byteOrder, 0x8769);
+ if (rc) return rc;
+
+ // Find and read Interoperability IFD in ExifIFD of IFD1
+ Ifd ifd1IopIfd(ifd1IopIfd);
+ rc = ifd1ExifIfd.readSubIfd(ifd1IopIfd, buf, byteOrder, 0xa005);
+ if (rc) return rc;
+
+ // Find and read GPSInfo sub-IFD in IFD1
+ Ifd ifd1GpsIfd(ifd1GpsIfd);
+ rc = ifd1.readSubIfd(ifd1GpsIfd, buf, byteOrder, 0x8825);
+ if (rc) return rc;
// Finally, copy all metadata from the IFDs to the internal metadata
metadata_.clear();
add(ifd0.entries());
add(exifIfd.entries());
- add(exifIopIfd.entries());
+ add(iopIfd.entries());
add(gpsIfd.entries());
add(ifd1.entries());
+ add(ifd1ExifIfd.entries());
+ add(ifd1IopIfd.entries());
+ add(ifd1GpsIfd.entries());
return 0;
} // ExifData::read
diff --git a/src/exif.hpp b/src/exif.hpp
index 610d152..076f887 100644
--- a/src/exif.hpp
+++ b/src/exif.hpp
@@ -6,14 +6,14 @@
*
*/
/*!
- @file exif.h
+ @file exif.hpp
@brief Encoding and decoding of %Exif data
- @version $Name: $ $Revision: 1.1 $
+ @version $Name: $ $Revision: 1.2 $
@author Andreas Huggel (ahu)
@date 09-Jan-03, ahu: created
*/
-#ifndef _EXIF_H_
-#define _EXIF_H_
+#ifndef _EXIF_HPP_
+#define _EXIF_HPP_
// *****************************************************************************
// included header files
@@ -161,9 +161,13 @@ namespace Exif {
long typeSize() const { return ExifTags::typeSize(type_); }
//! Returns the name of the IFD
const char* ifdName() const { return ExifTags::ifdName(ifdId_); }
+ //! Returns the related image item (image or thumbnail)
+ const char* ifdItem() const { return ExifTags::ifdItem(ifdId_); }
//! Returns the name of the section
const char* sectionName() const
{ return ExifTags::sectionName(tag_, ifdId_); }
+ //! Returns a unique key of the tag (ifdItem.sectionName.tagName)
+ std::string key() const;
public:
uint16 tag_; //!< Tag value
@@ -208,7 +212,7 @@ namespace Exif {
class Ifd {
public:
//! Constructor. Allows to set the IFD identifier.
- Ifd(IfdId ifdId =IfdIdNotSet);
+ explicit Ifd(IfdId ifdId =IfdIdNotSet);
/*!
@brief Read a complete IFD and its data from a data buffer
@@ -361,4 +365,4 @@ namespace Exif {
} // namespace Exif
-#endif // #ifndef _EXIF_H_
+#endif // #ifndef _EXIF_HPP_
diff --git a/src/exiftest.cpp b/src/exiftest.cpp
index 1e87ffd..d1a7015 100644
--- a/src/exiftest.cpp
+++ b/src/exiftest.cpp
@@ -19,15 +19,11 @@ int main(int argc, char* const argv[])
Exif::ExifData::const_iterator i = beg;
for (; i != end; ++i) {
- std::cout << std::setw(9) << std::setfill(' ') << std::left
- << i->ifdName() << " "
- << std::setw(9) << std::setfill(' ') << std::left
- << i->sectionName() << " "
- << "0x"
+ std::cout << "0x"
<< std::hex << std::setw(4) << std::setfill('0') << std::right
<< i->tag_ << " "
- << std::setw(27) << std::setfill(' ') << std::left
- << i->tagName() << " "
+ << std::setw(50) << std::setfill(' ') << std::left
+ << i->key() << " "
<< std::setw(17) << std::setfill(' ') << std::left
<< i->typeName() << " "
<< std::dec << std::setw(3) << std::setfill(' ') << std::right
diff --git a/src/tags.cpp b/src/tags.cpp
index 5d728aa..1ef70a4 100644
--- a/src/tags.cpp
+++ b/src/tags.cpp
@@ -12,59 +12,59 @@
RCS information
$Name: $
- $Revision: 1.1 $
+ $Revision: 1.2 $
*/
// *****************************************************************************
// included header files
#include "tags.hpp"
-// + standard includes
-
-// *****************************************************************************
-// local declarations
-namespace {
-
-}
-
// *****************************************************************************
// class member definitions
namespace Exif {
- IfdInfo::IfdInfo(IfdId ifdId, const char* name)
- : ifdId_(ifdId), name_(name)
+ IfdInfo::IfdInfo(IfdId ifdId, const char* name, const char* item)
+ : ifdId_(ifdId), name_(name), item_(item)
{
}
const IfdInfo ExifTags::ifdInfo_[] = {
- IfdInfo(IfdIdNotSet, "(Unknown IFD)"),
-
- IfdInfo(ifd0, "IFD0"),
- IfdInfo(exifIfd, "Exif"),
- IfdInfo(gpsIfd, "GPSInfo"),
- IfdInfo(exifMakerIfd, "MakerNote"),
- IfdInfo(exifIopIfd, "Exif Iop."),
- IfdInfo(ifd1, "IFD1"),
-
- IfdInfo(ifd1ExifIfd, "Exif (at IFD1)"),
- IfdInfo(ifd1GpsIfd, "GPSInfo (at IFD1)"),
- IfdInfo(ifd1MakerIfd, "MakerNote (at IFD1)"),
- IfdInfo(ifd1ExifIopIfd, "Exif Iop. (at IFD1)")
+ IfdInfo(IfdIdNotSet, "(Unknown IFD)", "(Unknown data area)"),
+ IfdInfo(ifd0, "IFD0", "Image"),
+ IfdInfo(exifIfd, "Exif", "Image"),
+ IfdInfo(gpsIfd, "GPSInfo", "Image"),
+ IfdInfo(makerIfd, "MakerNote", "Image"),
+ IfdInfo(iopIfd, "Iop", "Image"),
+ IfdInfo(ifd1, "IFD1", "Thumbnail"),
+ IfdInfo(ifd1ExifIfd, "Exif", "Thumbnail"),
+ IfdInfo(ifd1GpsIfd, "GPSInfo", "Thumbnail"),
+ IfdInfo(ifd1MakerIfd, "MakerNote", "Thumbnail"),
+ IfdInfo(ifd1IopIfd, "Iop", "Thumbnail")
};
- SectionInfo::SectionInfo(SectionId sectionId, const char* name)
- : sectionId_(sectionId), name_(name)
+ SectionInfo::SectionInfo(
+ SectionId sectionId,
+ const char* name,
+ const char* desc
+ )
+ : sectionId_(sectionId), name_(name), desc_(desc)
{
}
const SectionInfo ExifTags::sectionInfo_[] = {
- SectionInfo(SectionIdNotSet, "(Unknown Section)"),
-
- SectionInfo(ifd0Tiff, "IFD0"),
- SectionInfo(exifIfdSection, "Exif"),
- SectionInfo(gpsIfdSection, "GPSInfo"),
- SectionInfo(exifIopIfdSection, "Exif Iop."),
- SectionInfo(ifd1Section, "IFD1")
-
+ SectionInfo(SectionIdNotSet, "(UnknownSection)", "Unknown section"),
+ SectionInfo(imgStruct, "ImageStructure", "Image data structure"),
+ SectionInfo(recOffset, "RecordingOffset", "Recording offset"),
+ SectionInfo(imgCharacter, "ImageCharacteristics", "Image data characteristics"),
+ SectionInfo(otherTags, "OtherTags", "Other data"),
+ SectionInfo(exifFormat, "ExifFormat", "Exif data structure"),
+ SectionInfo(exifVersion, "ExifVersion", "Exif Version"),
+ SectionInfo(imgConfig, "ImageConfig", "Image configuration"),
+ SectionInfo(userInfo, "UserInfo", "User information"),
+ SectionInfo(relatedFile, "RelatedFile", "Related file"),
+ SectionInfo(dateTime, "DateTime", "Date and time"),
+ SectionInfo(captureCond, "CaptureConditions", "Picture taking conditions"),
+ SectionInfo(gpsTags, "GPS", "GPS information"),
+ SectionInfo(iopTags, "Interoperability", "Interoperability information")
};
TagFormat::TagFormat(uint16 type, const char* name, long size)
@@ -101,198 +101,184 @@ namespace Exif {
{
}
- //! Lookup list with tags, their names and where they belong to
- const TagInfo ExifTags::tagInfo_[] = {
- // Exif Interoperability IFD Tags
- TagInfo(0x0001, "InteroperabilityIndex", "Interoperability Identification", exifIopIfd, exifIopIfdSection),
- TagInfo(0x0002, "InteroperabilityVersion", "Interoperability version", exifIopIfd, exifIopIfdSection),
- TagInfo(0x1000, "RelatedImageFileFormat", "File format of image file", exifIopIfd, exifIopIfdSection),
- TagInfo(0x1001, "RelatedImageWidth", "Image width", exifIopIfd, exifIopIfdSection),
- TagInfo(0x1002, "RelatedImageLength", "Image height", exifIopIfd, exifIopIfdSection),
-
- // GPS Info Tags
- TagInfo(0x0000, "GPSVersionID", "GPS tag version", gpsIfd, gpsIfdSection),
- TagInfo(0x0001, "GPSLatitudeRef", "North or South Latitude", gpsIfd, gpsIfdSection),
- TagInfo(0x0002, "GPSLatitude", "Latitude", gpsIfd, gpsIfdSection),
- TagInfo(0x0003, "GPSLongitudeRef", "East or West Longitude", gpsIfd, gpsIfdSection),
- TagInfo(0x0004, "GPSLongitude", "Longitude", gpsIfd, gpsIfdSection),
- TagInfo(0x0005, "GPSAltitudeRef", "Altitude reference", gpsIfd, gpsIfdSection),
- TagInfo(0x0006, "GPSAltitude", "Altitude", gpsIfd, gpsIfdSection),
- TagInfo(0x0007, "GPSTimeStamp", "GPS time (atomic clock)", gpsIfd, gpsIfdSection),
- TagInfo(0x0008, "GPSSatellites", "GPS satellites used for measurement", gpsIfd, gpsIfdSection),
- TagInfo(0x0009, "GPSStatus", "GPS receiver status", gpsIfd, gpsIfdSection),
- TagInfo(0x000a, "GPSMeasureMode", "GPS measurement mode", gpsIfd, gpsIfdSection),
- TagInfo(0x000b, "GPSDOP", "Measurement precision", gpsIfd, gpsIfdSection),
- TagInfo(0x000c, "GPSSpeedRef", "Speed unit", gpsIfd, gpsIfdSection),
- TagInfo(0x000d, "GPSSpeed", "Speed of GPS receiver", gpsIfd, gpsIfdSection),
- TagInfo(0x000e, "GPSTrackRef", "Reference for direction of movement", gpsIfd, gpsIfdSection),
- TagInfo(0x000f, "GPSTrack", "Direction of movement", gpsIfd, gpsIfdSection),
- TagInfo(0x0010, "GPSImgDirectionRef", "Reference for direction of image", gpsIfd, gpsIfdSection),
- TagInfo(0x0011, "GPSImgDirection", "Direction of image", gpsIfd, gpsIfdSection),
- TagInfo(0x0012, "GPSMapDatum", "Geodetic survey data used", gpsIfd, gpsIfdSection),
- TagInfo(0x0013, "GPSDestLatitudeRef", "Reference for latitude of destination", gpsIfd, gpsIfdSection),
- TagInfo(0x0014, "GPSDestLatitude", "Latitude of destination", gpsIfd, gpsIfdSection),
- TagInfo(0x0015, "GPSDestLongitudeRef", "Reference for longitude of destination", gpsIfd, gpsIfdSection),
- TagInfo(0x0016, "GPSDestLongitude", "Longitude of destination", gpsIfd, gpsIfdSection),
- TagInfo(0x0017, "GPSDestBearingRef", "Reference for bearing of destination", gpsIfd, gpsIfdSection),
- TagInfo(0x0018, "GPSDestBearing", "Bearing of destination", gpsIfd, gpsIfdSection),
- TagInfo(0x0019, "GPSDestDistanceRef", "Reference for distance to destination", gpsIfd, gpsIfdSection),
- TagInfo(0x001a, "GPSDestDistance", "Distance to destination", gpsIfd, gpsIfdSection),
- TagInfo(0x001b, "GPSProcessingMethod", "Name of GPS processing method", gpsIfd, gpsIfdSection),
- TagInfo(0x001c, "GPSAreaInformation", "Name of GPS area", gpsIfd, gpsIfdSection),
- TagInfo(0x001d, "GPSDateStamp", "GPS date", gpsIfd, gpsIfdSection),
- TagInfo(0x001e, "GPSDifferential", "GPS differential correction", gpsIfd, gpsIfdSection),
-
- // IFD0 Tags
- TagInfo(0x0100, "ImageWidth", "Image width", ifd0, ifd0Tiff),
- TagInfo(0x0101, "ImageLength", "Image height", ifd0, ifd0Tiff),
- TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd0, ifd0Tiff),
- TagInfo(0x0103, "Compression", "Compression scheme", ifd0, ifd0Tiff),
- TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd0, ifd0Tiff),
- TagInfo(0x010e, "ImageDescription", "Image title", ifd0, ifd0Tiff),
- TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd0, ifd0Tiff),
- TagInfo(0x0110, "Model", "Model of image input equipment", ifd0, ifd0Tiff),
- TagInfo(0x0111, "StripOffsets", "Image data location", ifd0, ifd0Tiff),
- TagInfo(0x0112, "Orientation", "Orientation of image", ifd0, ifd0Tiff),
- TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd0, ifd0Tiff),
- TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd0, ifd0Tiff),
- TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd0, ifd0Tiff),
- TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd0, ifd0Tiff),
- TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd0, ifd0Tiff),
- TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd0, ifd0Tiff),
- TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd0, ifd0Tiff),
- TagInfo(0x012d, "TransferFunction", "Transfer function", ifd0, ifd0Tiff),
- TagInfo(0x0131, "Software", "Software used", ifd0, ifd0Tiff),
- TagInfo(0x0132, "DateTime", "File change date and time", ifd0, ifd0Tiff),
- TagInfo(0x013b, "Artist", "Person who created the image", ifd0, ifd0Tiff),
- TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd0, ifd0Tiff),
- TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd0, ifd0Tiff),
- TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd0, ifd0Tiff),
- TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd0, ifd0Tiff),
- TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd0, ifd0Tiff),
- TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd0, ifd0Tiff),
- TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd0, ifd0Tiff),
- TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd0, ifd0Tiff),
- TagInfo(0x8298, "Copyright", "Copyright holder", ifd0, ifd0Tiff),
- TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd0, ifd0Tiff),
- TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd0, ifd0Tiff),
-
- // IFD1 Tags
- TagInfo(0x0100, "ImageWidth", "Image width", ifd1, ifd1Section),
- TagInfo(0x0101, "ImageLength", "Image height", ifd1, ifd1Section),
- TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd1, ifd1Section),
- TagInfo(0x0103, "Compression", "Compression scheme", ifd1, ifd1Section),
- TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd1, ifd1Section),
- TagInfo(0x010e, "ImageDescription", "Image title", ifd1, ifd1Section),
- TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd1, ifd1Section),
- TagInfo(0x0110, "Model", "Model of image input equipment", ifd1, ifd1Section),
- TagInfo(0x0111, "StripOffsets", "Image data location", ifd1, ifd1Section),
- TagInfo(0x0112, "Orientation", "Orientation of image", ifd1, ifd1Section),
- TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd1, ifd1Section),
- TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd1, ifd1Section),
- TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd1, ifd1Section),
- TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd1, ifd1Section),
- TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd1, ifd1Section),
- TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd1, ifd1Section),
- TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd1, ifd1Section),
- TagInfo(0x012d, "TransferFunction", "Transfer function", ifd1, ifd1Section),
- TagInfo(0x0131, "Software", "Software used", ifd1, ifd1Section),
- TagInfo(0x0132, "DateTime", "File change date and time", ifd1, ifd1Section),
- TagInfo(0x013b, "Artist", "Person who created the image", ifd1, ifd1Section),
- TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd1, ifd1Section),
- TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd1, ifd1Section),
- TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd1, ifd1Section),
- TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd1, ifd1Section),
- TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd1, ifd1Section),
- TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd1, ifd1Section),
- TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd1, ifd1Section),
- TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd1, ifd1Section),
- TagInfo(0x8298, "Copyright", "Copyright holder", ifd1, ifd1Section),
- TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd1, ifd1Section),
- TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd1, ifd1Section),
+ // Base IFD Tags (IFD0 and IFD1)
+ static const TagInfo ifdTagInfo[] = {
+ TagInfo(0x0100, "ImageWidth", "Image width", ifd0, imgStruct),
+ TagInfo(0x0101, "ImageLength", "Image height", ifd0, imgStruct),
+ TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd0, imgStruct),
+ TagInfo(0x0103, "Compression", "Compression scheme", ifd0, imgStruct),
+ TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd0, imgStruct),
+ TagInfo(0x010e, "ImageDescription", "Image title", ifd0, otherTags),
+ TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd0, otherTags),
+ TagInfo(0x0110, "Model", "Model of image input equipment", ifd0, otherTags),
+ TagInfo(0x0111, "StripOffsets", "Image data location", ifd0, recOffset),
+ TagInfo(0x0112, "Orientation", "Orientation of image", ifd0, imgStruct),
+ TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd0, imgStruct),
+ TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd0, recOffset),
+ TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd0, recOffset),
+ TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd0, imgStruct),
+ TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd0, imgStruct),
+ TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd0, imgStruct),
+ TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd0, imgStruct),
+ TagInfo(0x012d, "TransferFunction", "Transfer function", ifd0, imgCharacter),
+ TagInfo(0x0131, "Software", "Software used", ifd0, otherTags),
+ TagInfo(0x0132, "DateTime", "File change date and time", ifd0, otherTags),
+ TagInfo(0x013b, "Artist", "Person who created the image", ifd0, otherTags),
+ TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd0, imgCharacter),
+ TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd0, imgCharacter),
+ TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd0, recOffset),
+ TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd0, recOffset),
+ TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd0, imgCharacter),
+ TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd0, imgStruct),
+ TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd0, imgStruct),
+ TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd0, imgCharacter),
+ TagInfo(0x8298, "Copyright", "Copyright holder", ifd0, otherTags),
+ TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd0, exifFormat),
+ TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd0, exifFormat),
+ // End of list marker
+ TagInfo(0xffff, "(UnknownIfdTag)", "Unknown IFD tag", IfdIdNotSet, SectionIdNotSet)
+ };
- // Exif IFD Tags
- TagInfo(0x829a, "ExposureTime", "Exposure time", exifIfd, exifIfdSection),
- TagInfo(0x829d, "FNumber", "F number", exifIfd, exifIfdSection),
- TagInfo(0x8822, "ExposureProgram", "Exposure program", exifIfd, exifIfdSection),
- TagInfo(0x8824, "SpectralSensitivity", "Spectral sensitivity", exifIfd, exifIfdSection),
- TagInfo(0x8827, "ISOSpeedRatings", "ISO speed ratings", exifIfd, exifIfdSection),
- TagInfo(0x8828, "OECF", "Optoelectric coefficient", exifIfd, exifIfdSection),
- TagInfo(0x9000, "ExifVersion", "Exif Version", exifIfd, exifIfdSection),
- TagInfo(0x9003, "DateTimeOriginal", "Date and time original image was generated", exifIfd, exifIfdSection),
- TagInfo(0x9004, "DateTimeDigitized", "Date and time image was made digital data", exifIfd, exifIfdSection),
- TagInfo(0x9101, "ComponentsConfiguration", "Meaning of each component", exifIfd, exifIfdSection),
- TagInfo(0x9102, "CompressedBitsPerPixel", "Image compression mode", exifIfd, exifIfdSection),
- TagInfo(0x9201, "ShutterSpeedValue", "Shutter speed", exifIfd, exifIfdSection),
- TagInfo(0x9202, "ApertureValue", "Aperture", exifIfd, exifIfdSection),
- TagInfo(0x9203, "BrightnessValue", "Brightness", exifIfd, exifIfdSection),
- TagInfo(0x9204, "ExposureBiasValue", "Exposure bias", exifIfd, exifIfdSection),
- TagInfo(0x9205, "MaxApertureValue", "Maximum lens aperture", exifIfd, exifIfdSection),
- TagInfo(0x9206, "SubjectDistance", "Subject distance", exifIfd, exifIfdSection),
- TagInfo(0x9207, "MeteringMode", "Metering mode", exifIfd, exifIfdSection),
- TagInfo(0x9208, "LightSource", "Light source", exifIfd, exifIfdSection),
- TagInfo(0x9209, "Flash", "Flash", exifIfd, exifIfdSection),
- TagInfo(0x920a, "FocalLength", "Lens focal length", exifIfd, exifIfdSection),
- TagInfo(0x9214, "SubjectArea", "Subject area", exifIfd, exifIfdSection),
- TagInfo(0x927c, "MakerNote", "Manufacturer notes", exifIfd, exifIfdSection),
- TagInfo(0x9286, "UserComment", "User comments", exifIfd, exifIfdSection),
- TagInfo(0x9290, "SubSecTime", "DateTime subseconds", exifIfd, exifIfdSection),
- TagInfo(0x9291, "SubSecTimeOriginal", "DateTimeOriginal subseconds", exifIfd, exifIfdSection),
- TagInfo(0x9292, "SubSecTimeDigitized", "DateTimeDigitized subseconds", exifIfd, exifIfdSection),
- TagInfo(0xa000, "FlashpixVersion", "Supported Flashpix version", exifIfd, exifIfdSection),
- TagInfo(0xa001, "ColorSpace", "Color space information", exifIfd, exifIfdSection),
- TagInfo(0xa002, "PixelXDimension", "Valid image width", exifIfd, exifIfdSection),
- TagInfo(0xa003, "PixelYDimension", "Valid image height", exifIfd, exifIfdSection),
- TagInfo(0xa004, "RelatedSoundFile", "Related audio file", exifIfd, exifIfdSection),
- TagInfo(0xa005, "InteroperabilityTag", "Interoperability IFD Pointer", exifIfd, exifIfdSection),
- TagInfo(0xa20b, "FlashEnergy", "Flash energy", exifIfd, exifIfdSection),
- TagInfo(0xa20c, "SpatialFrequencyResponse", "Spatial frequency response", exifIfd, exifIfdSection),
- TagInfo(0xa20e, "FocalPlaneXResolution", "Focal plane X resolution", exifIfd, exifIfdSection),
- TagInfo(0xa20f, "FocalPlaneYResolution", "Focal plane Y resolution", exifIfd, exifIfdSection),
- TagInfo(0xa210, "FocalPlaneResolutionUnit", "Focal plane resolution unit", exifIfd, exifIfdSection),
- TagInfo(0xa214, "SubjectLocation", "Subject location", exifIfd, exifIfdSection),
- TagInfo(0xa215, "ExposureIndex", "Exposure index", exifIfd, exifIfdSection),
- TagInfo(0xa217, "SensingMethod", "Sensing method", exifIfd, exifIfdSection),
- TagInfo(0xa300, "FileSource", "File source", exifIfd, exifIfdSection),
- TagInfo(0xa301, "SceneType", "Scene type", exifIfd, exifIfdSection),
- TagInfo(0xa302, "CFAPattern", "CFA pattern", exifIfd, exifIfdSection),
- TagInfo(0xa401, "CustomRendered", "Custom image processing", exifIfd, exifIfdSection),
- TagInfo(0xa402, "ExposureMode", "Exposure mode", exifIfd, exifIfdSection),
- TagInfo(0xa403, "WhiteBalance", "White balance", exifIfd, exifIfdSection),
- TagInfo(0xa404, "DigitalZoomRatio", "Digital zoom ratio", exifIfd, exifIfdSection),
- TagInfo(0xa405, "FocalLengthIn35mmFilm", "Focal length in 35 mm film", exifIfd, exifIfdSection),
- TagInfo(0xa406, "SceneCaptureType", "Scene capture type", exifIfd, exifIfdSection),
- TagInfo(0xa407, "GainControl", "Gain control", exifIfd, exifIfdSection),
- TagInfo(0xa408, "Contrast", "Contrast", exifIfd, exifIfdSection),
- TagInfo(0xa409, "Saturation", "Saturation", exifIfd, exifIfdSection),
- TagInfo(0xa40a, "Sharpness", "Sharpness", exifIfd, exifIfdSection),
- TagInfo(0xa40b, "DeviceSettingDescription", "Device settings description", exifIfd, exifIfdSection),
- TagInfo(0xa40c, "SubjectDistanceRange", "Subject distance range", exifIfd, exifIfdSection),
- TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfd, exifIfdSection),
+ // Exif IFD Tags
+ static const TagInfo exifTagInfo[] = {
+ TagInfo(0x829a, "ExposureTime", "Exposure time", exifIfd, captureCond),
+ TagInfo(0x829d, "FNumber", "F number", exifIfd, captureCond),
+ TagInfo(0x8822, "ExposureProgram", "Exposure program", exifIfd, captureCond),
+ TagInfo(0x8824, "SpectralSensitivity", "Spectral sensitivity", exifIfd, captureCond),
+ TagInfo(0x8827, "ISOSpeedRatings", "ISO speed ratings", exifIfd, captureCond),
+ TagInfo(0x8828, "OECF", "Optoelectric coefficient", exifIfd, captureCond),
+ TagInfo(0x9000, "ExifVersion", "Exif Version", exifIfd, exifVersion),
+ TagInfo(0x9003, "DateTimeOriginal", "Date and time original image was generated", exifIfd, dateTime),
+ TagInfo(0x9004, "DateTimeDigitized", "Date and time image was made digital data", exifIfd, dateTime),
+ TagInfo(0x9101, "ComponentsConfiguration", "Meaning of each component", exifIfd, imgConfig),
+ TagInfo(0x9102, "CompressedBitsPerPixel", "Image compression mode", exifIfd, imgConfig),
+ TagInfo(0x9201, "ShutterSpeedValue", "Shutter speed", exifIfd, captureCond),
+ TagInfo(0x9202, "ApertureValue", "Aperture", exifIfd, captureCond),
+ TagInfo(0x9203, "BrightnessValue", "Brightness", exifIfd, captureCond),
+ TagInfo(0x9204, "ExposureBiasValue", "Exposure bias", exifIfd, captureCond),
+ TagInfo(0x9205, "MaxApertureValue", "Maximum lens aperture", exifIfd, captureCond),
+ TagInfo(0x9206, "SubjectDistance", "Subject distance", exifIfd, captureCond),
+ TagInfo(0x9207, "MeteringMode", "Metering mode", exifIfd, captureCond),
+ TagInfo(0x9208, "LightSource", "Light source", exifIfd, captureCond),
+ TagInfo(0x9209, "Flash", "Flash", exifIfd, captureCond),
+ TagInfo(0x920a, "FocalLength", "Lens focal length", exifIfd, captureCond),
+ TagInfo(0x9214, "SubjectArea", "Subject area", exifIfd, captureCond),
+ TagInfo(0x927c, "MakerNote", "Manufacturer notes", exifIfd, userInfo),
+ TagInfo(0x9286, "UserComment", "User comments", exifIfd, userInfo),
+ TagInfo(0x9290, "SubSecTime", "DateTime subseconds", exifIfd, dateTime),
+ TagInfo(0x9291, "SubSecTimeOriginal", "DateTimeOriginal subseconds", exifIfd, dateTime),
+ TagInfo(0x9292, "SubSecTimeDigitized", "DateTimeDigitized subseconds", exifIfd, dateTime),
+ TagInfo(0xa000, "FlashpixVersion", "Supported Flashpix version", exifIfd, exifVersion),
+ TagInfo(0xa001, "ColorSpace", "Color space information", exifIfd, imgCharacter),
+ TagInfo(0xa002, "PixelXDimension", "Valid image width", exifIfd, imgConfig),
+ TagInfo(0xa003, "PixelYDimension", "Valid image height", exifIfd, imgConfig),
+ TagInfo(0xa004, "RelatedSoundFile", "Related audio file", exifIfd, relatedFile),
+ TagInfo(0xa005, "InteroperabilityTag", "Interoperability IFD Pointer", exifIfd, exifFormat),
+ TagInfo(0xa20b, "FlashEnergy", "Flash energy", exifIfd, captureCond),
+ TagInfo(0xa20c, "SpatialFrequencyResponse", "Spatial frequency response", exifIfd, captureCond),
+ TagInfo(0xa20e, "FocalPlaneXResolution", "Focal plane X resolution", exifIfd, captureCond),
+ TagInfo(0xa20f, "FocalPlaneYResolution", "Focal plane Y resolution", exifIfd, captureCond),
+ TagInfo(0xa210, "FocalPlaneResolutionUnit", "Focal plane resolution unit", exifIfd, captureCond),
+ TagInfo(0xa214, "SubjectLocation", "Subject location", exifIfd, captureCond),
+ TagInfo(0xa215, "ExposureIndex", "Exposure index", exifIfd, captureCond),
+ TagInfo(0xa217, "SensingMethod", "Sensing method", exifIfd, captureCond),
+ TagInfo(0xa300, "FileSource", "File source", exifIfd, captureCond),
+ TagInfo(0xa301, "SceneType", "Scene type", exifIfd, captureCond),
+ TagInfo(0xa302, "CFAPattern", "CFA pattern", exifIfd, captureCond),
+ TagInfo(0xa401, "CustomRendered", "Custom image processing", exifIfd, captureCond),
+ TagInfo(0xa402, "ExposureMode", "Exposure mode", exifIfd, captureCond),
+ TagInfo(0xa403, "WhiteBalance", "White balance", exifIfd, captureCond),
+ TagInfo(0xa404, "DigitalZoomRatio", "Digital zoom ratio", exifIfd, captureCond),
+ TagInfo(0xa405, "FocalLengthIn35mmFilm", "Focal length in 35 mm film", exifIfd, captureCond),
+ TagInfo(0xa406, "SceneCaptureType", "Scene capture type", exifIfd, captureCond),
+ TagInfo(0xa407, "GainControl", "Gain control", exifIfd, captureCond),
+ TagInfo(0xa408, "Contrast", "Contrast", exifIfd, captureCond),
+ TagInfo(0xa409, "Saturation", "Saturation", exifIfd, captureCond),
+ TagInfo(0xa40a, "Sharpness", "Sharpness", exifIfd, captureCond),
+ TagInfo(0xa40b, "DeviceSettingDescription", "Device settings description", exifIfd, captureCond),
+ TagInfo(0xa40c, "SubjectDistanceRange", "Subject distance range", exifIfd, captureCond),
+ TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfd, otherTags),
+ // End of list marker
+ TagInfo(0xffff, "(UnknownExifTag)", "Unknown Exif tag", IfdIdNotSet, SectionIdNotSet)
+ };
+ // GPS Info Tags
+ static const TagInfo gpsTagInfo[] = {
+ TagInfo(0x0000, "GPSVersionID", "GPS tag version", gpsIfd, gpsTags),
+ TagInfo(0x0001, "GPSLatitudeRef", "North or South Latitude", gpsIfd, gpsTags),
+ TagInfo(0x0002, "GPSLatitude", "Latitude", gpsIfd, gpsTags),
+ TagInfo(0x0003, "GPSLongitudeRef", "East or West Longitude", gpsIfd, gpsTags),
+ TagInfo(0x0004, "GPSLongitude", "Longitude", gpsIfd, gpsTags),
+ TagInfo(0x0005, "GPSAltitudeRef", "Altitude reference", gpsIfd, gpsTags),
+ TagInfo(0x0006, "GPSAltitude", "Altitude", gpsIfd, gpsTags),
+ TagInfo(0x0007, "GPSTimeStamp", "GPS time (atomic clock)", gpsIfd, gpsTags),
+ TagInfo(0x0008, "GPSSatellites", "GPS satellites used for measurement", gpsIfd, gpsTags),
+ TagInfo(0x0009, "GPSStatus", "GPS receiver status", gpsIfd, gpsTags),
+ TagInfo(0x000a, "GPSMeasureMode", "GPS measurement mode", gpsIfd, gpsTags),
+ TagInfo(0x000b, "GPSDOP", "Measurement precision", gpsIfd, gpsTags),
+ TagInfo(0x000c, "GPSSpeedRef", "Speed unit", gpsIfd, gpsTags),
+ TagInfo(0x000d, "GPSSpeed", "Speed of GPS receiver", gpsIfd, gpsTags),
+ TagInfo(0x000e, "GPSTrackRef", "Reference for direction of movement", gpsIfd, gpsTags),
+ TagInfo(0x000f, "GPSTrack", "Direction of movement", gpsIfd, gpsTags),
+ TagInfo(0x0010, "GPSImgDirectionRef", "Reference for direction of image", gpsIfd, gpsTags),
+ TagInfo(0x0011, "GPSImgDirection", "Direction of image", gpsIfd, gpsTags),
+ TagInfo(0x0012, "GPSMapDatum", "Geodetic survey data used", gpsIfd, gpsTags),
+ TagInfo(0x0013, "GPSDestLatitudeRef", "Reference for latitude of destination", gpsIfd, gpsTags),
+ TagInfo(0x0014, "GPSDestLatitude", "Latitude of destination", gpsIfd, gpsTags),
+ TagInfo(0x0015, "GPSDestLongitudeRef", "Reference for longitude of destination", gpsIfd, gpsTags),
+ TagInfo(0x0016, "GPSDestLongitude", "Longitude of destination", gpsIfd, gpsTags),
+ TagInfo(0x0017, "GPSDestBearingRef", "Reference for bearing of destination", gpsIfd, gpsTags),
+ TagInfo(0x0018, "GPSDestBearing", "Bearing of destination", gpsIfd, gpsTags),
+ TagInfo(0x0019, "GPSDestDistanceRef", "Reference for distance to destination", gpsIfd, gpsTags),
+ TagInfo(0x001a, "GPSDestDistance", "Distance to destination", gpsIfd, gpsTags),
+ TagInfo(0x001b, "GPSProcessingMethod", "Name of GPS processing method", gpsIfd, gpsTags),
+ TagInfo(0x001c, "GPSAreaInformation", "Name of GPS area", gpsIfd, gpsTags),
+ TagInfo(0x001d, "GPSDateStamp", "GPS date", gpsIfd, gpsTags),
+ TagInfo(0x001e, "GPSDifferential", "GPS differential correction", gpsIfd, gpsTags),
+ // End of list marker
+ TagInfo(0xffff, "(UnknownGpsTag)", "Unknown GPSInfo tag", IfdIdNotSet, SectionIdNotSet)
+ };
+
+ // Exif Interoperability IFD Tags
+ static const TagInfo iopTagInfo[] = {
+ TagInfo(0x0001, "InteroperabilityIndex", "Interoperability Identification", iopIfd, iopTags),
+ TagInfo(0x0002, "InteroperabilityVersion", "Interoperability version", iopIfd, iopTags),
+ TagInfo(0x1000, "RelatedImageFileFormat", "File format of image file", iopIfd, iopTags),
+ TagInfo(0x1001, "RelatedImageWidth", "Image width", iopIfd, iopTags),
+ TagInfo(0x1002, "RelatedImageLength", "Image height", iopIfd, iopTags),
// End of list marker
- TagInfo(0xffff, "(Unknown)", "Unknown tag", IfdIdNotSet, SectionIdNotSet)
+ TagInfo(0xffff, "(UnknownIopTag)", "Unknown Exif Interoperability tag", IfdIdNotSet, SectionIdNotSet)
+ };
+
+ // Tag lookup lists with tag names, desc and where they (preferrably) belong to;
+ // this is an array with pointers to one list per IFD. The IfdId is used as the
+ // index into the array.
+ const TagInfo* ExifTags::tagInfos_[] = {
+ 0,
+ ifdTagInfo, exifTagInfo, gpsTagInfo, 0, iopTagInfo,
+ ifdTagInfo, exifTagInfo, gpsTagInfo, 0, iopTagInfo
};
int ExifTags::tagInfoIdx(uint16 tag, IfdId ifdId)
{
- // Todo: implement a better algorithm
+ // Todo: implement a better (more efficient) algorithm
+ const TagInfo* tagInfo = tagInfos_[ifdId];
int idx;
- for (idx = 0; tagInfo_[idx].tag_ != 0xffff; ++idx) {
- if ( tagInfo_[idx].tag_ == tag
- && tagInfo_[idx].ifdId_ == ifdId) break;
+ for (idx = 0; tagInfo[idx].tag_ != 0xffff; ++idx) {
+ if (tagInfo[idx].tag_ == tag) break;
}
return idx;
}
const char* ExifTags::tagName(uint16 tag, IfdId ifdId)
{
- return tagInfo_[tagInfoIdx(tag, ifdId)].name_;
+ return tagInfos_[ifdId][tagInfoIdx(tag, ifdId)].name_;
}
const char* ExifTags::sectionName(uint16 tag, IfdId ifdId)
{
- return sectionInfo_[tagInfo_[tagInfoIdx(tag, ifdId)].sectionId_].name_;
+ const TagInfo* tagInfo = tagInfos_[ifdId];
+ return sectionInfo_[tagInfo[tagInfoIdx(tag, ifdId)].sectionId_].name_;
}
const char* ExifTags::typeName(uint16 type)
@@ -310,18 +296,14 @@ namespace Exif {
return ifdInfo_[ifdId].name_;
}
+ const char* ExifTags::ifdItem(IfdId ifdId)
+ {
+ return ifdInfo_[ifdId].item_;
+ }
+
const char* ExifTags::sectionName(SectionId sectionId)
{
return sectionInfo_[sectionId].name_;
}
- // *************************************************************************
- // free functions
-
} // namespace Exif
-
-// *****************************************************************************
-// local definitions
-namespace {
-
-}
diff --git a/src/tags.hpp b/src/tags.hpp
index 95d300c..e7360e1 100644
--- a/src/tags.hpp
+++ b/src/tags.hpp
@@ -6,14 +6,14 @@
*
*/
/*!
- @file tags.h
+ @file tags.hpp
@brief %Exif tag and type information
- @version $Name: $ $Revision: 1.1 $
+ @version $Name: $ $Revision: 1.2 $
@author Andreas Huggel (ahu)
@date 15-Jan-03, ahu: created
*/
-#ifndef _TAGS_H_
-#define _TAGS_H_
+#ifndef _TAGS_HPP_
+#define _TAGS_HPP_
// *****************************************************************************
// included header files
@@ -38,13 +38,14 @@ namespace Exif {
//! Type to specify the IFD to which a metadata belongs
enum IfdId { IfdIdNotSet,
- ifd0, exifIfd, gpsIfd, exifMakerIfd, exifIopIfd,
- ifd1, ifd1ExifIfd, ifd1GpsIfd, ifd1MakerIfd, ifd1ExifIopIfd };
+ ifd0, exifIfd, gpsIfd, makerIfd, iopIfd,
+ ifd1, ifd1ExifIfd, ifd1GpsIfd, ifd1MakerIfd, ifd1IopIfd };
//! Section identifiers to logically group tags
enum SectionId { SectionIdNotSet,
- ifd0Tiff, exifIfdSection, gpsIfdSection,
- exifIopIfdSection, ifd1Section };
+ imgStruct, recOffset, imgCharacter, otherTags, exifFormat,
+ exifVersion, imgConfig, userInfo, relatedFile, dateTime,
+ captureCond, gpsTags, iopTags };
// *****************************************************************************
// class definitions
@@ -52,17 +53,19 @@ namespace Exif {
//! Contains information pertaining to one IFD
struct IfdInfo {
//! Constructor
- IfdInfo(IfdId ifdId, const char* name);
+ IfdInfo(IfdId ifdId, const char* name, const char* item);
IfdId ifdId_; //!< IFD id
const char* name_; //!< IFD name
+ const char* item_; //!< Related image item
};
//! Contains information pertaining to one section
struct SectionInfo {
//! Constructor
- SectionInfo(SectionId sectionId, const char* name);
+ SectionInfo(SectionId sectionId, const char* name, const char* desc);
SectionId sectionId_; //!< Section id
- const char* name_; //!< Section name
+ const char* name_; //!< Section name (one word)
+ const char* desc_; //!< Section description
};
//! Description of the format of a metadatum
@@ -109,6 +112,8 @@ namespace Exif {
static long typeSize(uint16 type);
//! Returns the name of the IFD
static const char* ifdName(IfdId ifdId);
+ //! Returns the related image item (image or thumbnail)
+ static const char* ifdItem(IfdId ifdId);
//! Returns the name of the section
static const char* sectionName(SectionId sectionId);
//! Returns the name of the section
@@ -120,7 +125,9 @@ namespace Exif {
static const IfdInfo ifdInfo_[];
static const SectionInfo sectionInfo_[];
static const TagFormat tagFormat_[];
- static const TagInfo tagInfo_[];
+
+ static const TagInfo* tagInfos_[];
+
};
// *****************************************************************************
@@ -128,4 +135,4 @@ namespace Exif {
} // namespace Exif
-#endif // #ifndef _TAGS_H_
+#endif // #ifndef _TAGS_HPP_
diff --git a/src/utils.cpp b/src/utils.cpp
index 0d4e1c3..f1c5068 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -1,20 +1,9 @@
// ********************************************************** -*- C++ -*-
/*
- * Copyright (c) 2003, 2004 Andreas Huggel. All rights reserved.
+ * Copyright (c) 2004 Andreas Huggel. All rights reserved.
*
- * This file is part of the Exiv distribution.
+ * Todo: Insert license blabla here
*
- * This file may be distributed and/or modified under the terms of the
- * Common Public License version 1.0 as published by IBM and appearing
- * in the file license-cpl.txt included in the packaging of this file.
- *
- * This file may be distributed and/or modified under the terms of the
- * GNU General Public License version 2 as published by the Free Software
- * Foundation and appearing in the file license-gpl.txt included in the
- * packaging of this file.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
/*
Author(s): Andreas Huggel (ahu)
@@ -23,7 +12,7 @@
RCS information
$Name: $
- $Revision: 1.1 $
+ $Revision: 1.2 $
*/
// *********************************************************************
diff --git a/src/utils.hpp b/src/utils.hpp
index f47e7f6..e77a3b9 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -1,30 +1,19 @@
// ********************************************************* -*- C++ -*-
/*
- * Copyright (c) 2003, 2004 Andreas Huggel. All rights reserved.
+ * Copyright (c) 2004 Andreas Huggel. All rights reserved.
*
- * This file is part of the Exiv distribution.
+ * Todo: insert license blabla here.
*
- * This file may be distributed and/or modified under the terms of the
- * Common Public License version 1.0 as published by IBM and appearing
- * in the file license-cpl.txt included in the packaging of this file.
- *
- * This file may be distributed and/or modified under the terms of the
- * GNU General Public License version 2 as published by the Free Software
- * Foundation and appearing in the file license-gpl.txt included in the
- * packaging of this file.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
/*!
- @file utils.h
+ @file utils.hpp
@brief A collection of utility functions
- @version $Name: $ $Revision: 1.1 $
+ @version $Name: $ $Revision: 1.2 $
@author Andreas Huggel (ahu)
@date 12-Dec-03, ahu: created
*/
-#ifndef _UTILS_H_
-#define _UTILS_H_
+#ifndef _UTILS_HPP_
+#define _UTILS_HPP_
// *********************************************************************
// included header files
@@ -166,4 +155,4 @@ private:
} // namespace Util
-#endif // #ifndef _UTILS_H_
+#endif // #ifndef _UTILS_HPP_
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list