Skip to content

Commit

Permalink
Added extra toggling functions for pause and calibration.
Browse files Browse the repository at this point in the history
  • Loading branch information
sofian committed Jan 7, 2025
1 parent 74e8434 commit a1c2eef
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 17 deletions.
3 changes: 3 additions & 0 deletions keywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ timeWindow KEYWORD2
cutoff KEYWORD2
pauseCalibrating KEYWORD2
resumeCalibrating KEYWORD2
toggleCalibrating KEYWORD2
isCalibrating KEYWORD2

# Oscillators
Expand Down Expand Up @@ -136,6 +137,7 @@ start KEYWORD2
stop KEYWORD2
pause KEYWORD2
resume KEYWORD2
togglePause KEYWORD2
elapsed KEYWORD2
add KEYWORD2
isRunning KEYWORD2
Expand Down Expand Up @@ -193,6 +195,7 @@ onRise KEYWORD2
onFall KEYWORD2
onChange KEYWORD2
clearEvents KEYWORD2
onChange KEYWORD2

#######################################
# Instances (KEYWORD2)
Expand Down
16 changes: 10 additions & 6 deletions src/AbstractChronometer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ void AbstractChronometer::start() {
_isRunning = true;
}

void AbstractChronometer::stop() {
// Stop.
set(0);
_isRunning = false;
}

void AbstractChronometer::pause() {
if (_isRunning) {
Expand All @@ -40,19 +45,18 @@ void AbstractChronometer::pause() {
}
}

void AbstractChronometer::stop() {
// Stop.
set(0);
_isRunning = false;
}

void AbstractChronometer::resume() {
if (!_isRunning) {
_startTime = clock();
_isRunning = true;
}
}

void AbstractChronometer::togglePause() {
if (_isRunning) pause();
else resume();
}

bool AbstractChronometer::hasPassed(float timeout) const
{
return (elapsed() >= timeout);
Expand Down
9 changes: 6 additions & 3 deletions src/AbstractChronometer.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,18 @@ class AbstractChronometer {
/// Starts/restarts the chronometer.
virtual void start();

/// Interrupts the chronometer.
virtual void pause();

/// Interrupts the chronometer and resets to zero.
virtual void stop();

/// Interrupts the chronometer.
virtual void pause();

/// Resumes process.
virtual void resume();

/// Toggles pause/unpause.
virtual void togglePause();

/// The time currently elapsed by the chronometer (in seconds).
virtual float elapsed() const { return _elapsedTime; }

Expand Down
13 changes: 8 additions & 5 deletions src/AbstractWave.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,21 +107,24 @@ void AbstractWave::start() {
_isRunning = true;
}


void AbstractWave::pause() {
_isRunning = false;
}

void AbstractWave::stop() {
// Stop.
setTime(0);
_isRunning = false;
}

void AbstractWave::pause() {
_isRunning = false;
}

void AbstractWave::resume() {
_isRunning = true;
}

void AbstractWave::togglePause() {
_isRunning = !_isRunning;
}

void AbstractWave::setTime(float time) {
// Set current phase time.
_phaseTime = float2phaseTime(_phase);
Expand Down
9 changes: 6 additions & 3 deletions src/AbstractWave.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,15 +108,18 @@ class AbstractWave : public AnalogSource {
/// Starts/restarts the wave.
virtual void start();

/// Interrupts the wave.
virtual void pause();

/// Interrupts the wave and resets to beginning.
virtual void stop();

/// Interrupts the wave.
virtual void pause();

/// Resumes process.
virtual void resume();

/// Toggles pause/unpause.
virtual void togglePause();

/// Forces current time (in seconds).
virtual void setTime(float time);

Expand Down
4 changes: 4 additions & 0 deletions src/MovingFilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ void MovingFilter::pauseCalibrating() {
_isCalibrating = false;
}

void MovingFilter::toggleCalibrating() {
_isCalibrating = !_isCalibrating;
}

bool MovingFilter::isCalibrating() const {
return _isCalibrating;
}
Expand Down
3 changes: 3 additions & 0 deletions src/MovingFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ class MovingFilter : public AnalogSource {
*/
virtual void pauseCalibrating();

/// Toggles calibration mode.
virtual void toggleCalibrating();

/// Returns true iff the moving filter is in calibration mode.
virtual bool isCalibrating() const;

Expand Down

0 comments on commit a1c2eef

Please sign in to comment.