Set \midi_out when selecting a configuration...
authorJulien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr>
Wed, 3 Aug 2016 15:18:22 +0000 (17:18 +0200)
committerJulien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr>
Sat, 6 Aug 2016 17:38:09 +0000 (19:38 +0200)
...instead of at the very beginning, so that it can depend on the loop
iteration.

libs/ardour/luaproc.cc

index 8030b92f7d6d37e55016f404509c75f76b97d4c8..dec5de3b77b2dbe12010404bea48a6d265b01f5c 100644 (file)
@@ -380,7 +380,7 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan
        // preferred setting (provided by plugin_insert)
        const int preferred_out = out.n_audio ();
 
-       int midi_out = _has_midi_output ? 1 : 0;
+       int midi_out = -1;
        int audio_out = -1;
        float penalty = 9999;
        bool found = false;
@@ -389,6 +389,7 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan
   _output_configs.insert (out);                    \
   if (p < penalty) {                               \
     audio_out = (out);                             \
+    midi_out = possible_midiout;                   \
     if (imprecise) {                               \
       imprecise->set (DataType::AUDIO, (in));      \
       imprecise->set (DataType::MIDI,              \
@@ -433,6 +434,7 @@ LuaProc::can_support_io_configuration (const ChanCount& in, ChanCount& out, Chan
                int possible_in = io["audio_in"].isNumber() ? io["audio_in"] : -1;
                int possible_out = io["audio_out"].isNumber() ? io["audio_out"] : -1;
                int possible_midiin = _has_midi_input ? 1 : 0;
+               int possible_midiout = _has_midi_output ? 1 : 0;
 
                if (midi_in > 0 && possible_midiin == 0 && !imprecise) {
                        continue;