summaryrefslogtreecommitdiff
path: root/libs/ardour/disk_io.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/disk_io.cc')
-rw-r--r--libs/ardour/disk_io.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/ardour/disk_io.cc b/libs/ardour/disk_io.cc
index 26be1e0a0f..64c645bdc3 100644
--- a/libs/ardour/disk_io.cc
+++ b/libs/ardour/disk_io.cc
@@ -151,20 +151,26 @@ DiskIOProcessor::configure_io (ChanCount in, ChanCount out)
boost::shared_ptr<ChannelList> c = writer.get_copy();
uint32_t n_audio = in.n_audio();
+ bool changed = false;
if (n_audio > c->size()) {
add_channel_to (c, n_audio - c->size());
+ changed = true;
} else if (n_audio < c->size()) {
remove_channel_from (c, c->size() - n_audio);
+ changed = true;
}
if (in.n_midi() > 0 && !_midi_buf) {
const size_t size = _session.butler()->midi_diskstream_buffer_size();
_midi_buf = new MidiRingBuffer<framepos_t>(size);
midi_interpolation.add_channel_to (0,0);
+ changed = true;
}
- seek (_session.transport_frame());
+ if (changed) {
+ seek (_session.transport_frame());
+ }
return Processor::configure_io (in, out);
}