summaryrefslogtreecommitdiffstats
path: root/src/server/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/events')
-rw-r--r--src/server/events/Connect.cpp11
-rw-r--r--src/server/events/Connect.hpp4
2 files changed, 15 insertions, 0 deletions
diff --git a/src/server/events/Connect.cpp b/src/server/events/Connect.cpp
index 4c4a3974..75659452 100644
--- a/src/server/events/Connect.cpp
+++ b/src/server/events/Connect.cpp
@@ -124,6 +124,9 @@ Connect::pre_process()
_graph->add_arc(_arc);
_head->increment_num_arcs();
+
+ tail_output->inherit_neighbour(_head, _tail_remove, _tail_add);
+ _head->inherit_neighbour(tail_output, _head_remove, _head_add);
}
_buffers = new Raul::Array<BufferRef>(_head->poly());
@@ -156,6 +159,14 @@ Connect::post_process()
Broadcaster::Transfer t(*_engine.broadcaster());
if (respond() == Status::SUCCESS) {
_engine.broadcaster()->connect(_tail_path, _head_path);
+ if (!_tail_remove.empty() || !_tail_add.empty()) {
+ _engine.broadcaster()->delta(
+ Node::path_to_uri(_tail_path), _tail_remove, _tail_add);
+ }
+ if (!_tail_remove.empty() || !_tail_add.empty()) {
+ _engine.broadcaster()->delta(
+ Node::path_to_uri(_tail_path), _tail_remove, _tail_add);
+ }
}
}
diff --git a/src/server/events/Connect.hpp b/src/server/events/Connect.hpp
index 4b515087..d5e58a99 100644
--- a/src/server/events/Connect.hpp
+++ b/src/server/events/Connect.hpp
@@ -64,6 +64,10 @@ private:
CompiledGraph* _compiled_graph;
SPtr<ArcImpl> _arc;
Raul::Array<BufferRef>* _buffers;
+ Resource::Properties _tail_remove;
+ Resource::Properties _tail_add;
+ Resource::Properties _head_remove;
+ Resource::Properties _head_add;
};
} // namespace Events