mirror of
				https://github.com/TomHarte/CLK.git
				synced 2025-11-04 00:16:26 +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
 |