1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-09 17:29:36 +00:00
CLK/OSBindings/Qt/timer.h
2024-01-21 21:49:59 -05:00

32 lines
591 B
C++

#pragma once
#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;
};