actions: simplify print summary using easyaccess

main
Miloš Komarčević 5 years ago
parent f6abec4432
commit 1038e62a42

@ -331,37 +331,26 @@ namespace Action {
} }
std::cout << std::endl; std::cout << std::endl;
printTag(exifData, Exiv2::make , _("Camera make")); printTag(exifData, Exiv2::make , _("Camera make") );
printTag(exifData, Exiv2::model , _("Camera model")); printTag(exifData, Exiv2::model , _("Camera model") );
printTag(exifData, Exiv2::dateTimeOriginal , _("Image timestamp")); printTag(exifData, Exiv2::dateTimeOriginal , _("Image timestamp") );
printTag(exifData, "Exif.Canon.FileNumber" , _("File number")); printTag(exifData, "Exif.Canon.FileNumber" , _("File number") );
// From ExposureTime, failing that, try ShutterSpeedValue printTag(exifData, Exiv2::exposureTime , _("Exposure time") , Exiv2::shutterSpeedValue );
printLabel(_("Exposure time")); printTag(exifData, Exiv2::fNumber , _("Aperture") , Exiv2::apertureValue );
bool done = 0 != printTag(exifData, Exiv2::exposureTime); printTag(exifData, Exiv2::exposureBiasValue , _("Exposure bias") );
if (!done) { printTag(exifData, Exiv2::flash , _("Flash") );
done = 0 != printTag(exifData, Exiv2::shutterSpeedValue); printTag(exifData, Exiv2::flashBias , _("Flash bias") );
} printTag(exifData, Exiv2::focalLength , _("Focal length") );
std::cout << std::endl; printTag(exifData, Exiv2::subjectDistance , _("Subject distance") );
// Get if from FNumber and, failing that, try ApertureValue printTag(exifData, Exiv2::isoSpeed , _("ISO speed") );
printLabel(_("Aperture")); printTag(exifData, Exiv2::exposureMode , _("Exposure mode") );
done = 0 != printTag(exifData, Exiv2::fNumber); printTag(exifData, Exiv2::meteringMode , _("Metering mode") );
if (!done) { printTag(exifData, Exiv2::macroMode , _("Macro mode") );
done = 0 != printTag(exifData, Exiv2::apertureValue); printTag(exifData, Exiv2::imageQuality , _("Image quality") );
} printTag(exifData, Exiv2::whiteBalance , _("White balance") );
std::cout << std::endl; printTag(exifData, "Exif.Image.Copyright" , _("Copyright") );
printTag(exifData, Exiv2::exposureBiasValue , _("Exposure bias")); printTag(exifData, "Exif.Photo.UserComment" , _("Exif comment") );
printTag(exifData, Exiv2::flash , _("Flash"));
printTag(exifData, Exiv2::flashBias , _("Flash bias"));
printTag(exifData, Exiv2::focalLength , _("Focal length"));
printTag(exifData, Exiv2::subjectDistance , _("Subject distance"));
printTag(exifData, Exiv2::isoSpeed , _("ISO speed"));
printTag(exifData, Exiv2::exposureMode , _("Exposure mode"));
printTag(exifData, Exiv2::meteringMode , _("Metering mode"));
printTag(exifData, Exiv2::macroMode , _("Macro mode"));
printTag(exifData, Exiv2::imageQuality , _("Image quality"));
printTag(exifData, Exiv2::whiteBalance , _("White balance"));
printTag(exifData, "Exif.Image.Copyright" , _("Copyright"));
printTag(exifData, "Exif.Photo.UserComment" , _("Exif comment"));
std::cout << std::endl; std::cout << std::endl;
return 0; return 0;
@ -397,7 +386,8 @@ namespace Action {
int Print::printTag(const Exiv2::ExifData& exifData, int Print::printTag(const Exiv2::ExifData& exifData,
EasyAccessFct easyAccessFct, EasyAccessFct easyAccessFct,
const std::string& label) const const std::string& label,
EasyAccessFct easyAccessFctFallback) const
{ {
int rc = 0; int rc = 0;
if (!label.empty()) { if (!label.empty()) {
@ -408,6 +398,14 @@ namespace Action {
md->write(std::cout, &exifData); md->write(std::cout, &exifData);
rc = 1; rc = 1;
} }
else if (NULL != easyAccessFctFallback)
{
md = easyAccessFctFallback(exifData);
if (md != exifData.end()) {
md->write(std::cout, &exifData);
rc = 1;
}
}
if (!label.empty()) std::cout << std::endl; if (!label.empty()) std::cout << std::endl;
return rc; return rc;
} // Print::printTag } // Print::printTag

@ -187,7 +187,8 @@ namespace Action {
*/ */
int printTag(const Exiv2::ExifData& exifData, int printTag(const Exiv2::ExifData& exifData,
EasyAccessFct easyAccessFct, EasyAccessFct easyAccessFct,
const std::string& label ="") const; const std::string& label ="",
EasyAccessFct easyAccessFctFallback =NULL) const;
private: private:
virtual Print* clone_() const; virtual Print* clone_() const;

Loading…
Cancel
Save