1 #include "../include/Timer.hpp" 2 #include "../include/Display.hpp" 20 int milli = 3600000 * hours + 60000 * minutes + 1000 * seconds;
21 if (milli >= 360000000) { milli = 359999999; }
22 _countdownMilliseconds = milli;
23 _remainingMilliseconds = milli;
24 _startMilliseconds = milli;
25 _incrementMilliseconds = 0;
26 start(_countdownMilliseconds);
40 _endTime = chrono::steady_clock::now() + chrono::milliseconds(_countdownMilliseconds);
52 _pauseTime = chrono::steady_clock::now();
53 _remainingMilliseconds = chrono::duration_cast<chrono::milliseconds>(_endTime - _pauseTime).count();
67 _endTime = chrono::steady_clock::now() + chrono::milliseconds(_remainingMilliseconds);
80 _remainingMilliseconds = _startMilliseconds;
81 _countdownMilliseconds = _startMilliseconds;
96 bool wasRunning = _running;
99 _remainingMilliseconds += 1000 * seconds;
100 _countdownMilliseconds += 1000 * seconds;
120 auto now = chrono::steady_clock::now();
121 auto remaining = chrono::duration_cast<chrono::milliseconds>(_endTime - now).count();
126 _remainingMilliseconds = 0;
130 return _remainingMilliseconds;
148 return !_running && !remainingMilliseconds();
162 if (_remainingMilliseconds > _startMilliseconds) {
163 start = _remainingMilliseconds;
165 start = _startMilliseconds;
171 int elapsedMilliseconds = start - remainingMilliseconds();
172 double percentage = ((double)(elapsedMilliseconds) / start) * 100;
double percentElapsed()
Returns the percentage of time that has elapsed since the timer started.
void resume()
Resumes the timer from where it was paused by recalculating the end time.
int remainingMilliseconds()
Returns the remaining time in milliseconds.
void pause()
Pauses the timer and calculates the remaining milliseconds.
Timer(int hours, int minutes, int seconds)
Constructor to specify the timer duration directly in hours, minutes, and seconds.
void addTime(int seconds)
Adds a specified amount of time (in seconds) to the timer.
void start(int countdownMilliseconds)
Starts the timer by setting the end time based on the current time plus the countdown duration...
bool isRunning()
Checks if the timer is currently running.
void reset()
Resets the timer to its original duration and pauses it.