Re: [PATCH] Prevent loss of state between MIDI subscriptions

From: Thomas Karpiniec
Date: Tue Dec 25 2012 - 23:48:42 EST


Apologies for the linewrap. This will be better:

A MIDI input parser is unnecessarily reset whenever a new subscription
is created.

This is a particular problem with the Novation Launchpad, which sends a
single NOTEON command, then a series of notes indefinitely unless a
control button is pressed or it is power cycled. If a user application
restarts and resubscribes, the parser no longer knows that it is
receiving NOTEONs and fails to pass on new input.

Signed-off-by: Thomas Karpiniec <tk@xxxxxxxxxxxxxxxxxx>
---
sound/core/seq/seq_midi.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c
index 64069db..1a977df 100644
--- a/sound/core/seq/seq_midi.c
+++ b/sound/core/seq/seq_midi.c
@@ -200,7 +200,6 @@ static int midisynth_subscribe(void *private_data, struct snd_seq_port_subscribe
snd_rawmidi_kernel_release(&msynth->input_rfile);
return err;
}
- snd_midi_event_reset_encode(msynth->parser);
runtime->event = snd_midi_input_event;
runtime->private_data = msynth;
snd_rawmidi_kernel_read(msynth->input_rfile.input, NULL, 0);
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/