diff --git a/src/parser.cpp b/src/parser.cpp index 963f0051..b4e26c19 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -39,12 +39,24 @@ void Parser::handleWayPointAttributes(const QXmlStreamAttributes &attr) attr.value("lat").toLatin1().toDouble())); } +void Parser::tpExtension() +{ + while (_reader.readNextStartElement()) { + if (_reader.name() == "hr") + handleExtensionData(_reader.name(), _reader.readElementText()); + else + _reader.skipCurrentElement(); + } +} + void Parser::extensions() { while (_reader.readNextStartElement()) { if (_reader.name() == "speed" || _reader.name() == "hr" || _reader.name() == "heartrate") handleExtensionData(_reader.name(), _reader.readElementText()); + else if (_reader.name() == "TrackPointExtension") + tpExtension(); else _reader.skipCurrentElement(); } diff --git a/src/parser.h b/src/parser.h index e63998da..9e5afb9a 100644 --- a/src/parser.h +++ b/src/parser.h @@ -22,6 +22,7 @@ private: void gpx(); void track(); void trackPoints(); + void tpExtension(); void extensions(); void trackPointData(); void wayPointData();