diff --git a/src/APIWebService.cpp b/src/APIWebService.cpp index 23e073c45..11527a97d 100644 --- a/src/APIWebService.cpp +++ b/src/APIWebService.cpp @@ -313,13 +313,32 @@ APIWebService::listMMP(QString athlete, QStringList paths, HttpRequest &request, // list activities and associated metrics response.setHeader("Content-Type", "text; charset=ISO-8859-1"); + // what series do we want ? + QString seriesp = request.getParameter("series"); + RideFile::SeriesType series; + if (seriesp == "") series = RideFile::watts; + else { + if (seriesp == "hr") series = RideFile::hr; + if (seriesp == "cad") series = RideFile::cad; + if (seriesp == "speed") series = RideFile::kph; + if (seriesp == "watts") series = RideFile::watts; + if (seriesp == "vam") series = RideFile::vam; + if (seriesp == "NP") series = RideFile::NP; + if (seriesp == "xPower") series = RideFile::xPower; + if (seriesp == "nm") series = RideFile::nm; + } + QString filename=paths[0]; QString CPXfilename = home.absolutePath() + "/" + athlete + "/cache/" + QFileInfo(filename).completeBaseName() + ".cpx"; - response.bwrite("secs, watts\n"); + // header + response.bwrite("secs, "); + response.bwrite(RideFile::seriesName(series).toLocal8Bit()); + response.bwrite("\n"); + if (QFileInfo(CPXfilename).exists()) { int secs=0; - foreach(float value, RideFileCache::meanMaxFor(CPXfilename, RideFile::watts)) { + foreach(float value, RideFileCache::meanMaxFor(CPXfilename, series)) { if (secs >0) response.bwrite(QString("%1, %2\n").arg(secs).arg(value).toLocal8Bit()); secs++; } diff --git a/src/RideFileCache.cpp b/src/RideFileCache.cpp index 6f0dbf8ca..338cdd18a 100644 --- a/src/RideFileCache.cpp +++ b/src/RideFileCache.cpp @@ -416,7 +416,7 @@ QVector RideFileCache::meanMaxFor(QString cacheFilename, RideFile::Series QDataStream inFile(&cacheFile); inFile.readRawData((char *) &head, sizeof(head)); - int count = head.count(series); + int count = countForMeanMax(head, series); // check its an up to date format and contains power if (head.version == RideFileCacheVersion && count>0) { diff --git a/src/RideFileCache.h b/src/RideFileCache.h index 16b0555cc..376cdad08 100644 --- a/src/RideFileCache.h +++ b/src/RideFileCache.h @@ -81,31 +81,9 @@ static const unsigned int RideFileCacheVersion = 24; // files are local caches we do not worry about endianness struct RideFileCacheHeader { - public: unsigned int version; unsigned int crc; - int count(RideFile::SeriesType series) { - switch (series) { - case RideFile::watts: return wattsMeanMaxCount; - case RideFile::hr: return hrMeanMaxCount; - case RideFile::cad: return cadMeanMaxCount; - case RideFile::nm: return nmMeanMaxCount; - case RideFile::kph: return kphMeanMaxCount; - case RideFile::kphd: return kphdMeanMaxCount; - case RideFile::wattsd: return wattsdMeanMaxCount; - case RideFile::cadd: return caddMeanMaxCount; - case RideFile::nmd: return nmdMeanMaxCount; - case RideFile::hrd: return hrdMeanMaxCount; - case RideFile::xPower: return xPowerMeanMaxCount; - case RideFile::NP: return npMeanMaxCount; - case RideFile::vam: return vamMeanMaxCount; - //XXX eek case RideFile::wpk: return wattsKgMeanMaxCount; - case RideFile::aPower: return aPowerMeanMaxCount; - default: return -1; - } - } - unsigned int wattsMeanMaxCount, hrMeanMaxCount, cadMeanMaxCount,