From 4ebeecda287bb12a14c69d096b5ee4ba4911ec97 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Fri, 10 Aug 2007 09:39:24 +0200 Subject: [PATCH] seq_midi_event: prevent running status after system messages Reset the event type after encoding a system message to prevent any following data bytes from being interpreted as data for a running status system message, which is not allowed in MIDI. --- src/seq/seq_midi_event.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/seq/seq_midi_event.c b/src/seq/seq_midi_event.c index 4fa914b0..def9d0e1 100644 --- a/src/seq/seq_midi_event.c +++ b/src/seq/seq_midi_event.c @@ -338,6 +338,8 @@ int snd_midi_event_encode_byte(snd_midi_event_t *dev, int c, snd_seq_event_t *ev ev->flags |= SND_SEQ_EVENT_LENGTH_FIXED; if (status_event[dev->type].encode) /* set data values */ status_event[dev->type].encode(dev, ev); + if (dev->type >= ST_SPECIAL) + dev->type = ST_INVALID; rc = 1; } else if (dev->type == ST_SYSEX) { if (c == MIDI_CMD_COMMON_SYSEX_END || -- 2.47.1