diff --git a/src/GpxParser.cpp b/src/GpxParser.cpp index 57e617930..f8c2b7249 100644 --- a/src/GpxParser.cpp +++ b/src/GpxParser.cpp @@ -43,6 +43,7 @@ GpxParser::GpxParser (RideFile* rideFile) alt =0; lon = 0; lat = 0; + hr = 0; firstTime = true; metadata = false; @@ -119,6 +120,10 @@ bool { alt = buffer.toDouble(); // metric } + else if (qName == "gpxtpx:hr") + { + hr = buffer.toInt(); // metric + } else if (qName == "trkpt") { @@ -172,7 +177,7 @@ bool if(rideFile->dataPoints().empty()) { // first point - rideFile->appendPoint(secs, 0, 0, distance, speed, 0, 0, alt, lon, lat, 0, 0.0, RideFile::noTemp, 0.0, 0); + rideFile->appendPoint(secs, 0, hr, distance, speed, 0, 0, alt, lon, lat, 0, 0.0, RideFile::noTemp, 0.0, 0); } else { // assumption that the change in ride is linear... :) @@ -191,7 +196,7 @@ bool (secs == 0)) { // no smart recording, or delta exceeds HW treshold, or no time elements; just insert the data - rideFile->appendPoint(secs, 0, 0, distance, speed, 0,0, alt, lon, lat, 0, 0.0, RideFile::noTemp, 0.0, 0); + rideFile->appendPoint(secs, 0, hr, distance, speed, 0,0, alt, lon, lat, 0, 0.0, RideFile::noTemp, 0.0, 0); } else { @@ -206,7 +211,7 @@ bool rideFile->appendPoint( prevPoint->secs + (deltaSecs * weight), 0, - 0, + hr, prevPoint->km + (deltaDist * weight), kph, 0, diff --git a/src/GpxParser.h b/src/GpxParser.h index 22df8e851..4685bb2bd 100644 --- a/src/GpxParser.h +++ b/src/GpxParser.h @@ -57,6 +57,7 @@ private: double alt; double lat; double lon; + int hr; // set to false after the first time element is seen (not in metadata) bool firstTime;