diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2019-02-22 17:25:59 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2019-02-22 17:25:59 -0500 |
commit | 26fbd8c1edaf94513d9750681edbe449b699efe4 (patch) | |
tree | 3356e61d3eca5eda067169a2c584616a49d8e5a5 /src/schedule.h | |
parent | d9c201cbf2fbfe315137e141d886a9bbfa6794ba (diff) | |
download | dispatcher-26fbd8c1edaf94513d9750681edbe449b699efe4.tar.gz dispatcher-26fbd8c1edaf94513d9750681edbe449b699efe4.tar.bz2 dispatcher-26fbd8c1edaf94513d9750681edbe449b699efe4.zip |
Trains move on tracks to the beat
Small implementation changes in various places, biggest thing is now we're using ranges, which is experimental and will be included for real in C++20.
Diffstat (limited to 'src/schedule.h')
-rw-r--r-- | src/schedule.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/schedule.h b/src/schedule.h index 5d77761..f7c5543 100644 --- a/src/schedule.h +++ b/src/schedule.h | |||
@@ -5,17 +5,23 @@ class Schedule { | |||
5 | public: | 5 | public: |
6 | 6 | ||
7 | explicit Schedule( | 7 | explicit Schedule( |
8 | size_t bpm) : | 8 | double bpm) : |
9 | bpm_(bpm), | 9 | bpm_(bpm), |
10 | tick_(60.0 / static_cast<double>(bpm_)) | 10 | bps_(bpm_ / 60.0), |
11 | tick_(1.0 / bps_) | ||
11 | { | 12 | { |
12 | } | 13 | } |
13 | 14 | ||
14 | size_t getBPM() const | 15 | double getBPM() const |
15 | { | 16 | { |
16 | return bpm_; | 17 | return bpm_; |
17 | } | 18 | } |
18 | 19 | ||
20 | double getBPS() const | ||
21 | { | ||
22 | return bps_; | ||
23 | } | ||
24 | |||
19 | void accumulate(double dt) | 25 | void accumulate(double dt) |
20 | { | 26 | { |
21 | accum_ += dt; | 27 | accum_ += dt; |
@@ -26,6 +32,7 @@ public: | |||
26 | if (accum_ > tick_) | 32 | if (accum_ > tick_) |
27 | { | 33 | { |
28 | accum_ -= tick_; | 34 | accum_ -= tick_; |
35 | beats_++; | ||
29 | 36 | ||
30 | return true; | 37 | return true; |
31 | } else { | 38 | } else { |
@@ -33,11 +40,18 @@ public: | |||
33 | } | 40 | } |
34 | } | 41 | } |
35 | 42 | ||
43 | size_t getBeat() const | ||
44 | { | ||
45 | return beats_; | ||
46 | } | ||
47 | |||
36 | private: | 48 | private: |
37 | 49 | ||
38 | size_t bpm_; | 50 | double bpm_; |
51 | double bps_; | ||
39 | double tick_; | 52 | double tick_; |
40 | double accum_ = 0.0; | 53 | double accum_ = 0.0; |
54 | size_t beats_ = 0; | ||
41 | 55 | ||
42 | }; | 56 | }; |
43 | 57 | ||