/// <summary> /// Creates a new short midi message object. /// </summary> /// <param name="message">A full short midi message with the lower 3 bytes filled.</param> /// <returns>Never returns null.</returns> public MidiShortMessage CreateShortMessage(int message) { MidiShortMessage result = Lookup(message); if (result == null) { int statusChannel = MidiData.GetStatus(message); byte status = (byte)(statusChannel & (byte)0xF0); if (status == 0xF0) { if (statusChannel >= 0xF8) { result = new MidiSysRealtimeMessage(message); } else { result = new MidiSysCommonMessage(message); } } else if (status == (byte)MidiChannelCommand.ControlChange) { result = new MidiControllerMessage(message); } else { result = new MidiChannelMessage(message); } Add(result); } return(result); }
/// <summary> /// Creates a new short midi message object. /// </summary> /// <param name="message">A full short midi message with the lower 3 bytes filled.</param> /// <returns>Never returns null.</returns> public MidiShortMessage CreateShortMessage(int message) { Contract.Ensures(Contract.Result <MidiShortMessage>() != null); MidiShortMessage result = this.Lookup(message); if (result == null) { int statusChannel = MidiData.GetStatus(message); byte status = (byte)(statusChannel & (byte)0xF0); if (status == 0xF0) { if (statusChannel >= 0xF8) { result = new MidiSysRealTimeMessage(message); } else { result = new MidiSysCommonMessage(message); } } else if (status == (byte)MidiChannelCommand.ControlChange) { result = new MidiControllerMessage(message); } else { result = new MidiChannelMessage(message); } this.Add(result); } return(result); }