210 |
} |
} |
211 |
|
|
212 |
String MidiInputDeviceJack::Version() { |
String MidiInputDeviceJack::Version() { |
213 |
String s = "$Revision: 1.2 $"; |
String s = "$Revision: 1.3 $"; |
214 |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
215 |
} |
} |
216 |
|
|
233 |
#else |
#else |
234 |
jack_midi_event_get(&ev, port_buffer, i); |
jack_midi_event_get(&ev, port_buffer, i); |
235 |
#endif |
#endif |
236 |
uint8_t* data = ev.buffer; |
port->DispatchRaw(ev.buffer, ev.time); |
|
uint8_t channel = data[0] & 0x0f; |
|
|
switch (data[0] & 0xf0) { |
|
|
case 0xb0: |
|
|
if (data[1] == 0) { |
|
|
port->DispatchBankSelectMsb(data[2], channel); |
|
|
} else if (data[1] == 32) { |
|
|
port->DispatchBankSelectLsb(data[2], channel); |
|
|
} |
|
|
port->DispatchControlChange(data[1], data[2], channel, ev.time); |
|
|
break; |
|
|
|
|
|
case 0xd0: |
|
|
port->DispatchControlChange(128, data[1], channel, ev.time); |
|
|
break; |
|
|
|
|
|
case 0xe0: |
|
|
port->DispatchPitchbend(data[1], channel, ev.time); |
|
|
break; |
|
|
|
|
|
case 0x90: |
|
|
if (data[2]) { |
|
|
port->DispatchNoteOn(data[1], data[2], channel, ev.time); |
|
|
} else { |
|
|
port->DispatchNoteOff(data[1], data[2], channel, ev.time); |
|
|
} |
|
|
break; |
|
|
|
|
|
case 0x80: |
|
|
port->DispatchNoteOff(data[1], data[2], channel, ev.time); |
|
|
break; |
|
|
|
|
|
case 0xc0: |
|
|
port->DispatchProgramChange(data[1], channel); |
|
|
break; |
|
|
} |
|
237 |
} |
} |
238 |
} |
} |
239 |
} |
} |