Files
GoldenCheetah/deprecated/RaceRider.cpp
Mark Liversedge 1b55780d51 Reorg tidy src directory
.. move the fluff that has collected into the src directory
   to somewhere more appropriate.
2016-02-26 09:28:28 +00:00

135 lines
4.5 KiB
C++

/*
* Copyright (c) 2009 Mark Liversedge (liversedge@gmail.com)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "RaceRider.h"
#include "GoldenClient.h"
RaceRider::RaceRider(QWidget *parent, QColor color, QString name, QString id) :
QFrame(parent), me(name), id(id)
{
QPalette pal = palette();
//QColor RGB = color.convertTo(QColor::Rgb);
pal.setColor(QPalette::Normal, QPalette::Background, color);
pal.setColor(QPalette::Normal, QPalette::Base, color);
pal.setColor(QPalette::Normal, QPalette::Button, color);
pal.setColor(QPalette::Normal, QPalette::Text, Qt::black);
pal.setColor(QPalette::Normal, QPalette::ButtonText, Qt::black);
setPalette(pal);
setFrameStyle(QFrame::Box | QFrame::Raised);
setLineWidth(1);
setContentsMargins(4,4,4,4);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->setContentsMargins(0,0,0,0);
// the labels and displays!
nameLabel = new QLabel(name);
nameLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
nameLabel->setFixedHeight(20);
powerLabel = new QLabel(tr("Watts"));
powerLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
powerLabel->setFixedHeight(16);
powerLCD = new QLCDNumber;
powerLCD->setSegmentStyle(QLCDNumber::Filled);
powerLCD->setAutoFillBackground(true);
powerLCD->setPalette(pal);
heartrateLabel = new QLabel(tr("HeartRate"));
heartrateLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
heartrateLabel->setFixedHeight(16);
heartrateLCD = new QLCDNumber;
heartrateLCD->setSegmentStyle(QLCDNumber::Filled);
heartrateLCD->setAutoFillBackground(true);
heartrateLCD->setPalette(pal);
speedLabel = new QLabel(tr("Speed"));
speedLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
speedLabel->setFixedHeight(16);
speedLCD = new QLCDNumber;
speedLCD->setSegmentStyle(QLCDNumber::Filled);
speedLCD->setAutoFillBackground(true);
speedLCD->setPalette(pal);
cadenceLabel = new QLabel(tr("Cadence"));
cadenceLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
cadenceLabel->setFixedHeight(16);
cadenceLCD = new QLCDNumber;
cadenceLCD->setAutoFillBackground(true);
cadenceLCD->setSegmentStyle(QLCDNumber::Filled);
cadenceLCD->setPalette(pal);
distanceLabel = new QLabel(tr("Distance"));
distanceLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
distanceLabel->setFixedHeight(16);
distanceLCD = new QLCDNumber;
distanceLCD->setSegmentStyle(QLCDNumber::Filled);
distanceLCD->setAutoFillBackground(true);
distanceLCD->setPalette(pal);
// add to the layout
mainLayout->addWidget(nameLabel);
mainLayout->addWidget(powerLabel);
mainLayout->addWidget(powerLCD);
mainLayout->addWidget(heartrateLabel);
mainLayout->addWidget(heartrateLCD);
mainLayout->addWidget(speedLabel);
mainLayout->addWidget(speedLCD);
mainLayout->addWidget(cadenceLabel);
mainLayout->addWidget(cadenceLCD);
mainLayout->addWidget(distanceLabel);
mainLayout->addWidget(distanceLCD);
// Labels
mainLayout->setStretch(1, 1);
mainLayout->setStretch(3, 1);
mainLayout->setStretch(5, 1);
mainLayout->setStretch(7, 1);
mainLayout->setStretch(9, 1);
mainLayout->setStretch(2, 2);
mainLayout->setStretch(4, 2);
mainLayout->setStretch(6, 2);
mainLayout->setStretch(8, 2);
mainLayout->setStretch(10, 2);
setLayout(mainLayout);
setFixedWidth(120);
}
void
RaceRider::telemetryReceived(RaceStatus current)
{
if (!current.riders_status.contains(id)) return;
RiderData mydata = current.riders_status.value(id);
powerLCD->display(mydata.power_watts);
speedLCD->display(mydata.speed_kph);
cadenceLCD->display(mydata.cadence_rpm);
distanceLCD->display(mydata.distance_km);
heartrateLCD->display(mydata.heartrate_bpm);
}