Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 7
0
 private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
 {
     events.OnMessage     = OnMessageImpl;
     events.OnRouteUpdate = OnRouteUpdateImpl;
     Marshal.StructureToPtr(events, eventsPtr, false);
 }
Ejemplo n.º 8
0
 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);
 }