1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-28 07:29:45 +00:00
CLK/OSBindings/Qt/timer.h

35 lines
629 B
C
Raw Normal View History

#ifndef TIMER_H
#define TIMER_H
2020-06-06 03:06:28 +00:00
#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;
2020-06-06 03:06:28 +00:00
std::mutex *machineMutex = nullptr;
int64_t lastTickNanos = 0;
FunctionThread thread;
std::unique_ptr<QTimer> timer;
};
#endif // TIMER_H