lsnes/include/video/avi/timer.hpp
2012-02-12 20:23:36 +02:00

33 lines
495 B
C++

#ifndef _avi__timer__hpp__included__
#define _avi__timer__hpp__included__
#include <cstdint>
class timer
{
public:
timer(uint32_t rate_n, uint32_t rate_d = 1);
void rate(uint32_t rate_n, uint32_t rate_d = 1);
void increment()
{
w += sw;
n += sn;
w += (n / d);
n %= d;
}
uint64_t read()
{
return w;
}
uint64_t read_next();
void reset();
private:
void set_step(uint32_t rate_n, uint32_t rate_d);
uint64_t w;
uint64_t n;
uint64_t d;
uint64_t sw;
uint64_t sn;
};
#endif