]> git.mxchange.org Git - simgear.git/blobdiff - simgear/structure/event_mgr.cxx
Reset: event manager can be unbound.
[simgear.git] / simgear / structure / event_mgr.cxx
index 11b34b7a1e6ce05533b067913c522788ce6367d4..b855fae2db941d9e16c58dbe4ba6ab5ff7ad388b 100644 (file)
@@ -1,6 +1,9 @@
+#ifdef HAVE_CONFIG_H
+#  include <simgear_config.h>
+#endif
+
 #include "event_mgr.hxx"
 
-#include <simgear/math/SGMath.hxx>
 #include <simgear/debug/logstream.hxx>
 
 void SGEventMgr::add(const std::string& name, SGCallback* cb,
@@ -9,7 +12,8 @@ void SGEventMgr::add(const std::string& name, SGCallback* cb,
 {
     // Clamp the delay value to 1 usec, so that user code can use
     // "zero" as a synonym for "next frame".
-    if(delay <= 0) delay = 0.000001;
+    if(delay <= 0) delay = 1e-6;
+    if(interval <= 0) interval = 1e-6; // No timer endless loops please...
 
     SGTimer* t = new SGTimer;
     t->interval = interval;
@@ -34,6 +38,12 @@ void SGTimer::run()
     (*callback)();
 }
 
+void SGEventMgr::unbind()
+{
+    _freezeProp.clear();
+    _rtProp.clear();
+}
+
 void SGEventMgr::update(double delta_time_sec)
 {
     _simQueue.update(delta_time_sec);