#ifndef SPEEDTIMER_H #define SPEEDTIMER_H #include #include #include #include #include class SpeedTimer : public QObject { Q_OBJECT public: explicit SpeedTimer(QObject *parent = nullptr); enum timerState { IDLE, STARTING, RUNNING, STOPPED }; timerState state; // variables for capturing the time double startTime; double stopTime; double stoppedTime; double reactionTime; signals: void stateChanged(timerState newState); void startCanceled(bool falseStart); public slots: void start(); void stop(QString type); void reset(); void setState(timerState newState); QString getState(); double getCurrTime(); void handleStartpadTrigger(); void handleToppadTrigger(); void delay(int mSecs); private: QDateTime *date; }; extern SpeedTimer * pGlobalSpeedTimer; #endif // SPEEDTIMER_H