]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/eventdispatcher.cpp
Add integration between EventDispatcher and Timer
[libs/core.git] / source / io / eventdispatcher.cpp
index 144ad49bcf89a0670ea6f5c9e254120586bd91df..cf37c1e7e1fbd81155608895bd14ebe9bd882e10 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/time/utils.h>
 #include "base.h"
 #include "eventdispatcher.h"
 #include "eventobject.h"
 #include "base.h"
 #include "eventdispatcher.h"
 #include "eventobject.h"
@@ -57,6 +58,15 @@ void EventDispatcher::tick(const Time::TimeDelta &dt)
                dispatch();
 }
 
                dispatch();
 }
 
+void EventDispatcher::tick(const Time::Timer &timer)
+{
+       const Time::TimeStamp &timeout = timer.get_next_timeout();
+       if(timeout)
+               tick(timeout-Time::now());
+       else
+               tick();
+}
+
 void EventDispatcher::object_events_changed(PollEvent ev, EventObject *obj)
 {
        poller.set_object(*obj, ev);
 void EventDispatcher::object_events_changed(PollEvent ev, EventObject *obj)
 {
        poller.set_object(*obj, ev);