using System; using System.Runtime.InteropServices; namespace Sony.NP { // Token: 0x020000B8 RID: 184 public class Presence { // Token: 0x060003A4 RID: 932 [DllImport("UnityNpToolkit2")] private static extern int PrxDeletePresence(Presence.DeletePresenceRequest request, out APIResult result); // Token: 0x060003A5 RID: 933 [DllImport("UnityNpToolkit2")] private static extern int PrxSetPresence(Presence.SetPresenceRequest request, out APIResult result); // Token: 0x060003A6 RID: 934 [DllImport("UnityNpToolkit2")] private static extern int PrxGetPresence(Presence.GetPresenceRequest request, out APIResult result); // Token: 0x060003A7 RID: 935 RVA: 0x0000B290 File Offset: 0x0000A290 public static int DeletePresence(Presence.DeletePresenceRequest request, Core.EmptyResponse response) { if (response.locked) { throw new NpToolkitException("Response object is already locked"); } APIResult apiresult; int num = Presence.PrxDeletePresence(request, out apiresult); if (apiresult.RaiseException) { throw new NpToolkitException(apiresult); } RequestBase.FinaliseRequest(request, response, num); return num; } // Token: 0x060003A8 RID: 936 RVA: 0x0000B2E4 File Offset: 0x0000A2E4 public static int SetPresence(Presence.SetPresenceRequest request, Core.EmptyResponse response) { if (response.locked) { throw new NpToolkitException("Response object is already locked"); } APIResult apiresult; int num = Presence.PrxSetPresence(request, out apiresult); if (apiresult.RaiseException) { throw new NpToolkitException(apiresult); } RequestBase.FinaliseRequest(request, response, num); return num; } // Token: 0x060003A9 RID: 937 RVA: 0x0000B338 File Offset: 0x0000A338 public static int GetPresence(Presence.GetPresenceRequest request, Presence.PresenceResponse response) { if (response.locked) { throw new NpToolkitException("Response object is already locked"); } APIResult apiresult; int num = Presence.PrxGetPresence(request, out apiresult); if (apiresult.RaiseException) { throw new NpToolkitException(apiresult); } RequestBase.FinaliseRequest(request, response, num); return num; } // Token: 0x020000B9 RID: 185 [StructLayout(LayoutKind.Sequential)] public class DeletePresenceRequest : RequestBase { // Token: 0x170001A4 RID: 420 // (get) Token: 0x060003AB RID: 939 RVA: 0x0000B394 File Offset: 0x0000A394 public bool DeleteGameData { get { return this.deleteGameData; } } // Token: 0x170001A5 RID: 421 // (get) Token: 0x060003AC RID: 940 RVA: 0x0000B3AC File Offset: 0x0000A3AC public bool DeleteGameStatus { get { return this.deleteGameStatus; } } // Token: 0x060003AD RID: 941 RVA: 0x0000B3C4 File Offset: 0x0000A3C4 public DeletePresenceRequest() : base(ServiceTypes.Presence, FunctionTypes.PresenceDeletePresence) { this.deleteGameData = true; this.deleteGameStatus = true; } // Token: 0x040002CB RID: 715 [MarshalAs(UnmanagedType.I1)] internal bool deleteGameData; // Token: 0x040002CC RID: 716 [MarshalAs(UnmanagedType.I1)] internal bool deleteGameStatus; } // Token: 0x020000BA RID: 186 public struct LocalizedGameStatus { // Token: 0x170001A6 RID: 422 // (get) Token: 0x060003AE RID: 942 RVA: 0x0000B3E0 File Offset: 0x0000A3E0 // (set) Token: 0x060003AF RID: 943 RVA: 0x0000B405 File Offset: 0x0000A405 public Core.LanguageCode LanguageCode { get { return new Core.LanguageCode { code = this.languageCode }; } set { this.languageCode = value.code; } } // Token: 0x170001A7 RID: 423 // (get) Token: 0x060003B0 RID: 944 RVA: 0x0000B414 File Offset: 0x0000A414 // (set) Token: 0x060003B1 RID: 945 RVA: 0x0000B42C File Offset: 0x0000A42C public string GameStatus { get { return this.gameStatus; } set { if (value.Length > 96) { throw new NpToolkitException("The size of the game stutus string is more than " + 96 + " characters."); } this.gameStatus = value; } } // Token: 0x040002CD RID: 717 public const int MAX_SIZE_LOCALIZED_GAME_STATUS = 96; // Token: 0x040002CE RID: 718 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)] internal string languageCode; // Token: 0x040002CF RID: 719 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 97)] internal string gameStatus; } // Token: 0x020000BB RID: 187 [StructLayout(LayoutKind.Sequential)] public class SetPresenceRequest : RequestBase { // Token: 0x170001A8 RID: 424 // (get) Token: 0x060003B2 RID: 946 RVA: 0x0000B470 File Offset: 0x0000A470 // (set) Token: 0x060003B3 RID: 947 RVA: 0x0000B488 File Offset: 0x0000A488 public string DefaultGameStatus { get { return this.defaultGameStatus; } set { if (value.Length > 191) { throw new NpToolkitException("The size of the default game stutus string is more than " + 191 + " characters."); } this.defaultGameStatus = value; } } // Token: 0x170001A9 RID: 425 // (get) Token: 0x060003B4 RID: 948 RVA: 0x0000B4D4 File Offset: 0x0000A4D4 // (set) Token: 0x060003B5 RID: 949 RVA: 0x0000B51C File Offset: 0x0000A51C public Presence.LocalizedGameStatus[] LocalizedGameStatuses { get { Presence.LocalizedGameStatus[] array; if (this.numLocalizedGameStatuses == 0U) { array = null; } else { Presence.LocalizedGameStatus[] array2 = new Presence.LocalizedGameStatus[this.numLocalizedGameStatuses]; Array.Copy(this.localizedGameStatuses, array2, (long)((ulong)this.numLocalizedGameStatuses)); array = array2; } return array; } set { if (value != null) { if (value.Length > 50) { throw new NpToolkitException("The size of the localized game statuses array is more than " + 50); } value.CopyTo(this.localizedGameStatuses, 0); this.numLocalizedGameStatuses = (uint)value.Length; } else { this.numLocalizedGameStatuses = 0U; } } } // Token: 0x170001AA RID: 426 // (get) Token: 0x060003B6 RID: 950 RVA: 0x0000B57C File Offset: 0x0000A57C // (set) Token: 0x060003B7 RID: 951 RVA: 0x0000B5C4 File Offset: 0x0000A5C4 public byte[] BinaryGameData { get { byte[] array; if (this.binaryGameData == null) { array = null; } else { byte[] array2 = new byte[this.binaryGameDataSize]; Array.Copy(this.binaryGameData, array2, (long)((ulong)this.binaryGameDataSize)); array = array2; } return array; } set { if (value != null) { if (value.Length > 128) { throw new NpToolkitException("The size of the binary game data is more than " + 128 + " bytes."); } value.CopyTo(this.binaryGameData, 0); this.binaryGameDataSize = (uint)value.Length; } else { this.binaryGameDataSize = 0U; } } } // Token: 0x060003B8 RID: 952 RVA: 0x0000B630 File Offset: 0x0000A630 public SetPresenceRequest() : base(ServiceTypes.Presence, FunctionTypes.PresenceSetPresence) { this.defaultGameStatus = ""; this.localizedGameStatuses = new Presence.LocalizedGameStatus[50]; this.numLocalizedGameStatuses = 0U; this.binaryGameData = new byte[128]; this.binaryGameDataSize = 0U; } // Token: 0x040002D0 RID: 720 public const int MAX_LOCALIZED_STATUSES = 50; // Token: 0x040002D1 RID: 721 public const int MAX_SIZE_GAME_DATA = 128; // Token: 0x040002D2 RID: 722 public const int MAX_SIZE_DEFAULT_GAME_STATUS = 191; // Token: 0x040002D3 RID: 723 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 191)] internal string defaultGameStatus; // Token: 0x040002D4 RID: 724 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)] internal Presence.LocalizedGameStatus[] localizedGameStatuses; // Token: 0x040002D5 RID: 725 internal uint numLocalizedGameStatuses; // Token: 0x040002D6 RID: 726 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] internal byte[] binaryGameData; // Token: 0x040002D7 RID: 727 internal uint binaryGameDataSize; } // Token: 0x020000BC RID: 188 [StructLayout(LayoutKind.Sequential)] public class GetPresenceRequest : RequestBase { // Token: 0x170001AB RID: 427 // (get) Token: 0x060003B9 RID: 953 RVA: 0x0000B680 File Offset: 0x0000A680 // (set) Token: 0x060003BA RID: 954 RVA: 0x0000B698 File Offset: 0x0000A698 public Core.NpAccountId FromUser { get { return this.fromUser; } set { this.fromUser = value; } } // Token: 0x170001AC RID: 428 // (get) Token: 0x060003BB RID: 955 RVA: 0x0000B6A4 File Offset: 0x0000A6A4 // (set) Token: 0x060003BC RID: 956 RVA: 0x0000B6BC File Offset: 0x0000A6BC public bool InContext { get { return this.inContext; } set { this.inContext = value; } } // Token: 0x060003BD RID: 957 RVA: 0x0000B6C6 File Offset: 0x0000A6C6 public GetPresenceRequest() : base(ServiceTypes.Presence, FunctionTypes.PresenceGetPresence) { this.fromUser.id = 0UL; this.inContext = true; } // Token: 0x040002D8 RID: 728 internal Core.NpAccountId fromUser; // Token: 0x040002D9 RID: 729 internal bool inContext; } // Token: 0x020000BD RID: 189 public class PlatformPresence { // Token: 0x170001AD RID: 429 // (get) Token: 0x060003BE RID: 958 RVA: 0x0000B6E8 File Offset: 0x0000A6E8 public Core.OnlineStatus OnlineStatusOnPlatform { get { return this.onlineStatusOnPlatform; } } // Token: 0x170001AE RID: 430 // (get) Token: 0x060003BF RID: 959 RVA: 0x0000B700 File Offset: 0x0000A700 public Core.PlatformType Platform { get { return this.platform; } } // Token: 0x170001AF RID: 431 // (get) Token: 0x060003C0 RID: 960 RVA: 0x0000B718 File Offset: 0x0000A718 public Core.TitleId TitleId { get { return this.titleId; } } // Token: 0x170001B0 RID: 432 // (get) Token: 0x060003C1 RID: 961 RVA: 0x0000B730 File Offset: 0x0000A730 public string TitleName { get { return this.titleName; } } // Token: 0x170001B1 RID: 433 // (get) Token: 0x060003C2 RID: 962 RVA: 0x0000B748 File Offset: 0x0000A748 public string GameStatus { get { return this.gameStatus; } } // Token: 0x170001B2 RID: 434 // (get) Token: 0x060003C3 RID: 963 RVA: 0x0000B760 File Offset: 0x0000A760 public byte[] BinaryGameData { get { return this.binaryGameData; } } // Token: 0x060003C4 RID: 964 RVA: 0x0000B778 File Offset: 0x0000A778 internal void Read(MemoryBuffer buffer) { buffer.CheckMarker(MemoryBuffer.BufferIntegrityChecks.PlatformPresenceBegin); this.onlineStatusOnPlatform = (Core.OnlineStatus)buffer.ReadUInt32(); this.platform = (Core.PlatformType)buffer.ReadUInt32(); this.titleId.Read(buffer); buffer.ReadString(ref this.titleName); buffer.ReadString(ref this.gameStatus); buffer.ReadData(ref this.binaryGameData); buffer.CheckMarker(MemoryBuffer.BufferIntegrityChecks.PlatformPresenceEnd); } // Token: 0x060003C5 RID: 965 RVA: 0x0000B7E4 File Offset: 0x0000A7E4 public override string ToString() { string text = ""; return text + string.Format("\n: Platform Presence : OS ({0}) Platform ({1}) TitleId ({2}) ", new object[] { this.onlineStatusOnPlatform, this.platform, this.titleId.ToString(), this.titleName }); } // Token: 0x040002DA RID: 730 public const int MAX_SIZE_TITLE_NAME = 127; // Token: 0x040002DB RID: 731 public const int MAX_SIZE_GAME_STATUS = 191; // Token: 0x040002DC RID: 732 public const int MAX_SIZE_GAME_DATA = 128; // Token: 0x040002DD RID: 733 internal Core.OnlineStatus onlineStatusOnPlatform; // Token: 0x040002DE RID: 734 internal Core.PlatformType platform; // Token: 0x040002DF RID: 735 internal Core.TitleId titleId = new Core.TitleId(); // Token: 0x040002E0 RID: 736 internal string titleName = ""; // Token: 0x040002E1 RID: 737 internal string gameStatus = ""; // Token: 0x040002E2 RID: 738 internal byte[] binaryGameData; } // Token: 0x020000BE RID: 190 public class UserPresence { // Token: 0x170001B3 RID: 435 // (get) Token: 0x060003C7 RID: 967 RVA: 0x0000B874 File Offset: 0x0000A874 public Core.OnlineUser User { get { return this.user; } } // Token: 0x170001B4 RID: 436 // (get) Token: 0x060003C8 RID: 968 RVA: 0x0000B88C File Offset: 0x0000A88C public Core.OnlineStatus PsnOnlineStatus { get { return this.psnOnlineStatus; } } // Token: 0x170001B5 RID: 437 // (get) Token: 0x060003C9 RID: 969 RVA: 0x0000B8A4 File Offset: 0x0000A8A4 public Core.PlatformType MostRelevantPlatform { get { return this.mostRelevantPlatform; } } // Token: 0x170001B6 RID: 438 // (get) Token: 0x060003CA RID: 970 RVA: 0x0000B8BC File Offset: 0x0000A8BC public Presence.PlatformPresence[] Platforms { get { return this.platforms; } } // Token: 0x060003CB RID: 971 RVA: 0x0000B8D4 File Offset: 0x0000A8D4 internal UserPresence() { } // Token: 0x060003CC RID: 972 RVA: 0x0000B8EC File Offset: 0x0000A8EC internal void Read(MemoryBuffer buffer) { buffer.CheckMarker(MemoryBuffer.BufferIntegrityChecks.PresenceBegin); this.user.Read(buffer); this.psnOnlineStatus = (Core.OnlineStatus)buffer.ReadUInt32(); this.mostRelevantPlatform = (Core.PlatformType)buffer.ReadUInt32(); uint num = buffer.ReadUInt32(); if (num == 0U) { this.platforms = null; } else { this.platforms = new Presence.PlatformPresence[num]; int num2 = 0; while ((long)num2 < (long)((ulong)num)) { this.platforms[num2] = new Presence.PlatformPresence(); this.platforms[num2].Read(buffer); num2++; } } buffer.CheckMarker(MemoryBuffer.BufferIntegrityChecks.PresenceEnd); } // Token: 0x060003CD RID: 973 RVA: 0x0000B990 File Offset: 0x0000A990 public override string ToString() { string text = ""; int num = 0; if (this.platforms != null) { num = this.platforms.Length; } text += string.Format("0x{0:X} : {1} : PSN OS ({2}) MRP ({3}) #P ({4})'\n", new object[] { this.User.accountId, this.User.onlineId.name, this.PsnOnlineStatus, this.MostRelevantPlatform, num }); for (int i = 0; i < num; i++) { text = text + this.Platforms[i].ToString() + "\n"; } return text; } // Token: 0x040002E3 RID: 739 public const int MAX_NUM_PLATFORM_PRESENCE = 3; // Token: 0x040002E4 RID: 740 internal Core.OnlineUser user = new Core.OnlineUser(); // Token: 0x040002E5 RID: 741 internal Core.OnlineStatus psnOnlineStatus; // Token: 0x040002E6 RID: 742 internal Core.PlatformType mostRelevantPlatform; // Token: 0x040002E7 RID: 743 internal Presence.PlatformPresence[] platforms; } // Token: 0x020000BF RID: 191 public class PresenceResponse : ResponseBase { // Token: 0x170001B7 RID: 439 // (get) Token: 0x060003CE RID: 974 RVA: 0x0000BA5C File Offset: 0x0000AA5C public Presence.UserPresence UserPresence { get { return this.userPresence; } } // Token: 0x060003CF RID: 975 RVA: 0x0000BA74 File Offset: 0x0000AA74 protected internal override void ReadResult(uint id, FunctionTypes apiCalled, RequestBase request) { base.ReadResult(id, apiCalled, request); APIResult apiresult; MemoryBuffer memoryBuffer = base.BeginReadResponseBuffer(id, apiCalled, out apiresult); if (apiresult.RaiseException) { throw new NpToolkitException(apiresult); } this.userPresence.Read(memoryBuffer); base.EndReadResponseBuffer(memoryBuffer); } // Token: 0x040002E8 RID: 744 internal Presence.UserPresence userPresence = new Presence.UserPresence(); } // Token: 0x020000C0 RID: 192 public enum PresenceUpdateType { // Token: 0x040002EA RID: 746 invalid, // Token: 0x040002EB RID: 747 gameTitle, // Token: 0x040002EC RID: 748 gameStatus, // Token: 0x040002ED RID: 749 gameData } // Token: 0x020000C1 RID: 193 public class PresenceUpdateResponse : ResponseBase { // Token: 0x170001B8 RID: 440 // (get) Token: 0x060003D1 RID: 977 RVA: 0x0000BAD8 File Offset: 0x0000AAD8 public Core.OnlineUser LocalUpdatedUser { get { return this.localUpdatedUser; } } // Token: 0x170001B9 RID: 441 // (get) Token: 0x060003D2 RID: 978 RVA: 0x0000BAF0 File Offset: 0x0000AAF0 public Core.OnlineUser RemoteUser { get { return this.remoteUser; } } // Token: 0x170001BA RID: 442 // (get) Token: 0x060003D3 RID: 979 RVA: 0x0000BB08 File Offset: 0x0000AB08 public Core.UserServiceUserId UserId { get { return this.userId; } } // Token: 0x170001BB RID: 443 // (get) Token: 0x060003D4 RID: 980 RVA: 0x0000BB20 File Offset: 0x0000AB20 public Presence.PresenceUpdateType UpdateType { get { return this.updateType; } } // Token: 0x170001BC RID: 444 // (get) Token: 0x060003D5 RID: 981 RVA: 0x0000BB38 File Offset: 0x0000AB38 public string GameStatus { get { if (this.updateType != Presence.PresenceUpdateType.gameStatus) { throw new NpToolkitException("GameStatus isn't valid unless 'UpdateType' is set to " + Presence.PresenceUpdateType.gameStatus); } return this.gameStatus; } } // Token: 0x170001BD RID: 445 // (get) Token: 0x060003D6 RID: 982 RVA: 0x0000BB74 File Offset: 0x0000AB74 public byte[] BinaryGameData { get { if (this.updateType != Presence.PresenceUpdateType.gameData) { throw new NpToolkitException("BinaryGameData isn't valid unless 'UpdateType' is set to " + Presence.PresenceUpdateType.gameData); } return this.binaryGameData; } } // Token: 0x170001BE RID: 446 // (get) Token: 0x060003D7 RID: 983 RVA: 0x0000BBB0 File Offset: 0x0000ABB0 public Core.PlatformType Platform { get { return this.platform; } } // Token: 0x060003D8 RID: 984 RVA: 0x0000BBC8 File Offset: 0x0000ABC8 protected internal override void ReadResult(uint id, FunctionTypes apiCalled, RequestBase request) { base.ReadResult(id, apiCalled, request); APIResult apiresult; MemoryBuffer memoryBuffer = base.BeginReadResponseBuffer(id, apiCalled, out apiresult); if (apiresult.RaiseException) { throw new NpToolkitException(apiresult); } memoryBuffer.CheckMarker(MemoryBuffer.BufferIntegrityChecks.PresenceUpdateBegin); this.localUpdatedUser.Read(memoryBuffer); this.remoteUser.Read(memoryBuffer); this.userId = memoryBuffer.ReadInt32(); this.updateType = (Presence.PresenceUpdateType)memoryBuffer.ReadInt32(); memoryBuffer.ReadString(ref this.gameStatus); memoryBuffer.ReadData(ref this.binaryGameData); this.platform = (Core.PlatformType)memoryBuffer.ReadInt32(); memoryBuffer.CheckMarker(MemoryBuffer.BufferIntegrityChecks.PresenceUpdateEnd); base.EndReadResponseBuffer(memoryBuffer); } // Token: 0x040002EE RID: 750 public const int MAX_SIZE_GAME_STATUS = 191; // Token: 0x040002EF RID: 751 public const int MAX_SIZE_GAME_DATA = 128; // Token: 0x040002F0 RID: 752 internal Core.OnlineUser localUpdatedUser = new Core.OnlineUser(); // Token: 0x040002F1 RID: 753 internal Core.OnlineUser remoteUser = new Core.OnlineUser(); // Token: 0x040002F2 RID: 754 internal Core.UserServiceUserId userId; // Token: 0x040002F3 RID: 755 internal Presence.PresenceUpdateType updateType; // Token: 0x040002F4 RID: 756 internal string gameStatus = ""; // Token: 0x040002F5 RID: 757 internal byte[] binaryGameData; // Token: 0x040002F6 RID: 758 internal Core.PlatformType platform; } } }