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 (...) {