From a0b64b42273bcc2ae490a4f7e751f133170c4613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 21 Mar 2016 23:13:46 +0100 Subject: [PATCH] Added support for Garmin "TrackPointExtension" extension (heart rate) --- src/parser.cpp | 12 ++++++++++++ src/parser.h | 1 + 2 files changed, 13 insertions(+) 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();