From deffbcc52a969f1e40e15171dbcae4635c3a9ebd Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Sat, 27 Aug 2011 09:05:04 +0100 Subject: [PATCH] Support FR310xt latest firmware Fit file format can now have a 12 and 14 byte header. This patch adds support for 14 byte headers since this is required by the latest 310xt firmware. Fixes #430. --- src/FitRideFile.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/FitRideFile.cpp b/src/FitRideFile.cpp index b3fc6bd5e..9fae7f7fb 100644 --- a/src/FitRideFile.cpp +++ b/src/FitRideFile.cpp @@ -542,15 +542,20 @@ struct FitFileReaderState return NULL; } int header_size = read_uint8(); - if (header_size != 12) { + if (header_size != 12 && header_size != 14) { errors << QString("bad header size: %1").arg(header_size); delete rideFile; return NULL; } int protocol_version = read_uint8(); (void) protocol_version; + + // if the header size is 14 we have profile minor then profile major + // version. We still don't do anything with this information int profile_version = read_uint16(false); // always littleEndian + if (header_size == 14) profile_version = read_uint16(false); (void) profile_version; // not sure what to do with this + int data_size = read_uint32(false); // always littleEndian char fit_str[5]; if (file.read(fit_str, 4) != 4) {