mirror of
https://github.com/TomHarte/CLK.git
synced 2024-08-26 06:29:04 +00:00
35 lines
629 B
C++
35 lines
629 B
C++
#ifndef TIMER_H
|
|
#define TIMER_H
|
|
|
|
#include <atomic>
|
|
|
|
#include <QObject>
|
|
#include <QThread>
|
|
#include <QTimer>
|
|
|
|
#include "../../Machines/Utility/MachineForTarget.hpp"
|
|
#include "functionthread.h"
|
|
|
|
class Timer : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit Timer(QObject *parent = nullptr);
|
|
~Timer();
|
|
|
|
void startWithMachine(MachineTypes::TimedMachine *machine, std::mutex *machineMutex);
|
|
|
|
public slots:
|
|
void tick();
|
|
|
|
private:
|
|
MachineTypes::TimedMachine *machine = nullptr;
|
|
std::mutex *machineMutex = nullptr;
|
|
int64_t lastTickNanos = 0;
|
|
FunctionThread thread;
|
|
std::unique_ptr<QTimer> timer;
|
|
};
|
|
|
|
#endif // TIMER_H
|