in RealityMaterialExplorer/Assets/Oculus/Platform/Scripts/Message.cs [409:803]
internal static Message ParseMessageHandle(IntPtr messageHandle)
{
if (messageHandle.ToInt64() == 0)
{
return null;
}
Message message = null;
Message.MessageType message_type = (Message.MessageType)CAPI.ovr_Message_GetType(messageHandle);
switch(message_type) {
// OVR_MESSAGE_TYPE_START
case Message.MessageType.Achievements_GetAllDefinitions:
case Message.MessageType.Achievements_GetDefinitionsByName:
case Message.MessageType.Achievements_GetNextAchievementDefinitionArrayPage:
message = new MessageWithAchievementDefinitions(messageHandle);
break;
case Message.MessageType.Achievements_GetAllProgress:
case Message.MessageType.Achievements_GetNextAchievementProgressArrayPage:
case Message.MessageType.Achievements_GetProgressByName:
message = new MessageWithAchievementProgressList(messageHandle);
break;
case Message.MessageType.Achievements_AddCount:
case Message.MessageType.Achievements_AddFields:
case Message.MessageType.Achievements_Unlock:
message = new MessageWithAchievementUpdate(messageHandle);
break;
case Message.MessageType.Application_GetVersion:
message = new MessageWithApplicationVersion(messageHandle);
break;
case Message.MessageType.AssetFile_Status:
case Message.MessageType.AssetFile_StatusById:
case Message.MessageType.AssetFile_StatusByName:
case Message.MessageType.LanguagePack_GetCurrent:
message = new MessageWithAssetDetails(messageHandle);
break;
case Message.MessageType.AssetFile_GetList:
message = new MessageWithAssetDetailsList(messageHandle);
break;
case Message.MessageType.AssetFile_Delete:
case Message.MessageType.AssetFile_DeleteById:
case Message.MessageType.AssetFile_DeleteByName:
message = new MessageWithAssetFileDeleteResult(messageHandle);
break;
case Message.MessageType.AssetFile_DownloadCancel:
case Message.MessageType.AssetFile_DownloadCancelById:
case Message.MessageType.AssetFile_DownloadCancelByName:
message = new MessageWithAssetFileDownloadCancelResult(messageHandle);
break;
case Message.MessageType.AssetFile_Download:
case Message.MessageType.AssetFile_DownloadById:
case Message.MessageType.AssetFile_DownloadByName:
case Message.MessageType.LanguagePack_SetCurrent:
message = new MessageWithAssetFileDownloadResult(messageHandle);
break;
case Message.MessageType.Notification_AssetFile_DownloadUpdate:
message = new MessageWithAssetFileDownloadUpdate(messageHandle);
break;
case Message.MessageType.Notification_Cal_FinalizeApplication:
message = new MessageWithCalApplicationFinalized(messageHandle);
break;
case Message.MessageType.Notification_Cal_ProposeApplication:
message = new MessageWithCalApplicationProposed(messageHandle);
break;
case Message.MessageType.Challenges_Create:
case Message.MessageType.Challenges_DeclineInvite:
case Message.MessageType.Challenges_Get:
case Message.MessageType.Challenges_Join:
case Message.MessageType.Challenges_Leave:
case Message.MessageType.Challenges_UpdateInfo:
message = new MessageWithChallenge(messageHandle);
break;
case Message.MessageType.Challenges_GetList:
case Message.MessageType.Challenges_GetNextChallenges:
case Message.MessageType.Challenges_GetPreviousChallenges:
message = new MessageWithChallengeList(messageHandle);
break;
case Message.MessageType.Challenges_GetEntries:
case Message.MessageType.Challenges_GetEntriesAfterRank:
case Message.MessageType.Challenges_GetEntriesByIds:
case Message.MessageType.Challenges_GetNextEntries:
case Message.MessageType.Challenges_GetPreviousEntries:
message = new MessageWithChallengeEntryList(messageHandle);
break;
case Message.MessageType.CloudStorage_LoadConflictMetadata:
message = new MessageWithCloudStorageConflictMetadata(messageHandle);
break;
case Message.MessageType.CloudStorage_Load:
case Message.MessageType.CloudStorage_LoadHandle:
message = new MessageWithCloudStorageData(messageHandle);
break;
case Message.MessageType.CloudStorage_LoadMetadata:
message = new MessageWithCloudStorageMetadataUnderLocal(messageHandle);
break;
case Message.MessageType.CloudStorage_GetNextCloudStorageMetadataArrayPage:
case Message.MessageType.CloudStorage_LoadBucketMetadata:
message = new MessageWithCloudStorageMetadataList(messageHandle);
break;
case Message.MessageType.CloudStorage_Delete:
case Message.MessageType.CloudStorage_ResolveKeepLocal:
case Message.MessageType.CloudStorage_ResolveKeepRemote:
case Message.MessageType.CloudStorage_Save:
message = new MessageWithCloudStorageUpdateResponse(messageHandle);
break;
case Message.MessageType.UserDataStore_PrivateGetEntries:
case Message.MessageType.UserDataStore_PrivateGetEntryByKey:
message = new MessageWithDataStoreUnderPrivateUserDataStore(messageHandle);
break;
case Message.MessageType.UserDataStore_PublicGetEntries:
case Message.MessageType.UserDataStore_PublicGetEntryByKey:
message = new MessageWithDataStoreUnderPublicUserDataStore(messageHandle);
break;
case Message.MessageType.RichPresence_GetDestinations:
case Message.MessageType.RichPresence_GetNextDestinationArrayPage:
message = new MessageWithDestinationList(messageHandle);
break;
case Message.MessageType.ApplicationLifecycle_RegisterSessionKey:
case Message.MessageType.Challenges_Delete:
case Message.MessageType.Entitlement_GetIsViewerEntitled:
case Message.MessageType.IAP_ConsumePurchase:
case Message.MessageType.Livestreaming_LaunchLivestreamingFlow:
case Message.MessageType.Matchmaking_Cancel:
case Message.MessageType.Matchmaking_Cancel2:
case Message.MessageType.Matchmaking_ReportResultInsecure:
case Message.MessageType.Matchmaking_StartMatch:
case Message.MessageType.Notification_MarkAsRead:
case Message.MessageType.RichPresence_Clear:
case Message.MessageType.RichPresence_Set:
case Message.MessageType.Room_LaunchInvitableUserFlow:
case Message.MessageType.Room_UpdateOwner:
case Message.MessageType.User_LaunchProfile:
message = new Message(messageHandle);
break;
case Message.MessageType.Notification_GroupPresence_LeaveIntentReceived:
message = new MessageWithGroupPresenceLeaveIntent(messageHandle);
break;
case Message.MessageType.User_LaunchFriendRequestFlow:
message = new MessageWithLaunchFriendRequestFlowResult(messageHandle);
break;
case Message.MessageType.Notification_Session_InvitationsSent:
message = new MessageWithLaunchInvitePanelFlowResult(messageHandle);
break;
case Message.MessageType.Leaderboard_Get:
case Message.MessageType.Leaderboard_GetNextLeaderboardArrayPage:
message = new MessageWithLeaderboardList(messageHandle);
break;
case Message.MessageType.Leaderboard_GetEntries:
case Message.MessageType.Leaderboard_GetEntriesAfterRank:
case Message.MessageType.Leaderboard_GetEntriesByIds:
case Message.MessageType.Leaderboard_GetNextEntries:
case Message.MessageType.Leaderboard_GetPreviousEntries:
message = new MessageWithLeaderboardEntryList(messageHandle);
break;
case Message.MessageType.Leaderboard_WriteEntry:
case Message.MessageType.Leaderboard_WriteEntryWithSupplementaryMetric:
message = new MessageWithLeaderboardDidUpdate(messageHandle);
break;
case Message.MessageType.Livestreaming_GetStatus:
case Message.MessageType.Livestreaming_PauseStream:
case Message.MessageType.Livestreaming_ResumeStream:
case Message.MessageType.Notification_Livestreaming_StatusChange:
message = new MessageWithLivestreamingStatus(messageHandle);
break;
case Message.MessageType.Matchmaking_GetAdminSnapshot:
message = new MessageWithMatchmakingAdminSnapshot(messageHandle);
break;
case Message.MessageType.Matchmaking_Browse:
case Message.MessageType.Matchmaking_Browse2:
message = new MessageWithMatchmakingBrowseResult(messageHandle);
break;
case Message.MessageType.Matchmaking_Enqueue:
case Message.MessageType.Matchmaking_Enqueue2:
case Message.MessageType.Matchmaking_EnqueueRoom:
case Message.MessageType.Matchmaking_EnqueueRoom2:
message = new MessageWithMatchmakingEnqueueResult(messageHandle);
break;
case Message.MessageType.Matchmaking_CreateAndEnqueueRoom:
case Message.MessageType.Matchmaking_CreateAndEnqueueRoom2:
message = new MessageWithMatchmakingEnqueueResultAndRoom(messageHandle);
break;
case Message.MessageType.Matchmaking_GetStats:
message = new MessageWithMatchmakingStatsUnderMatchmakingStats(messageHandle);
break;
case Message.MessageType.Notification_NetSync_ConnectionStatusChanged:
message = new MessageWithNetSyncConnection(messageHandle);
break;
case Message.MessageType.Notification_NetSync_SessionsChanged:
message = new MessageWithNetSyncSessionsChangedNotification(messageHandle);
break;
case Message.MessageType.User_GetOrgScopedID:
message = new MessageWithOrgScopedID(messageHandle);
break;
case Message.MessageType.Party_GetCurrent:
message = new MessageWithPartyUnderCurrentParty(messageHandle);
break;
case Message.MessageType.Notification_Party_PartyUpdate:
message = new MessageWithPartyUpdateNotification(messageHandle);
break;
case Message.MessageType.ApplicationLifecycle_GetRegisteredPIDs:
message = new MessageWithPidList(messageHandle);
break;
case Message.MessageType.IAP_GetNextProductArrayPage:
case Message.MessageType.IAP_GetProductsBySKU:
message = new MessageWithProductList(messageHandle);
break;
case Message.MessageType.IAP_LaunchCheckoutFlow:
message = new MessageWithPurchase(messageHandle);
break;
case Message.MessageType.IAP_GetNextPurchaseArrayPage:
case Message.MessageType.IAP_GetViewerPurchases:
case Message.MessageType.IAP_GetViewerPurchasesDurableCache:
message = new MessageWithPurchaseList(messageHandle);
break;
case Message.MessageType.Room_Get:
message = new MessageWithRoom(messageHandle);
break;
case Message.MessageType.Room_GetCurrent:
case Message.MessageType.Room_GetCurrentForUser:
message = new MessageWithRoomUnderCurrentRoom(messageHandle);
break;
case Message.MessageType.Matchmaking_CreateRoom:
case Message.MessageType.Matchmaking_CreateRoom2:
case Message.MessageType.Matchmaking_JoinRoom:
case Message.MessageType.Notification_Room_RoomUpdate:
case Message.MessageType.Room_CreateAndJoinPrivate:
case Message.MessageType.Room_CreateAndJoinPrivate2:
case Message.MessageType.Room_InviteUser:
case Message.MessageType.Room_Join:
case Message.MessageType.Room_Join2:
case Message.MessageType.Room_KickUser:
case Message.MessageType.Room_Leave:
case Message.MessageType.Room_SetDescription:
case Message.MessageType.Room_UpdateDataStore:
case Message.MessageType.Room_UpdateMembershipLockStatus:
case Message.MessageType.Room_UpdatePrivateRoomJoinPolicy:
message = new MessageWithRoomUnderViewerRoom(messageHandle);
break;
case Message.MessageType.Room_GetModeratedRooms:
case Message.MessageType.Room_GetNextRoomArrayPage:
message = new MessageWithRoomList(messageHandle);
break;
case Message.MessageType.Notification_Room_InviteReceived:
message = new MessageWithRoomInviteNotification(messageHandle);
break;
case Message.MessageType.Notification_GetNextRoomInviteNotificationArrayPage:
case Message.MessageType.Notification_GetRoomInvites:
message = new MessageWithRoomInviteNotificationList(messageHandle);
break;
case Message.MessageType.User_GetSdkAccounts:
message = new MessageWithSdkAccountList(messageHandle);
break;
case Message.MessageType.Media_ShareToFacebook:
message = new MessageWithShareMediaResult(messageHandle);
break;
case Message.MessageType.ApplicationLifecycle_GetSessionKey:
case Message.MessageType.Application_LaunchOtherApp:
case Message.MessageType.CloudStorage2_GetUserDirectoryPath:
case Message.MessageType.Notification_ApplicationLifecycle_LaunchIntentChanged:
case Message.MessageType.Notification_Room_InviteAccepted:
case Message.MessageType.Notification_Vrcamera_GetSurfaceUpdate:
case Message.MessageType.User_GetAccessToken:
message = new MessageWithString(messageHandle);
break;
case Message.MessageType.Voip_SetSystemVoipSuppressed:
message = new MessageWithSystemVoipState(messageHandle);
break;
case Message.MessageType.User_Get:
case Message.MessageType.User_GetLoggedInUser:
message = new MessageWithUser(messageHandle);
break;
case Message.MessageType.User_GetLoggedInUserFriendsAndRooms:
case Message.MessageType.User_GetLoggedInUserRecentlyMetUsersAndRooms:
case Message.MessageType.User_GetNextUserAndRoomArrayPage:
message = new MessageWithUserAndRoomList(messageHandle);
break;
case Message.MessageType.Room_GetInvitableUsers:
case Message.MessageType.Room_GetInvitableUsers2:
case Message.MessageType.User_GetLoggedInUserFriends:
case Message.MessageType.User_GetNextUserArrayPage:
message = new MessageWithUserList(messageHandle);
break;
case Message.MessageType.UserDataStore_PrivateDeleteEntryByKey:
case Message.MessageType.UserDataStore_PrivateWriteEntry:
case Message.MessageType.UserDataStore_PublicDeleteEntryByKey:
case Message.MessageType.UserDataStore_PublicWriteEntry:
message = new MessageWithUserDataStoreUpdateResponse(messageHandle);
break;
case Message.MessageType.User_GetUserProof:
message = new MessageWithUserProof(messageHandle);
break;
case Message.MessageType.Notification_Networking_ConnectionStateChange:
case Message.MessageType.Notification_Networking_PeerConnectRequest:
message = new MessageWithNetworkingPeer(messageHandle);
break;
case Message.MessageType.Notification_Networking_PingResult:
message = new MessageWithPingResult(messageHandle);
break;
case Message.MessageType.Notification_Matchmaking_MatchFound:
message = new MessageWithMatchmakingNotification(messageHandle);
break;
case Message.MessageType.Notification_Voip_ConnectRequest:
case Message.MessageType.Notification_Voip_StateChange:
message = new MessageWithNetworkingPeer(messageHandle);
break;
case Message.MessageType.Notification_Voip_SystemVoipState:
message = new MessageWithSystemVoipState(messageHandle);
break;
case Message.MessageType.Notification_HTTP_Transfer:
message = new MessageWithHttpTransferUpdate(messageHandle);
break;
case Message.MessageType.Platform_InitializeWithAccessToken:
case Message.MessageType.Platform_InitializeStandaloneOculus:
case Message.MessageType.Platform_InitializeAndroidAsynchronous:
case Message.MessageType.Platform_InitializeWindowsAsynchronous:
message = new MessageWithPlatformInitialize(messageHandle);
break;
default:
message = PlatformInternal.ParseMessageHandle(messageHandle, message_type);
if (message == null)
{
Debug.LogError(string.Format("Unrecognized message type {0}\n", message_type));
}
break;
// OVR_MESSAGE_TYPE_END
}
return message;
}