Example #1
0
        public virtual Int16 BlobElementToInt16(int argument, int element)
        {
            Int16 i = 0;

            if (Arguments[argument] is OSCBlobArg && element >= 0)
            {
                OSCBlobArg a = (OSCBlobArg)Arguments[argument];

                int offset = element * OSCInt16Size;
                if (offset <= a.value.Length - OSCInt16Size)
                {
                    i = (Int16)(BitConverter.ToInt16(new byte[] { a.value[offset], a.value[offset + 1] }, 0));
                }
            }
            return(i);
        }
Example #2
0
        public virtual int BlobElementToInt(int argument, int element)
        {
            int i = 0;

            if (Arguments[argument] is OSCBlobArg && element >= 0)
            {
                OSCBlobArg a = (OSCBlobArg)Arguments[argument];

                int offset = element * OSCIntSize;
                if (offset <= a.value.Length - OSCIntSize)
                {
                    i = (int)(BitConverter.ToSingle(new byte[] { a.value[offset], a.value[offset + 1], a.value[offset + 2], a.value[offset + 3] }, 0) * 100);
                }
            }
            return(i);
        }
Example #3
0
        public virtual float BlobElementToFloat(int argument, int element)
        {
            float f = 0;

            if (Arguments[argument] is OSCBlobArg && element >= 0)
            {
                OSCBlobArg a = (OSCBlobArg)Arguments[argument];

                int offset = element * OSCFloatSize;
                if (offset <= a.value.Length - OSCFloatSize)
                {
                    f = BitConverter.ToSingle(new byte[] { a.value[offset], a.value[offset + 1], a.value[offset + 2], a.value[offset + 3] }, 0);
                }
            }
            return(f);
        }
Example #4
0
        private IOSCArgument AddBlobArgument(ref int offset, byte[] bytes)
        {
            byte[] int_bytes = { bytes[offset + 3], bytes[offset + 2], bytes[offset + 1], bytes[offset] };
            long   size      = BitConverter.ToInt32(int_bytes, 0) - OSCPacket.OSCFloatSize;

            offset += OSCPacket.OSCIntSize * 2; // why 8 and not 4?

            OSCBlobArg blob = new OSCBlobArg();

            blob.value = new byte[size];
            for (int i = 0; i < size; i++)
            {
                blob.value[i] = bytes[offset++];
            }

            offset += (int)(OSCPacket.OSCByteAlign - (size % OSCPacket.OSCByteAlign));
            return(blob);
        }
Example #5
0
        public virtual float[] ArgToFloatArray(int argument)
        {
            float[] floats = null;

            if (Arguments[argument] is OSCBlobArg)
            {
                OSCBlobArg a = (OSCBlobArg)Arguments[argument];

                int numfloats = a.value.Length / OSCFloatSize;
                floats = new float[numfloats];
                int floatIndex = 0;

                for (int i = 0; i < a.value.Length; i += OSCFloatSize)
                {
                    floats[floatIndex++] = BitConverter.ToSingle(new byte[] { a.value[i], a.value[i + 1], a.value[i + 2], a.value[i + 3] }, 0);
                }
            }
            return(floats);
        }
Example #6
0
        public virtual int[] ArgToIntArray(int argument)
        {
            int[] ints = null;

            if (Arguments[argument] is OSCBlobArg)
            {
                OSCBlobArg a = (OSCBlobArg)Arguments[argument];

                int numInts = a.value.Length / OSCFloatSize;
                ints = new int[numInts];
                int intIndex = 0;

                for (int i = 0; i < a.value.Length; i += OSCFloatSize)
                {
                    ints[intIndex++] = (int)(BitConverter.ToSingle(new byte[] { a.value[i], a.value[i + 1], a.value[i + 2], a.value[i + 3] }, 0) * 100);
                }
            }
            return(ints);
        }