From 398da86acfa67c67ae65201f67393b5375aabc71 Mon Sep 17 00:00:00 2001 From: Theodoros Papatheodorou Date: Sun, 3 Dec 2017 11:33:40 +0000 Subject: [PATCH] added virtual function reset() in baseSource that can be overridden in Source classes to reset source variables on re-entry, if needed --- src/Sources/BaseSource.h | 2 ++ src/Surfaces/SurfaceManager.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/Sources/BaseSource.h b/src/Sources/BaseSource.h index c034739..c097359 100644 --- a/src/Sources/BaseSource.h +++ b/src/Sources/BaseSource.h @@ -21,6 +21,8 @@ class BaseSource { virtual void clear(){} virtual void togglePause(){} + virtual void reset(){} // called by surfaceManager to optionally allow users to reset a source's variables + // TODO: add virtual increaseReferenceCount and decreaseReferenceCount methods // and make the variable protected int referenceCount; diff --git a/src/Surfaces/SurfaceManager.cpp b/src/Surfaces/SurfaceManager.cpp index 279ee11..b805b48 100644 --- a/src/Surfaces/SurfaceManager.cpp +++ b/src/Surfaces/SurfaceManager.cpp @@ -461,6 +461,10 @@ void SurfaceManager::setPreset(unsigned int i){ } _activePresetIndex = i; + + for (int i=0; i<_presets[_activePresetIndex]->getSurfaces().size(); i++){ + _presets[_activePresetIndex]->getSurfaces()[i]->getSource()->reset(); + } } void SurfaceManager::cloneActivePreset(){