From 59f579df71e52207bcdda15d4abb3562fdc1d6f2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 20 Mar 2017 03:04:15 +0100 Subject: Remove dubious Buffer::nframes() method --- src/server/Buffer.hpp | 14 ++------------ src/server/LV2Block.cpp | 12 +++++++----- src/server/PortImpl.cpp | 2 +- src/server/events/Disconnect.cpp | 2 +- 4 files changed, 11 insertions(+), 19 deletions(-) (limited to 'src/server') diff --git a/src/server/Buffer.hpp b/src/server/Buffer.hpp index 8742445f..939f1f87 100644 --- a/src/server/Buffer.hpp +++ b/src/server/Buffer.hpp @@ -101,16 +101,6 @@ public: return NULL; } - /// Audio buffers only - inline SampleCount nframes() const { - if (is_control()) { - return 1; - } else if (is_audio()) { - return (_capacity / sizeof(Sample)); - } - return 0; - } - /// Numeric buffers only inline Sample value_at(SampleCount offset) const { if (is_audio() || is_control()) { @@ -126,7 +116,7 @@ public: const SampleCount end) { assert(is_audio() || is_control()); - assert(end <= nframes()); + assert(end <= _capacity / sizeof(Sample)); // Note: Do not change this without ensuring GCC can still vectorize it Sample* const buf = samples() + start; for (SampleCount i = 0; i < (end - start); ++i) { @@ -139,7 +129,7 @@ public: const SampleCount end) { assert(is_audio() || is_control()); - assert(end <= nframes()); + assert(end <= _capacity / sizeof(Sample)); // Note: Do not change this without ensuring GCC can still vectorize it Sample* const buf = samples() + start; for (SampleCount i = 0; i < (end - start); ++i) { diff --git a/src/server/LV2Block.cpp b/src/server/LV2Block.cpp index 82e5f229..77835b67 100644 --- a/src/server/LV2Block.cpp +++ b/src/server/LV2Block.cpp @@ -81,14 +81,14 @@ LV2Block::make_instance(URIs& uris, uint32_t voice, bool preparing) { + const Engine& engine = parent_graph()->engine(); const LilvPlugin* lplug = _lv2_plugin->lilv_plugin(); LilvInstance* inst = lilv_plugin_instantiate( lplug, rate, _features->array()); if (!inst) { - parent_graph()->engine().log().error( - fmt("Failed to instantiate <%1%>\n") - % _lv2_plugin->uri().c_str()); + engine.log().error(fmt("Failed to instantiate <%1%>\n") + % _lv2_plugin->uri().c_str()); return SPtr(); } @@ -116,8 +116,10 @@ LV2Block::make_instance(URIs& uris, } if (buffer) { - if (port->is_a(PortType::CV) || port->is_a(PortType::CONTROL)) { - buffer->set_block(port->value().get(), 0, buffer->nframes()); + if (port->is_a(PortType::CONTROL)) { + buffer->samples()[0] = port->value().get(); + } else if (port->is_a(PortType::CV)) { + buffer->set_block(port->value().get(), 0, engine.block_length()); } else { buffer->clear(); } diff --git a/src/server/PortImpl.cpp b/src/server/PortImpl.cpp index 066ac005..45a5a082 100644 --- a/src/server/PortImpl.cpp +++ b/src/server/PortImpl.cpp @@ -415,7 +415,7 @@ PortImpl::clear_buffers(const RunContext& ctx) case PortType::CV: for (uint32_t v = 0; v < _poly; ++v) { Buffer* buf = buffer(v).get(); - buf->set_block(_value.get(), 0, buf->nframes()); + buf->set_block(_value.get(), 0, ctx.nframes()); SetState& state = _voices->at(v).set_state; state.state = SetState::State::SET; state.value = _value.get(); diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp index 176f0999..1411e666 100644 --- a/src/server/events/Disconnect.cpp +++ b/src/server/events/Disconnect.cpp @@ -96,7 +96,7 @@ Disconnect::Impl::Impl(Engine& e, const float value = _head->value().get(); for (uint32_t i = 0; i < _voices->size(); ++i) { Buffer* buf = _voices->at(i).buffer.get(); - buf->set_block(value, 0, buf->nframes()); + buf->set_block(value, 0, e.block_length()); } } else { for (uint32_t i = 0; i < _voices->size(); ++i) { -- cgit v1.2.1