예제 #1
0
        override protected void pack()
        {
            List <byte> data       = new List <byte>();
            oscString   oAddress   = this.address;
            oscDateTime oTimestamp = this.timestamp;

            addBytes(data, oAddress.pack());
            padNull(data);
            addBytes(data, oTimestamp.pack());              // fixed point, 8 bytes
            padNull(data);

            foreach (OSCPacket oscPacket in this.Values)
            {
                if (oscPacket != null)
                {
                    byte[] bs  = oscPacket.BinaryData;
                    oscInt len = bs.Length;
                    addBytes(data, len.pack());
                    addBytes(data, bs);
                }
                else
                {
                    // TODO
                }
            }

            this.binaryData = (byte[])data.ToArray();
        }
예제 #2
0
파일: OSCData.cs 프로젝트: dcgoodnow/celine
        public static oscString unpack(byte[] bytes, ref int start)
        {
            int count = 0;

            for (int index = start; bytes[index] != 0; index++, count++)
            {
                ;
            }
            oscString s = Encoding.UTF8.GetString(bytes, start, count);

            start += count + 1;
            start  = (start + 3) / 4 * 4;
            return(s);
        }
예제 #3
0
        /// <summary>Packs OSC address, tagstring, and values into a properly formatted OSC packet.</summary>
        override protected void pack()
        {
            List <byte> data     = new List <byte>();
            oscString   oAddress = this.address;
            oscString   oTypeTag = this.typeTag;

            addBytes(data, oAddress.pack());
            padNull(data);
            addBytes(data, oTypeTag.pack());
            padNull(data);

            foreach (OSCData item in values)
            {
                addBytes(data, item.pack());
                padNull(data);
            }
            this.binaryData = (byte[])data.ToArray();
        }