summaryrefslogtreecommitdiffstats
path: root/engine/signal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engine/signal.cpp')
-rw-r--r--engine/signal.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/engine/signal.cpp b/engine/signal.cpp
index 8546094..0e1935d 100644
--- a/engine/signal.cpp
+++ b/engine/signal.cpp
@@ -1,4 +1,5 @@
#include "core/signal.hpp"
+#include "object.hpp"
#include <functional>
#include "flatland.hpp"
@@ -21,7 +22,7 @@ channel::~channel()
void channel::start(priority_t prior)
{
// Initialize task
- checker = flat::game_job().delegate_task(&channel::check_and_call, *this, prior);
+ checker = flat::main_job().delegate_task(&channel::check_and_call, *this, prior);
}
bool channel::map()
@@ -82,6 +83,16 @@ void channel::disconnect(listener* l)
disconnect(pt);
}
+listener::ptr channel::connect(listener::callback f, const std::initializer_list<std::string>& filters)
+{
+ listener::ptr lis = std::make_shared<listener>(f, filters);
+
+ if (connect(lis))
+ return lis;
+
+ return nullptr;
+}
+
channel::ptr channel::create(const string& id, priority_t prior)
{
ptr out = std::make_shared<channel>(id);