if ((*niter)->name() == "IOProcessor") {
insert_node = *niter;
} else if ((*niter)->name() == X_("Automation")) {
- _io->set_automation_state (*(*niter), ParamID(GainAutomation));
+ _io->set_automation_state (*(*niter), Parameter(GainAutomation));
}
}
}
void
-Send::run (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
+Send::run_in_place (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
{
if (active()) {
// we have to copy the input, because IO::deliver_output may alter the buffers
// in-place, which a send must never do.
- BufferSet& sendbufs = _session.get_send_buffers(bufs.count());
+ BufferSet& sendbufs = _session.get_mix_buffers(bufs.count());
sendbufs.read_from(bufs, nframes);
assert(sendbufs.count() == bufs.count());
if (_io->_gain == 0) {
_io->_meter->reset();
} else {
- _io->_meter->run(_io->output_buffers(), start_frame, end_frame, nframes, offset);
+ _io->_meter->run_in_place(_io->output_buffers(), start_frame, end_frame, nframes, offset);
}
}
ChanCount
Send::output_streams() const
{
- return _io->n_outputs ();
+ // this method reflects the idea that from the perspective of the Route's ProcessorList,
+ // a send is just a passthrough. that doesn't match what the Send actually does with its
+ // data, but since what it does is invisible to the Route, it appears to be a passthrough.
+
+ return _configured_input;
}
ChanCount
Send::input_streams() const
{
- return _io->n_outputs (); // (sic)
+ return _configured_input;
}
+
+