Don't raise an error when trying to auto-connect master to physical outputs if the...
[ardour.git] / libs / ardour / send.cc
index ea4c16a416f04ded663236f91bb220b41a709b29..a90f31c2cf6671607de6d289c0b664a3df5089bf 100644 (file)
@@ -86,8 +86,16 @@ Send::deactivate ()
 void
 Send::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes)
 {
-       if (!_active || _output->n_ports() == ChanCount::ZERO) {
+       if (_output->n_ports() == ChanCount::ZERO) {
                _meter->reset ();
+               _active = _pending_active;
+               return;
+       }
+
+       if (!_active && !_pending_active) {
+               _meter->reset ();
+               _output->silence (nframes);
+               _active = _pending_active;
                return;
        }
 
@@ -118,6 +126,8 @@ Send::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_
                        _meter->run (*_output_buffers, start_frame, end_frame, nframes);
                }
        }
+
+       /* _active was set to _pending_active by Delivery::run() */
 }
 
 XMLNode&
@@ -180,7 +190,13 @@ Send::configure_io (ChanCount in, ChanCount out)
                return false;
        }
        
-       return Processor::configure_io (in, out);
+       if (!Processor::configure_io (in, out)) {
+               return false;
+       }
+
+       reset_panner ();
+       
+       return true;
 }
 
 /** Set up the XML description of a send so that its name is unique.