diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-05-12 10:03:53 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-05-12 10:03:53 +0000 |
commit | d46724515238fdb57f5d21c450883f7cc8897a56 (patch) | |
tree | bb1487333ddcc99900e9614c2bebbfa4d6ce28d6 /libs/ardour/ardour/midi_ring_buffer.h | |
parent | 8ca72c4eca3a712f5368680ba0fbce5beb831324 (diff) |
* fixed various event size bugs
git-svn-id: svn://localhost/ardour2/branches/3.0@3336 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_ring_buffer.h')
-rw-r--r-- | libs/ardour/ardour/midi_ring_buffer.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/ardour/ardour/midi_ring_buffer.h b/libs/ardour/ardour/midi_ring_buffer.h index ea0013fe46..baa8e9d948 100644 --- a/libs/ardour/ardour/midi_ring_buffer.h +++ b/libs/ardour/ardour/midi_ring_buffer.h @@ -348,12 +348,14 @@ MidiRingBuffer::write(double time, size_t size, const Byte* buf) MidiRingBufferBase<Byte>::write(sizeof(double), (Byte*)&time); MidiRingBufferBase<Byte>::write(sizeof(size_t), (Byte*)&size); if (is_channel_event(buf[0]) && get_channel_mode() == ForceChannel) { - assert(size == 3); + assert(size == 2 || size == 3); Byte tmp_buf[3]; // Force event to channel tmp_buf[0] = (buf[0] & 0xF0) | (get_channel_mask() & 0x0F); tmp_buf[1] = buf[1]; - tmp_buf[2] = buf[2]; + if (size == 3) { + tmp_buf[2] = buf[2]; + } MidiRingBufferBase<Byte>::write(size, tmp_buf); } else { MidiRingBufferBase<Byte>::write(size, buf); |