private void Input_OnData(object sender, byte[] e) { var data = new ArraySegment <byte>(e); while (data.Count > 0) { MidiMessage msg; if (!MidiProtocol.TryParseMessage(data, out msg, out data)) { break; } if (!HandleMessage(ref msg)) { Console.WriteLine("NK2> {0}", msg); } } }
private static void Vm_OnData(object sender, byte[] e) { var bytes = new ArraySegment <byte>(e); ArraySegment <byte> extraBytes; var portIndex = Array.IndexOf(Ports, sender); MidiMessage msg; if (MidiProtocol.TryParseMessage(bytes, out msg, out extraBytes)) { Console.WriteLine("Port #{0} {1}", portIndex, msg); return; } Console.Write("Port #{0} {{", portIndex); foreach (var b in e) { Console.Write("{0:X2}", b); } Console.WriteLine("}"); }