/src/Clock.h
#ifndef _CLOCK_H
#define _CLOCK_H

class Clock
{
public:
	Clock();
	Clock(float bpm);
	Clock(float bpm, int slices_per_beat);
	Clock(float bpm, int slices_per_beat, int beats_per_measure);
	~Clock(void);

	void start();
	int tick(int t);
	void setBPM(float bpm);
	float getBPM();
	void setSlicesPerBeat(int slices_per_beat);
	int getMeasure();
	int getBeat();
	int getSlice();
private:
	void recalculate();

	float bpm;
	int beats_per_measure;
	int slices_per_beat;
	float ms_per_slice;
	int slice;
	int t_start;
	int t_next;
};

#endif //_CLOCK_H