projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6349570
)
Fixed generic MIDI program change event size to two bytes (fixes #6426)
author
Len Ovens
<len@ovenwerks.net>
Fri, 10 Jul 2015 01:23:14 +0000
(18:23 -0700)
committer
Paul Davis
<paul@linuxaudiosystems.com>
Fri, 10 Jul 2015 20:52:43 +0000
(16:52 -0400)
libs/surfaces/generic_midi/midicontrollable.cc
patch
|
blob
|
history
diff --git
a/libs/surfaces/generic_midi/midicontrollable.cc
b/libs/surfaces/generic_midi/midicontrollable.cc
index b427bef03bcfadb3f79dd1e429c5a573bd2c972f..89df2cbdeaf2f61016f681b0c1a7dc169f3ad381 100644
(file)
--- a/
libs/surfaces/generic_midi/midicontrollable.cc
+++ b/
libs/surfaces/generic_midi/midicontrollable.cc
@@
-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);
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;
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;
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;
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;
}
return buf;
}