diff options
author | Carl Hetherington <carl@carlh.net> | 2011-10-17 20:35:55 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-10-17 20:35:55 +0000 |
commit | c7d2497e2badd3fabd29fe3b1c55978f276bbbf9 (patch) | |
tree | 1e7c0128c7c694a68525b85a2065459b4f04dc05 /libs/ardour/internal_send.cc | |
parent | 6fc823aca88dfe2e1dee1ceab81edf1a674640af (diff) |
Discard MIDI when sending to the monitor bus. Fixes
#4372.
git-svn-id: svn://localhost/ardour2/branches/3.0@10212 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/internal_send.cc')
-rw-r--r-- | libs/ardour/internal_send.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/ardour/internal_send.cc b/libs/ardour/internal_send.cc index d8bc1ccd98..bd2efbe12d 100644 --- a/libs/ardour/internal_send.cc +++ b/libs/ardour/internal_send.cc @@ -116,8 +116,14 @@ InternalSend::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame if (_panshell && !_panshell->bypassed()) { _panshell->run (bufs, mixbufs, start_frame, end_frame, nframes); } else { - assert (mixbufs.available() >= bufs.count()); - mixbufs.read_from (bufs, nframes); + if (role() == Listen) { + /* We're going to the monitor bus, so discard MIDI data */ + assert (mixbufs.available().get (DataType::AUDIO) >= bufs.count().get (DataType::AUDIO)); + mixbufs.read_from (bufs, nframes, DataType::AUDIO); + } else { + assert (mixbufs.available() >= bufs.count()); + mixbufs.read_from (bufs, nframes); + } } /* gain control */ |