// To prevent "ExecutionEngineException: Attempting to JIT compile method" error on iOS we use a non-generic method version. public override int Append(object value) { if (!(value is OscPacket)) { throw new ArgumentException(); } OscBundle nestedBundle = value as OscBundle; if (nestedBundle != null) { if (nestedBundle.timeStamp < timeStamp) { throw new Exception("Nested bundle's timestamp must be >= than parent bundle's timestamp."); } } data.Add(value); return(data.Count - 1); }
public static new OscBundle FromByteArray(byte[] data, ref int start, int end) { string address = ValueFromByteArray <string>(data, ref start); if (address != BUNDLE_PREFIX) { throw new ArgumentException(); } OscTimeTag timeStamp = ValueFromByteArray <OscTimeTag>(data, ref start); OscBundle bundle = new OscBundle(timeStamp); while (start < end) { int length = ValueFromByteArray <int>(data, ref start); int packetEnd = start + length; bundle.Append(OscPacket.FromByteArray(data, ref start, packetEnd)); } return(bundle); }
public OscBundleReceivedEventArgs(OscBundle bundle) { Bundle = bundle; }
public static new OscBundle FromByteArray(byte[] data, ref int start, int end) { string address = ValueFromByteArray<string>(data, ref start); if (address != BUNDLE_PREFIX) throw new ArgumentException(); OscTimeTag timeStamp = ValueFromByteArray<OscTimeTag>(data, ref start); OscBundle bundle = new OscBundle(timeStamp); while (start < end) { int length = ValueFromByteArray<int>(data, ref start); int packetEnd = start + length; bundle.Append(OscPacket.FromByteArray(data, ref start, packetEnd)); } return bundle; }
private void onBundleReceived(OscBundle bundle) { if (BundleReceived != null) BundleReceived(this, new OscBundleReceivedEventArgs(bundle)); var count = bundle.Data.Count; for (var i = 0; i < count; i++) { object value = bundle.Data[i]; if (value is OscBundle) { // Raise events for nested bundles onBundleReceived((OscBundle)value); } else if (value is OscMessage) { // Raised events for contained messages OscMessage message = (OscMessage)value; onMessageReceived(message); } } }