project-kyoku/include/tools/bpmcalculator.h

23 lines
426 B
C
Raw Normal View History

#pragma once
#include "tools/music.h"
#include <memory>
#include <vector>
class BPMCalculator
{
public:
explicit BPMCalculator(const std::shared_ptr<Music>& music);
void setMusic(const std::shared_ptr<Music>& music);
void start();
void click();
int getCurrentApproximation() const;
private:
std::shared_ptr<Music> _music;
std::vector<microsec> _deltas;
microsec _previous_click_offset;
};