private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnActivityJoin = OnActivityJoinImpl; events.OnActivitySpectate = OnActivitySpectateImpl; events.OnActivityJoinRequest = OnActivityJoinRequestImpl; events.OnActivityInvite = OnActivityInviteImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
/// <summary> /// Initializes the Discord game SDK /// </summary> /// <exception cref="InitializedException"></exception> /// <exception cref="ResultException"></exception> public void Init() { if (IsInitialized) { throw new InitializedException("The Discord game SDK is already initialized!"); } FFIEvents events = new FFIEvents(); eventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(events)); FFICreateParams createParams; createParams.ClientId = clientId; createParams.Flags = (ulong)createFlags; createParams.Events = eventsPtr; createParams.EventData = GCHandle.ToIntPtr(selfHandle); createParams.ApplicationEvents = applicationEventsPtr; createParams.ApplicationVersion = 1; createParams.UserEvents = userEventsPtr; createParams.UserVersion = 1; createParams.ImageEvents = imageEventsPtr; createParams.ImageVersion = 1; createParams.ActivityEvents = activityEventsPtr; createParams.ActivityVersion = 1; createParams.RelationshipEvents = relationshipEventsPtr; createParams.RelationshipVersion = 1; createParams.LobbyEvents = lobbyEventsPtr; createParams.LobbyVersion = 1; createParams.NetworkEvents = networkEventsPtr; createParams.NetworkVersion = 1; createParams.OverlayEvents = overlayEventsPtr; createParams.OverlayVersion = 1; createParams.StorageEvents = storageEventsPtr; createParams.StorageVersion = 1; createParams.StoreEvents = storeEventsPtr; createParams.StoreVersion = 1; createParams.VoiceEvents = voiceEventsPtr; createParams.VoiceVersion = 1; createParams.AchievementEvents = achievementEventsPtr; createParams.AchievementVersion = 1; InitEvents(eventsPtr, ref events); IsInitialized = true; Result result = DiscordCreate(2, ref createParams, out methodsPtr); if (result != Result.Ok) { Dispose(); throw new ResultException(result); } }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnLobbyUpdate = OnLobbyUpdateImpl; events.OnLobbyDelete = OnLobbyDeleteImpl; events.OnMemberConnect = OnMemberConnectImpl; events.OnMemberUpdate = OnMemberUpdateImpl; events.OnMemberDisconnect = OnMemberDisconnectImpl; events.OnLobbyMessage = OnLobbyMessageImpl; events.OnSpeaking = OnSpeakingImpl; events.OnNetworkMessage = OnNetworkMessageImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
internal StorageManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events) { if (eventsPtr == IntPtr.Zero) { throw new ResultException(Result.InternalError); } InitEvents(eventsPtr, ref events); methodsPtr = ptr; if (methodsPtr == IntPtr.Zero) { throw new ResultException(Result.InternalError); } }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { Marshal.StructureToPtr(events, eventsPtr, false); }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnSettingsUpdate = OnSettingsUpdateImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnMessage = OnMessageImpl; events.OnRouteUpdate = OnRouteUpdateImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnUserAchievementUpdate = OnUserAchievementUpdateImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnEntitlementCreate = OnEntitlementCreateImpl; events.OnEntitlementDelete = OnEntitlementDeleteImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnRefresh = OnRefreshImpl; events.OnRelationshipUpdate = OnRelationshipUpdateImpl; Marshal.StructureToPtr(events, eventsPtr, false); }
private void InitEvents(IntPtr eventsPtr, ref FFIEvents events) { events.OnToggle = OnToggleImpl; Marshal.StructureToPtr(events, eventsPtr, false); }