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 | ||
