diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-07 20:14:16 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-07 20:14:16 +0000 |
commit | 18695cdfe3cc600360ad15d37d55eb6a4e8d4a2f (patch) | |
tree | e91b228c968145e54ea57b1206c7b763e28c04e3 /libs/ardour/audio_diskstream.cc | |
parent | 3b6300156b240e3daeab3cd34d1b937a20a657f2 (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.cc | 14 |
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) { |