13
0

Fixed generic MIDI program change event size to two bytes (fixes #6426)

This commit is contained in:
Len Ovens 2015-07-09 18:23:14 -07:00 committed by Paul Davis
parent 6349570fb2
commit a29b050883

View File

@ -470,12 +470,16 @@ MIDIControllable::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool /*forc
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Feedback: %1 %2\n", control_description(), current_uri()));
*buf++ = (0xF0 & control_type) | (0xF & control_channel);
int ev_size = 3;
switch (control_type) {
case MIDI::pitchbend:
*buf++ = int (gm) & 127;
*buf++ = (int (gm) >> 7) & 127;
break;
case MIDI::program:
*buf++ = control_additional; /* program number */
ev_size = 2;
break;
default:
*buf++ = control_additional; /* controller number */
*buf++ = gm;
@ -484,7 +488,7 @@ MIDIControllable::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool /*forc
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("MIDI out: Type %1 Channel %2 Bytes %3 %4\n", (int) control_type, (int) control_channel , (int) *(buf - 2), (int) *(buf - 1)));
last_value = gm;
bufsize -= 3;
bufsize -= ev_size;
return buf;
}