File indexing completed on 2024-05-12 15:37:04

0001 /*
0002     SPDX-FileCopyrightText: 2012 Vishesh Handa <me@vhanda.in>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 
0008 #ifndef EXIV2EXTRACTOR_H
0009 #define EXIV2EXTRACTOR_H
0010 
0011 #include "extractorplugin.h"
0012 #include <exiv2/exiv2.hpp>
0013 
0014 namespace KFileMetaData
0015 {
0016 
0017 class Exiv2Extractor : public ExtractorPlugin
0018 {
0019     Q_OBJECT
0020     Q_PLUGIN_METADATA(IID "org.kde.kf5.kfilemetadata.ExtractorPlugin"
0021                       FILE "exiv2extractor.json")
0022     Q_INTERFACES(KFileMetaData::ExtractorPlugin)
0023 
0024 public:
0025     explicit Exiv2Extractor(QObject* parent = nullptr);
0026 
0027     void extract(ExtractionResult* result) override;
0028     QStringList mimetypes() const override;
0029 
0030 private:
0031     void add(ExtractionResult* result, const Exiv2::ExifData& data,
0032              Property::Property prop,
0033              const char* name, QVariant::Type type);
0034 
0035     double fetchGpsDouble(const Exiv2::ExifData& data, const char* name);
0036     double fetchGpsAltitude(const Exiv2::ExifData& data);
0037     QByteArray fetchByteArray(const Exiv2::ExifData& data, const char* name);
0038 };
0039 }
0040 
0041 #endif // EXIV2EXTRACTOR_H