summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_diskstream.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-01-07 20:14:16 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-01-07 20:14:16 +0000
commit18695cdfe3cc600360ad15d37d55eb6a4e8d4a2f (patch)
treee91b228c968145e54ea57b1206c7b763e28c04e3 /libs/ardour/audio_diskstream.cc
parent3b6300156b240e3daeab3cd34d1b937a20a657f2 (diff)
merge keybindings/menus from SAE; report duplicate port errors during session loading more usefully; do not do disk i/o from inactive tracks (related: move Route::_active to IO::_active
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2834 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_diskstream.cc')
-rw-r--r--libs/ardour/audio_diskstream.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc
index 346e973376..7931200714 100644
--- a/libs/ardour/audio_diskstream.cc
+++ b/libs/ardour/audio_diskstream.cc
@@ -847,10 +847,18 @@ AudioDiskstream::commit (nframes_t nframes)
}
if (_slaved) {
- need_butler = c->front()->playback_buf->write_space() >= c->front()->playback_buf->bufsize() / 2;
+ if (_io && _io->active()) {
+ need_butler = c->front()->playback_buf->write_space() >= c->front()->playback_buf->bufsize() / 2;
+ } else {
+ need_butler = false;
+ }
} else {
- need_butler = c->front()->playback_buf->write_space() >= disk_io_chunk_frames
- || c->front()->capture_buf->read_space() >= disk_io_chunk_frames;
+ if (_io && _io->active()) {
+ need_butler = c->front()->playback_buf->write_space() >= disk_io_chunk_frames
+ || c->front()->capture_buf->read_space() >= disk_io_chunk_frames;
+ } else {
+ need_butler = c->front()->capture_buf->read_space() >= disk_io_chunk_frames;
+ }
}
if (commit_should_unlock) {