special case mixbus.
authorRobin Gareus <robin@gareus.org>
Wed, 30 Mar 2016 00:22:31 +0000 (02:22 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 30 Mar 2016 00:22:31 +0000 (02:22 +0200)
libs/ardour/plugin_insert.cc

index 21debe1d80bc47a44976e929ef5f670c24fe9fdc..267dd23dbff7037e9a5a616ab8ab09dd41db40f7 100644 (file)
@@ -491,7 +491,20 @@ PluginInsert::connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t of
                }
 
        }
                }
 
        }
+#ifdef MIXBUS
+       if (_plugins.front()->is_channelstrip() ) {
+               if (_configured_in.n_audio() > 0) {
+                       ChanMapping mb_in_map (min (_configured_in, ChanCount (DataType::AUDIO, 2)));
+                       ChanMapping mb_out_map (min (_configured_out, ChanCount (DataType::AUDIO, 2)));
 
 
+                       _plugins.front()->connect_and_run (bufs, mb_in_map, mb_out_map, nframes, offset);
+
+                       for (uint32_t out = _configured_in.n_audio; out < bufs.count().get (DataType::AUDIO); ++out) {
+                               bufs.get (DataType::AUDIO, out).silence (nframes, offset);
+                       }
+               }
+       } else
+#endif
        if (_no_inplace) {
                BufferSet& inplace_bufs  = _session.get_noinplace_buffers();
                ARDOUR::ChanMapping used_outputs;
        if (_no_inplace) {
                BufferSet& inplace_bufs  = _session.get_noinplace_buffers();
                ARDOUR::ChanMapping used_outputs;