#ifndef EXIFPARSER_H #define EXIFPARSER_H #include "parser.h" class QDataStream; class TIFFFile; class EXIFParser : public Parser { public: bool parse(QFile *file, QList &tracks, QList &routes, QList &polygons, QVector &waypoints); QString errorString() const {return _errorString;} int errorLine() const {return 0;} private: struct IFDEntry { IFDEntry() : type(0), count(0), offset(0) {} quint16 type; quint32 count; quint32 offset; }; bool parseTIFF(QDataStream &stream, QVector &waypoints); bool readIFD(TIFFFile &file, quint32 offset, const QSet &tags, QMap &entries) const; bool readEntry(TIFFFile &file, const QSet &tags, QMap &entries) const; QString _errorString; }; #endif // EXIFPARSER_H