示例#1
0
        public void SendMidiMessage(MidiMessage message, long timestamp)
        {
            sequenceNumber++;
            long      currentTimeIn100Microseconds = RtpMidiSession.GetCurrentTimestamp();
            int       rtpTimestamp = ((int)currentTimeIn100Microseconds);
            RtpHeader rtpHeader    =
                new RtpHeader((byte)2, false, false, (byte)0, false, (byte)97, sequenceNumber, rtpTimestamp, Ssrc);

            Log.Debug("RtpMidi", "Sending RTP-Header: {}", rtpHeader);
            bool b = message.Length > 15;
            MidiCommandHeader midiCommandHeader =
                new MidiCommandHeader(b, false, false, false, (short)message.Length, rtpHeader);
            var commandCol = new List <MidiTimestampPair>();

            commandCol.Add(new MidiTimestampPair(0, message));
            RtpMidiMessage rtpMidiMessage = new RtpMidiMessage(midiCommandHeader, commandCol);

            try
            {
                RtpMidiMessageSender.Send(rtpMidiMessage, RtpMidiServer);
            }
            catch (IOException e)
            {
                Log.Error("RtpMidi", "Error sending MidiMessage to {}", RtpMidiServer, e);
            }
        }
示例#2
0
 private void HandleMessage(RtpMidiMessage message)
 {
     foreach (MidiTimestampPair midiPair in message.Messages)
     {
         foreach (IRtpMidiMessageListener listener in listeners)
         {
             listener.OnMidiMessage(message.MidiCommandHeader, midiPair.MidiMessage, midiPair.Timestamp);
         }
     }
 }
 public void Send(RtpMidiMessage rtpMidiMessage, model.RtpMidiServer rtpMidiServer)
 {
     Send(rtpMidiMessage.ToByteArray(), rtpMidiServer);
 }