You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
656 B
C++

#ifndef PRECISIONEVALUATOR_H
#define PRECISIONEVALUATOR_H
#include <SFML/System/Clock.hpp>
using microsec = sf::Int64;
template<typename GRADE>
class PrecisionEvaluator
{
public:
PrecisionEvaluator(microsec offset, microsec life_span_offset);
microsec offset() const noexcept;
bool isActive(microsec music_play_offset) const noexcept;
GRADE calculatePrecision(microsec odds) const;
static void resetPrecisionQualifier(microsec qualifier = 500000);
private:
microsec _offset;
microsec _start_handling_offset;
microsec _end_handling_offset;
static microsec _precision_qualifier;
};
#endif // PRECISIONEVALUATOR_H