diff --git a/samples/easyaccess-test.cpp b/samples/easyaccess-test.cpp index c046f58b..293ea0ef 100644 --- a/samples/easyaccess-test.cpp +++ b/samples/easyaccess-test.cpp @@ -18,15 +18,26 @@ struct EasyAccess { }; static const EasyAccess easyAccess[] = { - { "Orientation", Exiv2::orientation }, - { "ISO speed", Exiv2::isoSpeed }, - { "Flash bias", Exiv2::flashBias }, - { "Exposure mode", Exiv2::exposureMode }, - { "Scene mode", Exiv2::sceneMode }, - { "Macro mode", Exiv2::macroMode }, - { "Image quality", Exiv2::imageQuality }, - { "White balance", Exiv2::whiteBalance }, - { "Lens name", Exiv2::lensName } + { "Orientation", Exiv2::orientation }, + { "ISO speed", Exiv2::isoSpeed }, + { "Flash bias", Exiv2::flashBias }, + { "Exposure mode", Exiv2::exposureMode }, + { "Scene mode", Exiv2::sceneMode }, + { "Macro mode", Exiv2::macroMode }, + { "Image quality", Exiv2::imageQuality }, + { "White balance", Exiv2::whiteBalance }, + { "Lens name", Exiv2::lensName }, + { "Saturation", Exiv2::saturation }, + { "Sharpness", Exiv2::sharpness }, + { "Contrast", Exiv2::contrast }, + { "Scene capture type", Exiv2::sceneCaptureType }, + { "Metering mode", Exiv2::meteringMode }, + { "Camera make", Exiv2::make }, + { "Camera model", Exiv2::model }, + { "Exposure time", Exiv2::exposureTime }, + { "FNumber", Exiv2::fNumber }, + { "Subject distance", Exiv2::subjectDistance }, + { "Camera serial number", Exiv2::serialNumber } }; int main(int argc, char **argv) diff --git a/src/easyaccess.cpp b/src/easyaccess.cpp index 5680cac3..072daa29 100644 --- a/src/easyaccess.cpp +++ b/src/easyaccess.cpp @@ -284,4 +284,94 @@ namespace Exiv2 { }; return findMetadatum(ed, keys, EXV_COUNTOF(keys)); } + + ExifData::const_iterator meteringMode(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.MeteringMode", + "Exif.Image.MeteringMode", + "Exif.CanonCs.MeteringMode" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator make(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Image.Make" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator model(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Image.Model" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator exposureTime(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.ExposureTime", + "Exif.Image.ExposureTime" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator fNumber(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.FNumber", + "Exif.Image.FNumber" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator subjectDistance(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.SubjectDistance", + "Exif.Image.SubjectDistance", + "Exif.CanonSi.SubjectDistance", + "Exif.MinoltaCsNew.FocusDistance", + "Exif.Nikon1.FocusDistance", + "Exif.Nikon3.FocusDistance", + "Exif.NikonLd2.FocusDistance", + "Exif.NikonLd3.FocusDistance", + "Exif.Olympus.FocusDistance", + "Exif.OlympusFi.FocusDistance" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator serialNumber(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Image.CameraSerialNumber", + "Exif.Canon.SerialNumber", + "Exif.Nikon3.SerialNumber", + "Exif.Nikon3.SerialNO", + "Exif.Fujifilm.SerialNumber", + "Exif.Olympus.SerialNumber", + "Exif.Sigma.SerialNumber" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator focalLength(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.FocalLength", + "Exif.Image.FocalLength", + "Exif.Canon.FocalLength", + "Exif.NikonLd2.FocalLength", + "Exif.NikonLd3.FocalLength", + "Exif.MinoltaCsNew.FocalLength", + "Exif.Pentax.FocalLength" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + } // namespace Exiv2 diff --git a/src/easyaccess.hpp b/src/easyaccess.hpp index fc8b3778..9c3460df 100644 --- a/src/easyaccess.hpp +++ b/src/easyaccess.hpp @@ -64,6 +64,22 @@ namespace Exiv2 { EXIV2API ExifData::const_iterator contrast(const ExifData& ed); //! Return the scene capture type EXIV2API ExifData::const_iterator sceneCaptureType(const ExifData& ed); + //! Return the metering mode setting + EXIV2API ExifData::const_iterator meteringMode(const ExifData& ed); + //! Return the camera make + EXIV2API ExifData::const_iterator make(const ExifData& ed); + //! Return the camera model + EXIV2API ExifData::const_iterator model(const ExifData& ed); + //! Return the exposure time + EXIV2API ExifData::const_iterator exposureTime(const ExifData& ed); + //! Return the F number + EXIV2API ExifData::const_iterator fNumber(const ExifData& ed); + //! Return the subject distance + EXIV2API ExifData::const_iterator subjectDistance(const ExifData& ed); + //! Return the camera serial number + EXIV2API ExifData::const_iterator serialNumber(const ExifData& ed); + //! Return the focal lenght setting + EXIV2API ExifData::const_iterator focalLength(const ExifData& ed); } // namespace Exiv2