diff options
author | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2023-07-13 12:20:29 -0500 |
---|---|---|
committer | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2023-07-13 12:20:29 -0500 |
commit | 2cb9b6fdc38a5df00ade737f90a9daf685ab89c3 (patch) | |
tree | 0a01a5fff4785520ae1a8d400b36f6bcdf84c532 /src/models/counter.cpp | |
download | freqtimer-web-2cb9b6fdc38a5df00ade737f90a9daf685ab89c3.tar.xz freqtimer-web-2cb9b6fdc38a5df00ade737f90a9daf685ab89c3.zip |
Init commit
Diffstat (limited to 'src/models/counter.cpp')
-rw-r--r-- | src/models/counter.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/models/counter.cpp b/src/models/counter.cpp new file mode 100644 index 0000000..4855c24 --- /dev/null +++ b/src/models/counter.cpp @@ -0,0 +1,35 @@ +#include "models/counter.hpp" + +double FreqCounter::rate() const { + uint64_t ms = _timer->total_duration_ms(); + + if(_timer->overtime()) { + ms = _timer->preset_ms(); + } + + return static_cast<double>(_cnt) / (ms / 60.0e3); +} + + +double FreqCounter::overtime_rate() const { + return static_cast<double>(_overtime_cnt) / (_timer->total_duration_ms() / 60.0e3); +} + +std::string FreqCounter::display_value() const { + if(_cnt == UINT32_MAX) { + return "ERR"; + } + + return std::to_string(_cnt); +} + +void FreqCounter::inc() { + + if(_overtime_cnt != UINT32_MAX) + _overtime_cnt++; + + if(!_timer->overtime()) { + _cnt = _overtime_cnt; + } + +} |