summaryrefslogtreecommitdiff
path: root/libs/ardour/internal_send.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-10-17 20:35:55 +0000
committerCarl Hetherington <carl@carlh.net>2011-10-17 20:35:55 +0000
commitc7d2497e2badd3fabd29fe3b1c55978f276bbbf9 (patch)
tree1e7c0128c7c694a68525b85a2065459b4f04dc05 /libs/ardour/internal_send.cc
parent6fc823aca88dfe2e1dee1ceab81edf1a674640af (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.cc10
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 */