/// <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());
     }
 }
Exemple #3
0
        /// <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);
            }
        }