summaryrefslogtreecommitdiffstats
path: root/src/server/events
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2016-12-13 20:53:58 -0500
committerDavid Robillard <d@drobilla.net>2016-12-14 14:47:13 -0500
commite7b2f7ee286350bc3bb56b44ed98e4d8bf49af82 (patch)
tree8e5a4e42b36bb5c321f24cdd492cd3dc0a941222 /src/server/events
parent05c55a5be68318d2b7ca861a3012bf4893bcb82d (diff)
downloadingen-e7b2f7ee286350bc3bb56b44ed98e4d8bf49af82.tar.gz
ingen-e7b2f7ee286350bc3bb56b44ed98e4d8bf49af82.tar.bz2
ingen-e7b2f7ee286350bc3bb56b44ed98e4d8bf49af82.zip
Fix real-time issues with buffer allocation
Diffstat (limited to 'src/server/events')
-rw-r--r--src/server/events/Connect.cpp7
-rw-r--r--src/server/events/Disconnect.cpp11
-rw-r--r--src/server/events/SetPortValue.cpp4
3 files changed, 8 insertions, 14 deletions
diff --git a/src/server/events/Connect.cpp b/src/server/events/Connect.cpp
index c24fc2bb..eb758940 100644
--- a/src/server/events/Connect.cpp
+++ b/src/server/events/Connect.cpp
@@ -139,10 +139,9 @@ Connect::pre_process(PreProcessContext& ctx)
if (!_head->is_driver_port()) {
_voices = new Raul::Array<PortImpl::Voice>(_head->poly());
- _head->get_buffers(*_engine.buffer_factory(),
- _voices,
- _head->poly(),
- false);
+ _head->pre_get_buffers(*_engine.buffer_factory(),
+ _voices,
+ _head->poly());
}
tail_output->inherit_neighbour(_head, _tail_remove, _tail_add);
diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp
index 8875eb0c..3233cac4 100644
--- a/src/server/events/Disconnect.cpp
+++ b/src/server/events/Disconnect.cpp
@@ -90,10 +90,9 @@ Disconnect::Impl::Impl(Engine& e,
if (_head->num_arcs() == 0) {
if (!_head->is_driver_port()) {
_voices = new Raul::Array<PortImpl::Voice>(_head->poly());
- _head->get_buffers(*_engine.buffer_factory(),
- _voices,
- _head->poly(),
- false);
+ _head->pre_get_buffers(*_engine.buffer_factory(),
+ _voices,
+ _head->poly());
if (_head->is_a(PortType::CONTROL) ||
_head->is_a(PortType::CV)) {
@@ -189,9 +188,7 @@ Disconnect::Impl::execute(RunContext& context, bool set_head_buffers)
if (_voices) {
_engine.maid()->dispose(_head->set_voices(context, _voices));
} else {
- _head->setup_buffers(*_engine.buffer_factory(),
- _head->poly(),
- true);
+ _head->setup_buffers(context, *_engine.buffer_factory(), _head->poly());
}
_head->connect_buffers();
} else {
diff --git a/src/server/events/SetPortValue.cpp b/src/server/events/SetPortValue.cpp
index 4ab0271c..ff0827e4 100644
--- a/src/server/events/SetPortValue.cpp
+++ b/src/server/events/SetPortValue.cpp
@@ -74,9 +74,7 @@ SetPortValue::pre_process(PreProcessContext& ctx)
_buffer = _engine.buffer_factory()->get_buffer(
_port->buffer_type(),
0,
- _engine.buffer_factory()->default_size(_port->buffer_type()),
- false,
- false);
+ _engine.buffer_factory()->default_size(_port->buffer_type()));
}
return Event::pre_process_done(Status::SUCCESS);