mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-14 16:39:57 +00:00
Finalise full support for earlt WKO+ file formats
With over 500 files now processed successfully for early versions of WKO+ (Cycling Peaks) we can now support v1 and v12 of the WKO file format. This means we now offer full support for; * CP 1.0 and 1.1 * WKO+ 2.2 and 3.0 The warning message has been removed and problems related to parsing the 'graph' tab settings in v1 files is now fixed. We need to see more v7 files (quite rate) before we can move that version out of beta support. Looking at the code it is unlikely that the v7 support is very robust, but until we have more files to test this is as good as it gets.
This commit is contained in:
@@ -86,16 +86,16 @@ WkoParser::WkoParser(QFile &file, QStringList &errors, QList<RideFile*>*rides)
|
||||
// are for CP v1.0 and v1.1 and then WKO v2.2 *or higher*
|
||||
donumber(headerdata+4, &version);
|
||||
|
||||
// early versions we don't support are rejected
|
||||
// versions we don't support are rejected
|
||||
if (version < 28 && version != 1 && version != 12 && version != 7) {
|
||||
errors << (QString("Version of file (%1) is too old, open and save in WKO then retry: \"").arg(version) + file.fileName() + "\"");
|
||||
return;
|
||||
|
||||
// 1.0 and 1.1 are not that reliable so warn of beta support
|
||||
} else if (version == 1 || version == 12 || version == 7) {
|
||||
// we haven't seen nearly enough v7 files to support properly
|
||||
} else if (version == 7) {
|
||||
errors <<QString("Beta support for v%1 files, please report errors!").arg(version);
|
||||
|
||||
// later versions may change so support but watn
|
||||
// later versions may change so support but warn
|
||||
} else if (version >31) {
|
||||
errors << ("Version of file is new and not fully supported yet: \"" +
|
||||
file.fileName() + "\"");
|
||||
@@ -715,10 +715,13 @@ WkoParser::parseHeaderData(WKO_UCHAR *fb)
|
||||
default : results->setDeviceType("WKO"); break;
|
||||
}
|
||||
|
||||
if (version != 12) p += donumber(p, &ul); /* 29: unknown */
|
||||
if (version != 12) p += donumber(p, &ul); // not in version 12?
|
||||
|
||||
if (version != 1 && version !=7) { //!!! Version 1 beta support
|
||||
for (int i=0; i< 16; i++) { // 16 types of chart data
|
||||
if (version !=7) { // need to see more version 7 files
|
||||
|
||||
int arraysize = (version == 1) ? 8 : 16;
|
||||
|
||||
for (int i=0; i< arraysize; i++) { // 16 types of chart data
|
||||
|
||||
if (version != 12) {
|
||||
p += 44;
|
||||
@@ -741,6 +744,7 @@ WkoParser::parseHeaderData(WKO_UCHAR *fb)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// version 7 -- need more files
|
||||
p += 0x170; // possibly too invariant!
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user