From 08f3ef4ecdbd4369c8de844967648ec3b0656919 Mon Sep 17 00:00:00 2001 From: "Julien \"_FrnchFrgg_\" RIVAUD" Date: Tue, 2 Aug 2016 13:41:29 +0200 Subject: Set \imprecise when a configuration is chosen Instead of setting \imprecise at the end of the loop if a configuration was found (which clobbered valuable information, see dae2406187), set it each time a new configuration is chosen. In the second loop that tries harder, resetting \imprecise also avoids a previous "imprecise->set(AUDIO, 0)" to last even if another configuration is chosen later. Last but not least, it will enable correctly setting the midi input count hoped for by the configuration. --- libs/ardour/luaproc.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'libs/ardour/luaproc.cc') diff --git a/libs/ardour/luaproc.cc b/libs/ardour/luaproc.cc index cfe6682067..ae0b09717f 100644 --- a/libs/ardour/luaproc.cc +++ b/libs/ardour/luaproc.cc @@ -391,6 +391,9 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan if ((nch) > preferred_out) { p *= 1.1; } \ if (p < penalty) { \ audio_out = (nch); \ + if (imprecise) { \ + *imprecise = in; \ + } \ penalty = p; \ found = true; \ } \ @@ -505,10 +508,6 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan } - if (found && imprecise) { - *imprecise = in; - } - if (!found && imprecise) { /* try harder */ for (luabridge::Iterator i (iotable); !i.isNil (); ++i) { @@ -531,7 +530,6 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan assert (possible_in > 0); // all other cases will have been matched above - imprecise->set (DataType::AUDIO, possible_in); if (possible_out == -1 || possible_out == -2) { FOUNDCFG (2); } else if (possible_out < -2) { @@ -541,6 +539,7 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan /* exact number of outputs */ FOUNDCFG (possible_out); } + imprecise->set (DataType::AUDIO, possible_in); // ideally we'll also find the closest, best matching // input configuration with minimal output penalty... } -- cgit v1.2.3