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); }
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); }
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); }
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); }
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); }
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); }