Fixed error line reporting in CSV-based files
[GPXSee.git] / src / data / exifparser.h
blobdcb1ad3165a05bf42d330b2b9cfaf7debb7227c0
1 #ifndef EXIFPARSER_H
2 #define EXIFPARSER_H
4 #include <QDateTime>
5 #include "parser.h"
7 class TIFFFile;
9 class EXIFParser : public Parser
11 public:
12 bool parse(QFile *file, QList<TrackData> &tracks, QList<RouteData> &routes,
13 QList<Area> &polygons, QVector<Waypoint> &waypoints);
14 QString errorString() const {return _errorString;}
15 int errorLine() const {return 0;}
17 private:
18 struct IFDEntry {
19 IFDEntry() : type(0), count(0), offset(0) {}
21 quint16 type;
22 quint32 count;
23 quint32 offset;
26 bool parseTIFF(QFile *file, QVector<Waypoint> &waypoints);
27 bool readIFD(TIFFFile &file, quint32 offset, const QSet<quint16> &tags,
28 QMap<quint16, IFDEntry> &entries) const;
29 bool readEntry(TIFFFile &file, const QSet<quint16> &tags,
30 QMap<quint16, IFDEntry> &entries) const;
32 double coordinate(TIFFFile &file, const IFDEntry &ll) const;
33 Coordinates coordinates(TIFFFile &file, const IFDEntry &lon,
34 const IFDEntry &lonRef, const IFDEntry &lat, const IFDEntry &latRef) const;
35 double altitude(TIFFFile &file, const IFDEntry &alt,
36 const IFDEntry &altRef) const;
37 QTime time(TIFFFile &file, const IFDEntry &ts) const;
38 QString text(TIFFFile &file, const IFDEntry &e) const;
40 QString _errorString;
43 #endif // EXIFPARSER_H