/// <summary> /// Receives a short midi data message. /// </summary> /// <param name="data">The short midi message data.</param> /// <param name="timestamp">Not used. A new timestamp is generated.</param> public override void ShortData(int data, long timestamp) { if (NextReceiver != null) { NextReceiver.ShortData(data, GetCurrentTimestamp()); } }
/// <summary> /// Receives a long midi data message. /// </summary> /// <param name="buffer">The buffer containing the long message data.</param> /// <param name="timestamp">Not used. A new timestamp is generated.</param> public override void LongData(MidiBufferStream buffer, long timestamp) { if (NextReceiver != null) { NextReceiver.LongData(buffer, GetCurrentTimestamp()); } }
/// <summary> /// Dispatches the <paramref name="record"/> to the appropriate receiver component. /// </summary> /// <param name="record">Must not be null.</param> private void DispatchRecord(MidiPortEvent record) { Contract.Requires(record != null); Check.IfArgumentNull(record, "record"); if (NextReceiver != null) { switch (record.RecordType) { case MidiPortEventType.MoreData: case MidiPortEventType.ShortData: NextReceiver.ShortData(record.Data, (int)record.Timestamp); break; case MidiPortEventType.LongData: NextReceiver.LongData(record.Buffer, (int)record.Timestamp); break; } } if (NextErrorReceiver != null) { switch (record.RecordType) { case MidiPortEventType.ShortError: NextErrorReceiver.ShortError(record.Data, (int)record.Timestamp); break; case MidiPortEventType.LongError: NextErrorReceiver.LongError(record.Buffer, (int)record.Timestamp); break; } } if (NextPortEventReceiver != null) { NextPortEventReceiver.PortEvent(record); } }