]> git.tdb.fi Git - r2c2.git/blob - source/libr2c2/clock.cpp
Additional accessors for Clock
[r2c2.git] / source / libr2c2 / clock.cpp
1 #include "clock.h"
2
3 using namespace Msp;
4
5 namespace R2C2 {
6
7 Clock::Clock():
8         rate(1)
9 { }
10
11 void Clock::set_rate(float s)
12 {
13         rate = s;
14 }
15
16 void Clock::set_current_time(const Time::TimeDelta &t)
17 {
18         current_time = t;
19 }
20
21 void Clock::tick(const Time::TimeDelta &dt)
22 {
23         unsigned prev_minute = current_time/Time::min;
24         current_time += dt*rate;
25         if(current_time>=Time::day)
26                 current_time -= Time::day;
27         unsigned minute = current_time/Time::min;
28         if(minute!=prev_minute)
29                 signal_minute.emit();
30 }
31
32 } // namespace R2C2