Disk-writer: don't record immediate/oob events
authorRobin Gareus <robin@gareus.org>
Sat, 30 Sep 2017 21:38:41 +0000 (23:38 +0200)
committerRobin Gareus <robin@gareus.org>
Sat, 30 Sep 2017 21:38:41 +0000 (23:38 +0200)
libs/ardour/disk_writer.cc

index c30143d262d978d001b7bebc1f31c08bd8536045..06218d1ff140337706e4cbca59e5f15ebbb8ae91 100644 (file)
@@ -525,6 +525,20 @@ DiskWriter::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp
                                continue;
                        }
 
+                       bool skip_event = false;
+                       if (mt) {
+                               /* skip injected immediate/out-of-band events */
+                               MidiBuffer const& ieb (mt->immediate_event_buffer());
+                               for (MidiBuffer::const_iterator j = ieb.begin(); j != ieb.end(); ++j) {
+                                       if (*j == ev) {
+                                               skip_event = true;
+                                       }
+                               }
+                       }
+                       if (skip_event) {
+                               continue;
+                       }
+
                        if (!filter || !filter->filter(ev.buffer(), ev.size())) {
                                _midi_buf->write (event_time, ev.event_type(), ev.size(), ev.buffer());
                        }