+ _delaylines.clear ();
+}
+
+void PortExportChannel::set_max_buffer_size(samplecnt_t samples)
+{
+ _buffer_size = samples;
+ _buffer.reset (new Sample[samples]);
+
+ _delaylines.clear ();
+
+ for (PortSet::const_iterator it = ports.begin(); it != ports.end(); ++it) {
+ boost::shared_ptr<AudioPort> p = it->lock ();
+ if (!p) { continue; }
+ samplecnt_t latency = p->private_latency_range (true).max;
+ PBD::RingBuffer<Sample>* rb = new PBD::RingBuffer<Sample> (latency + 1 + _buffer_size);
+ for (samplepos_t i = 0; i < latency; ++i) {
+ Sample zero = 0;
+ rb->write (&zero, 1);
+ }
+ _delaylines.push_back (boost::shared_ptr<PBD::RingBuffer<Sample> >(rb));
+ }