From 2cb9b6fdc38a5df00ade737f90a9daf685ab89c3 Mon Sep 17 00:00:00 2001 From: flu0r1ne Date: Thu, 13 Jul 2023 12:20:29 -0500 Subject: Init commit --- src/models/counter.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/models/counter.cpp (limited to 'src/models/counter.cpp') 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(_cnt) / (ms / 60.0e3); +} + + +double FreqCounter::overtime_rate() const { + return static_cast(_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; + } + +} -- cgit v1.2.3