diff options
author | David Robillard <d@drobilla.net> | 2016-12-13 20:53:58 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2016-12-14 14:47:13 -0500 |
commit | e7b2f7ee286350bc3bb56b44ed98e4d8bf49af82 (patch) | |
tree | 8e5a4e42b36bb5c321f24cdd492cd3dc0a941222 /src/server/events | |
parent | 05c55a5be68318d2b7ca861a3012bf4893bcb82d (diff) | |
download | ingen-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.cpp | 7 | ||||
-rw-r--r-- | src/server/events/Disconnect.cpp | 11 | ||||
-rw-r--r-- | src/server/events/SetPortValue.cpp | 4 |
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); |