diff --git a/src/JsonRideFile.l b/src/JsonRideFile.l index 01e21bd37..226d6c016 100644 --- a/src/JsonRideFile.l +++ b/src/JsonRideFile.l @@ -64,6 +64,7 @@ \"HEADWIND\" return HEADWIND; \"SLOPE\" return SLOPE; \"TEMP\" return TEMP; +\"LRBALANCE\" return LRBALANCE; [-+]?[0-9]+ return INTEGER; [-+]?[0-9]+e-[0-9]+ return FLOAT; [-+]?[0-9]+\.[-e0-9]* return FLOAT; diff --git a/src/JsonRideFile.y b/src/JsonRideFile.y index f307b2002..bdd1e4f75 100644 --- a/src/JsonRideFile.y +++ b/src/JsonRideFile.y @@ -407,6 +407,7 @@ JsonFileReader::writeRideFile(MainWindow *, const RideFile *ride, QFile &file) c if (ride->areDataPresent()->headwind) out << ", \"HEADWIND\":" << QString("%1").arg(p->headwind); if (ride->areDataPresent()->slope) out << ", \"SLOPE\":" << QString("%1").arg(p->slope); if (ride->areDataPresent()->temp && p->temp != RideFile::noTemp) out << ", \"TEMP\":" << QString("%1").arg(p->temp); + if (ride->areDataPresent()->lrbalance) out << ", \"LRBALANCE\":" << QString("%1").arg(p->lrbalance); // sample points in here! out << " }"; diff --git a/src/RideFile.cpp b/src/RideFile.cpp index 5fd7a5699..1ba75afa4 100644 --- a/src/RideFile.cpp +++ b/src/RideFile.cpp @@ -75,6 +75,7 @@ RideFile::seriesName(SeriesType series) case RideFile::headwind: return QString(tr("Headwind")); case RideFile::slope: return QString(tr("Slope")); case RideFile::temp: return QString(tr("Temperature")); + case RideFile::lrbalance: return QString(tr("Left/Right Balance")); case RideFile::interval: return QString(tr("Interval")); case RideFile::vam: return QString(tr("VAM")); case RideFile::wattsKg: return QString(tr("Watts per Kilogram")); @@ -103,6 +104,7 @@ RideFile::unitName(SeriesType series, MainWindow *main) case RideFile::headwind: return QString(tr("kph")); case RideFile::slope: return QString(tr("%")); case RideFile::temp: return QString(tr("°C")); + case RideFile::lrbalance: return QString(tr("%")); case RideFile::interval: return QString(tr("Interval")); case RideFile::vam: return QString(tr("meters per hour")); case RideFile::wattsKg: return QString(useMetricUnits ? tr("watts/kg") : tr("watts/lb")); @@ -350,7 +352,8 @@ RideFile *RideFileFactory::openRideFile(MainWindow *main, QFile &file, else flags += '-'; if (result->areDataPresent()->temp) flags += 'E'; // Temperature else flags += '-'; - + if (result->areDataPresent()->lrbalance) flags += 'B'; // Left/Right Balance, TODO Walibu, unsure about this flag? 'B' ok? + else flags += '-'; result->setTag("Data", flags); } @@ -454,6 +457,9 @@ RideFile::isDataPresent(SeriesType series) case lon : return dataPresent.lon; break; case lat : return dataPresent.lat; break; case headwind : return dataPresent.headwind; break; + case slope : return dataPresent.slope; break; + case temp : return dataPresent.temp; break; + case lrbalance : return dataPresent.lrbalance; break; case interval : return dataPresent.interval; break; default: case none : return false; break; @@ -475,6 +481,9 @@ RideFile::setPointValue(int index, SeriesType series, double value) case lon : dataPoints_[index]->lon = value; break; case lat : dataPoints_[index]->lat = value; break; case headwind : dataPoints_[index]->headwind = value; break; + case slope : dataPoints_[index]->slope = value; break; + case temp : dataPoints_[index]->temp = value; break; + case lrbalance : dataPoints_[index]->lrbalance = value; break; case interval : dataPoints_[index]->interval = value; break; default: case none : break; @@ -498,6 +507,7 @@ RideFilePoint::value(RideFile::SeriesType series) const case RideFile::headwind : return headwind; break; case RideFile::slope : return slope; break; case RideFile::temp : return temp; break; + case RideFile::lrbalance : return lrbalance; break; case RideFile::interval : return interval; break; default: diff --git a/src/RideFileTableModel.cpp b/src/RideFileTableModel.cpp index 008d8c697..10412de76 100644 --- a/src/RideFileTableModel.cpp +++ b/src/RideFileTableModel.cpp @@ -121,6 +121,10 @@ RideFileTableModel::setHeadings(RideFile::SeriesType series) headings_ << tr("Temperature"); headingsType << RideFile::temp; } + if (series == RideFile::lrbalance || ride->areDataPresent()->lrbalance) { + headings_ << tr("Left/Right Balance"); + headingsType << RideFile::lrbalance; + } if (series == RideFile::interval || ride->areDataPresent()->interval) { headings_ << tr("Interval"); headingsType << RideFile::interval;