From eaa1dacf5fc9537cfff36e2339bd07aab348aa2e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 18 Sep 2016 01:10:53 +0200 Subject: ensure that Lua DSP scripts are configured (even with 0 channels) This fixes an issue with dsp_configure not being when there are only MIDI signals at the given insertion point. --- libs/ardour/ardour/luaproc.h | 2 ++ libs/ardour/luaproc.cc | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libs/ardour/ardour/luaproc.h b/libs/ardour/ardour/luaproc.h index e38e8fbeed..d0d919b6c3 100644 --- a/libs/ardour/ardour/luaproc.h +++ b/libs/ardour/ardour/luaproc.h @@ -173,6 +173,8 @@ private: ChanCount _configured_in; ChanCount _configured_out; + bool _configured; + ChanCount _selected_in; ChanCount _selected_out; diff --git a/libs/ardour/luaproc.cc b/libs/ardour/luaproc.cc index 7b676167de..752aa8108f 100644 --- a/libs/ardour/luaproc.cc +++ b/libs/ardour/luaproc.cc @@ -61,6 +61,7 @@ LuaProc::LuaProc (AudioEngine& engine, , _designated_bypass_port (UINT32_MAX) , _control_data (0) , _shadow_data (0) + , _configured (false) , _has_midi_input (false) , _has_midi_output (false) { @@ -91,6 +92,7 @@ LuaProc::LuaProc (const LuaProc &other) , _designated_bypass_port (UINT32_MAX) , _control_data (0) , _shadow_data (0) + , _configured (false) , _has_midi_input (false) , _has_midi_output (false) { @@ -526,7 +528,7 @@ LuaProc::configure_io (ChanCount in, ChanCount out) _info->n_outputs = _selected_out; // configure the DSP if needed - if (in != _configured_in || out != _configured_out) { + if (in != _configured_in || out != _configured_out || !_configured) { lua_State* L = lua.getState (); luabridge::LuaRef lua_dsp_configure = luabridge::getGlobal (L, "dsp_configure"); if (lua_dsp_configure.type () == LUA_TFUNCTION) { @@ -563,6 +565,7 @@ LuaProc::configure_io (ChanCount in, ChanCount out) _info->n_inputs = lin; _info->n_outputs = lout; } + _configured = true; } catch (luabridge::LuaException const& e) { PBD::error << "LuaException: " << e.what () << "\n"; #ifndef NDEBUG -- cgit v1.2.3