Osc.OscMessagesToPacket C# (CSharp) Method

OscMessagesToPacket() public static method

Puts an array of OscMessages into a packet (byte[]).
public static OscMessagesToPacket ( ArrayList messages, byte packet, int length ) : int
messages ArrayList An ArrayList of OscMessages.
packet byte An array of bytes to be populated with the OscMessages.
length int The size of the array of bytes.
return int
    public static int OscMessagesToPacket(ArrayList messages, byte[] packet, int length)
    {
      int index = 0;
      if (messages.Count == 1)
        index = OscMessageToPacket((OscMessage)messages[0], packet, 0, length);
      else
      {
        // Write the first bundle bit
        index = InsertString("#bundle", packet, index, length);
        // Write a null timestamp (another 8bytes)
        int c = 8;
        while (( c-- )>0)
          packet[index++]++;
        // Now, put each message preceded by it's length
        foreach (OscMessage oscM in messages)
        {
          int lengthIndex = index;
          index += 4;
          int packetStart = index;
          index = OscMessageToPacket(oscM, packet, index, length);
          int packetSize = index - packetStart;
          packet[lengthIndex++] = (byte)((packetSize >> 24) & 0xFF);
          packet[lengthIndex++] = (byte)((packetSize >> 16) & 0xFF);
          packet[lengthIndex++] = (byte)((packetSize >> 8) & 0xFF);
          packet[lengthIndex++] = (byte)((packetSize) & 0xFF);
        }
      }
      return index;
    }

Usage Example

Ejemplo n.º 1
0
    // Sends a list of OSC Messages.  Internally takes the OscMessage objects and
    // serializes them into a byte[] suitable for sending to the PacketExchange.

    //oms - The OSC Message to send.
    public void Send(ArrayList oms)
    {
        byte[] packet = new byte[1000];
        int    length = Osc.OscMessagesToPacket(oms, packet, 1000);

        OscPacketIO.SendPacket(packet, length);
    }
All Usage Examples Of Osc::OscMessagesToPacket