#pragma once #include "sceNpCommon.h" enum SceNpBasicFriendListEventType : s32 { SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_SYNC = 1, SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_SYNC_DONE = 2, SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_ADDED = 3, SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_DELETED = 4 }; using SceNpBasicFriendListEventHandler = void(SceNpBasicFriendListEventType eventType, vm::cptr friendId, vm::ptr userdata); enum SceNpBasicFriendOnlineStatusEventType : s32 { SCE_NP_BASIC_FRIEND_ONLINE_STATUS_EVENT_TYPE_SYNC = 1, SCE_NP_BASIC_FRIEND_ONLINE_STATUS_EVENT_TYPE_SYNC_DONE = 2, SCE_NP_BASIC_FRIEND_ONLINE_STATUS_EVENT_TYPE_UPDATED = 3 }; enum SceNpBasicFriendOnlineStatus : s32 { SCE_NP_BASIC_FRIEND_ONLINE_STATUS_UNKNOWN = 0, SCE_NP_BASIC_FRIEND_ONLINE_STATUS_OFFLINE = 1, SCE_NP_BASIC_FRIEND_ONLINE_STATUS_STANDBY = 2, SCE_NP_BASIC_FRIEND_ONLINE_STATUS_ONLINE_OUT_OF_CONTEXT = 3, SCE_NP_BASIC_FRIEND_ONLINE_STATUS_ONLINE_IN_CONTEXT = 4 }; using SceNpBasicFriendOnlineStatusEventHandler = void(SceNpBasicFriendOnlineStatusEventType eventType, vm::cptr friendId, SceNpBasicFriendOnlineStatus status, vm::ptr userdata); enum SceNpBasicBlockListEventType : s32 { SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_SYNC = 1, SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_SYNC_DONE = 2, SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_ADDED = 3, SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_DELETED = 4 }; using SceNpBasicBlockListEventHandler = void(SceNpBasicBlockListEventType eventType, vm::cptr playerId, vm::ptr userdata); enum SceNpBasicFriendGamePresenceEventType : s32 { SCE_NP_BASIC_FRIEND_GAME_PRESENCE_EVENT_TYPE_SYNC = 1, SCE_NP_BASIC_FRIEND_GAME_PRESENCE_EVENT_TYPE_SYNC_DONE = 2, SCE_NP_BASIC_FRIEND_GAME_PRESENCE_EVENT_TYPE_UPDATED = 3 }; enum SceNpBasicInGamePresenceType : s32 { SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_UNKNOWN = -1, SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_NONE = 0, SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_DEFAULT = 1, SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_JOINABLE = 2, SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_MAX = 3 }; struct SceNpBasicInGamePresence { le_t sdkVersion; le_t type; // SceNpBasicInGamePresenceType char status[192]; u8 data[128]; le_t dataSize; }; struct SceNpBasicGamePresence { le_t size; char title[128]; SceNpBasicInGamePresence inGamePresence; }; using SceNpBasicFriendGamePresenceEventHandler = void(SceNpBasicFriendGamePresenceEventType eventtype, vm::cptr friendId, vm::cptr presence, vm::ptr userdata); struct SceNpBasicInGameDataMessage { u8 data[128]; le_t dataSize; }; using SceNpBasicInGameDataMessageEventHandler = void(vm::cptr from, vm::cptr message, vm::ptr userdata); struct SceNpBasicEventHandlers { le_t sdkVersion; vm::lptr friendListEventHandler; vm::lptr friendOnlineStatusEventHandler; vm::lptr blockListEventHandler; vm::lptr friendGamePresenceEventHandler; vm::lptr inGameDataMessageEventHandler; }; struct SceNpBasicPlaySessionLogDescription { char text[512]; }; struct SceNpBasicPlaySessionLog { le_t date; SceNpId withWhom; SceNpCommunicationId commId; char title[128]; SceNpBasicPlaySessionLogDescription description; }; enum SceNpBasicPlaySessionLogType : s32 { SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_INVALID = -1, SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_ALL = 0, SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_BY_NP_COMM_ID = 1, SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_MAX = 2 };