From be3d3a6d0091768003fa21f932bcc5912d0fafd9 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 30 Jun 2023 17:21:49 +0200 Subject: [PATCH] LuaProc: allow plugin to prefer a regular block length This equivalent to http://lv2plug.in/ns/ext/buf-size#coarseBlockLength --- libs/ardour/ardour/luaproc.h | 2 ++ libs/ardour/luaproc.cc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/libs/ardour/ardour/luaproc.h b/libs/ardour/ardour/luaproc.h index 314879a3d0..38d4961480 100644 --- a/libs/ardour/ardour/luaproc.h +++ b/libs/ardour/ardour/luaproc.h @@ -87,6 +87,7 @@ public: void cleanup () { } int set_block_size (pframes_t /*nframes*/) { return 0; } + bool requires_fixed_sized_buffers () const { return _requires_fixed_sized_buffers; } bool connect_all_audio_outputs () const { return _connect_all_audio_outputs; } int connect_and_run (BufferSet& bufs, @@ -163,6 +164,7 @@ private: std::string _docs; bool _lua_does_channelmapping; bool _lua_has_inline_display; + bool _requires_fixed_sized_buffers; bool _connect_all_audio_outputs; bool _set_time_info; diff --git a/libs/ardour/luaproc.cc b/libs/ardour/luaproc.cc index 4c5cdda35f..bef72ee0d2 100644 --- a/libs/ardour/luaproc.cc +++ b/libs/ardour/luaproc.cc @@ -60,6 +60,7 @@ LuaProc::LuaProc (AudioEngine& engine, , _script (script) , _lua_does_channelmapping (false) , _lua_has_inline_display (false) + , _requires_fixed_sized_buffers (false) , _connect_all_audio_outputs (false) , _set_time_info (false) , _designated_bypass_port (UINT32_MAX) @@ -300,6 +301,9 @@ LuaProc::load_script () if (i.key().cast () == "time_info" && i.value().isBoolean ()) { _set_time_info = i.value().cast (); } + if (i.key().cast () == "regular_block_length" && i.value().isBoolean ()) { + _requires_fixed_sized_buffers = i.value().cast (); + } } } } catch (...) {