private static NIMSignalingNotityInfo NotityInfoFromIntPtr(IntPtr src_data) { NIMSignalingNotityInfo_C info_c = (NIMSignalingNotityInfo_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfo_C)); NIMSignalingNotityInfo info = null; object notity_objtect = null; switch (info_c.event_type_) { case NIMSignalingEventType.kNIMSignalingEventTypeClose: case NIMSignalingEventType.kNIMSignalingEventTypeLeave: case NIMSignalingEventType.kNIMSignalingEventTypeCtrl: notity_objtect = info_c; info = SignalHelper.NIMSignalingNotityInfoFromC(info_c); break; case NIMSignalingEventType.kNIMSignalingEventTypeJoin: notity_objtect = (NIMSignalingNotityInfoJoin_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoJoin_C)); info = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoJoin_C)notity_objtect); break; case NIMSignalingEventType.kNIMSignalingEventTypeInvite: notity_objtect = (NIMSignalingNotityInfoInvite_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoInvite_C)); info = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoInvite_C)notity_objtect); break; case NIMSignalingEventType.kNIMSignalingEventTypeCancelInvite: notity_objtect = (NIMSignalingNotityInfoCancelInvite_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoCancelInvite_C)); info = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoCancelInvite_C)notity_objtect); break; case NIMSignalingEventType.kNIMSignalingEventTypeReject: notity_objtect = (NIMSignalingNotityInfoReject_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoReject_C)); info = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoReject_C)notity_objtect); break; case NIMSignalingEventType.kNIMSignalingEventTypeAccept: notity_objtect = (NIMSignalingNotityInfoAccept_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoAccept_C)); info = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoAccept_C)notity_objtect); break; } return(info); }
private static void NimSignalingNotifyListCallback(IntPtr info_list, int size, IntPtr user_data) { List <NIMSignalingNotityInfo> notifys = new List <NIMSignalingNotityInfo>(); if (info_list != IntPtr.Zero) { for (int i = 0; i < size; i++) { IntPtr p_data = NimUtility.IntPtrExtensions.Increment(info_list, i * Marshal.SizeOf(typeof(IntPtr))); IntPtr src_data = NimUtility.IntPtrExtensions.CreateFromeIntPtr(p_data); NIMSignalingNotityInfo info = NotityInfoFromIntPtr(src_data); if (info != null) { notifys.Add(info); } } } NimUtility.DelegateConverter.Invoke <NimSignalingNotifyListHandler>(user_data, notifys); }
private static void NimSignalingNotifyCallback(IntPtr notify_info, IntPtr user_data) { NIMSignalingNotityInfo info = NotityInfoFromIntPtr(notify_info); NimUtility.DelegateConverter.Invoke <NimSignalingNotifyHandler>(user_data, info); }