+ if (result_required) {
+
+ /* "bufs" are internal, meaning they should never reflect
+ split-cycle offsets. So shift events back in time from where
+ they were for the external buffers associated with Ports.
+ */
+
+ BufferSet& outs (output_buffers());
+
+ for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
+
+ uint32_t n = 0;
+
+ for (BufferSet::iterator b = bufs.begin (*t); b != bufs.end (*t); ++b) {
+ b->read_from (outs.get (*t, n++), nframes, (*t == DataType::AUDIO ? 0 : -Port::port_offset()));
+ }
+ }
+ }