diff --git a/.gitignore b/.gitignore index cdcac041..7e153e62 100644 --- a/.gitignore +++ b/.gitignore @@ -129,6 +129,8 @@ Binaries/ Debug/ Release/ ARM/ +Built/ +Bins/ # Allow files in our /Build folder !/Build @@ -157,4 +159,10 @@ Tests/APIExplorer/XDK/Kits/DirectXTK/Src/Shaders/Compiled/* Microsoft.Xbox.Services.*.sln.log Microsoft.Xbox.Services.*.sln.out -**/apirunner-log.txt \ No newline at end of file +**/apirunner-log.txt + +# Android Studio generated files +**/.idea +**/*.iml +**/local.properties +**/.cxx \ No newline at end of file diff --git a/Build/GetXsapiAndroidBinaryDir.cmake b/Build/GetXsapiAndroidBinaryDir.cmake new file mode 100644 index 00000000..075e11ed --- /dev/null +++ b/Build/GetXsapiAndroidBinaryDir.cmake @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.6) + +function(GET_XSAPI_ANDROID_BINARY_DIR PATH_TO_ROOT OUT_BINARY_DIR) + string(TOLOWER "${CMAKE_BUILD_TYPE}" PATH_FLAVOR) + set(${OUT_BINARY_DIR} "${PATH_TO_ROOT}/Built/Android/${ANDROID_ABI}/${PATH_FLAVOR}" PARENT_SCOPE) +endfunction() diff --git a/Build/Microsoft.Xbox.Services.Win32.C.Dll.def b/Build/Microsoft.Xbox.Services.Win32.C.Dll.def new file mode 100644 index 00000000..94a2df2a --- /dev/null +++ b/Build/Microsoft.Xbox.Services.Win32.C.Dll.def @@ -0,0 +1,584 @@ +LIBRARY xsapi +EXPORTS + HCAddCallRoutedHandler + HCAddWebSocketRoutedHandler + HCCleanup + HCCleanupAsync + HCGetHttpCallPerformFunction + HCGetLibVersion + HCGetWebSocketConnectResult + HCGetWebSocketFunctions + HCGetWebSocketSendMessageResult + HCHttpCallCloseHandle + HCHttpCallCreate + HCHttpCallDuplicateHandle + HCHttpCallGetContext + HCHttpCallGetId + HCHttpCallGetRequestUrl + HCHttpCallPerformAsync + HCHttpCallRequestGetHeader + HCHttpCallRequestGetHeaderAtIndex + HCHttpCallRequestGetNumHeaders + HCHttpCallRequestGetRequestBodyBytes + HCHttpCallRequestGetRequestBodyString + HCHttpCallRequestGetRetryAllowed + HCHttpCallRequestGetRetryCacheId + HCHttpCallRequestGetRetryDelay + HCHttpCallRequestGetTimeout + HCHttpCallRequestGetTimeoutWindow + HCHttpCallRequestGetUrl + HCHttpCallRequestSetHeader + HCHttpCallRequestSetRequestBodyBytes + HCHttpCallRequestSetRequestBodyString + HCHttpCallRequestSetRetryAllowed + HCHttpCallRequestSetRetryCacheId + HCHttpCallRequestSetRetryDelay + HCHttpCallRequestSetSSLValidation + HCHttpCallRequestSetTimeout + HCHttpCallRequestSetTimeoutWindow + HCHttpCallRequestSetUrl + HCHttpCallResponseAppendResponseBodyBytes + HCHttpCallResponseGetHeader + HCHttpCallResponseGetHeaderAtIndex + HCHttpCallResponseGetNetworkErrorCode + HCHttpCallResponseGetNumHeaders + HCHttpCallResponseGetPlatformNetworkErrorMessage + HCHttpCallResponseGetResponseBodyBytes + HCHttpCallResponseGetResponseBodyBytesSize + HCHttpCallResponseGetResponseString + HCHttpCallResponseGetStatusCode + HCHttpCallResponseSetHeader + HCHttpCallResponseSetHeaderWithLength + HCHttpCallResponseSetNetworkErrorCode + HCHttpCallResponseSetPlatformNetworkErrorMessage + HCHttpCallResponseSetResponseBodyBytes + HCHttpCallResponseSetStatusCode + HCHttpCallSetContext + HCHttpCallSetTracing + HCInitialize + HCMemGetFunctions + HCMemSetFunctions + HCMockAddMock + HCMockCallCreate + HCMockClearMocks + HCMockRemoveMock + HCMockResponseSetHeader + HCMockResponseSetNetworkErrorCode + HCMockResponseSetResponseBodyBytes + HCMockResponseSetStatusCode + HCMockSetMockMatchedCallback + HCRemoveCallRoutedHandler + HCRemoveWebSocketRoutedHandler + HCSetGlobalProxy + HCSetHttpCallPerformFunction + HCSettingsGetTraceLevel + HCSettingsSetTraceLevel + HCSetWebSocketFunctions + HCTraceImplMessage + HCTraceImplScopeId + HCTraceSetClientCallback + HCTraceSetPlatformCallbacks + HCTraceSetTraceToDebugger + HCWebSocketCloseHandle + HCWebSocketConnectAsync + HCWebSocketCreate + HCWebSocketDisconnect + HCWebSocketDuplicateHandle + HCWebSocketGetEventFunctions + HCWebSocketGetHeader + HCWebSocketGetHeaderAtIndex + HCWebSocketGetNumHeaders + HCWebSocketGetProxyUri + HCWebSocketSendBinaryMessageAsync + HCWebSocketSendMessageAsync + HCWebSocketSetHeader + HCWebSocketSetProxyDecryptsHttps + HCWebSocketSetProxyUri + XalAddUserWithUiAsync + XalAddUserWithUiResult + XalCleanupAsync + XalCleanupResult + XalCompareUsers + XalFindUserByLocalId + XalGetDeviceUser + XalGetDeviceUserIsPresent + XalGetMaxUsers + XalGetSandbox + XalGetSandboxSize + XalGetTitleId + XalInitialize + XalMemGetFunctions + XalMemSetFunctions + XalPlatformCryptoSetCallbacks + XalPlatformDateTimeSetCallbacks + XalPlatformRemoteConnectCancelPrompt + XalPlatformRemoteConnectSetEventHandlers + XalPlatformStorageClearComplete + XalPlatformStorageReadComplete + XalPlatformStorageSetEventHandlers + XalPlatformStorageWriteComplete + XalPlatformWebSetEventHandler + XalPlatformWebShowUrlComplete + XalSignOutUserAsync + XalSignOutUserAsyncIsPresent + XalSignOutUserResult + XalTryAddDefaultUserSilentlyAsync + XalTryAddDefaultUserSilentlyResult + XalTryAddUserByIdAsync + XalTryAddUserByIdResult + XalUserCheckPrivilege + XalUserCloseHandle + XalUserCloseSignoutDeferral + XalUserDuplicateHandle + XalUserGetAgeGroup + XalUserGetGamerPictureAsync + XalUserGetGamerPictureResult + XalUserGetGamerPictureResultSize + XalUserGetGamertag + XalUserGetGamertagSize + XalUserGetId + XalUserGetLocalId + XalUserGetSignoutDeferral + XalUserGetState + XalUserGetTokenAndSignatureSilentlyAsync + XalUserGetTokenAndSignatureSilentlyResult + XalUserGetTokenAndSignatureSilentlyResultSize + XalUserIsDevice + XalUserIsGuest + XalUserRegisterChangeEventHandler + XalUserResolveIssueWithUiAsync + XalUserResolveIssueWithUiResult + XalUserResolvePrivilegeWithUiIsPresent + XalUserResolveUserPrivilegeWithUiAsync + XalUserResolveUserPrivilegeWithUiResult + XalUserUnregisterChangeEventHandler + XAsyncBegin + XAsyncCancel + XAsyncComplete + XAsyncGetResult + XAsyncGetResultSize + XAsyncGetStatus + XAsyncRun + XAsyncSchedule + XblAchievementsAddAchievementProgressChangeHandler + XblAchievementsGetAchievementAsync + XblAchievementsGetAchievementResult + XblAchievementsGetAchievementsForTitleIdAsync + XblAchievementsGetAchievementsForTitleIdResult + XblAchievementsManagerAddLocalUser + XblAchievementsManagerDoWork + XblAchievementsManagerGetAchievement + XblAchievementsManagerGetAchievements + XblAchievementsManagerGetAchievementsByState + XblAchievementsManagerIsUserInitialized + XblAchievementsManagerRemoveLocalUser + XblAchievementsManagerResultCloseHandle + XblAchievementsManagerResultDuplicateHandle + XblAchievementsManagerResultGetAchievements + XblAchievementsManagerUpdateAchievement + XblAchievementsRemoveAchievementProgressChangeHandler + XblAchievementsResultCloseHandle + XblAchievementsResultDuplicateHandle + XblAchievementsResultGetAchievements + XblAchievementsResultGetNextAsync + XblAchievementsResultGetNextResult + XblAchievementsResultHasNext + XblAchievementsUpdateAchievementAsync + XblAchievementsUpdateAchievementForTitleIdAsync + XblAchievementUnlockAddNotificationHandler + XblAchievementUnlockRemoveNotificationHandler + XblAddServiceCallRoutedHandler + XblCleanupAsync + XblContextCloseHandle + XblContextCreateHandle + XblContextDuplicateHandle + XblContextGetUser + XblContextGetXboxUserId + XblContextSettingsGetHttpRetryDelay + XblContextSettingsGetHttpTimeoutWindow + XblContextSettingsGetLongHttpTimeout + XblContextSettingsGetUseCrossPlatformQosServers + XblContextSettingsGetWebsocketTimeoutWindow + XblContextSettingsSetHttpRetryDelay + XblContextSettingsSetHttpTimeoutWindow + XblContextSettingsSetLongHttpTimeout + XblContextSettingsSetUseCrossPlatformQosServers + XblContextSettingsSetWebsocketTimeoutWindow + XblDisableAssertsForXboxLiveThrottlingInDevSandboxes + XblEventsSetMaxFileSize + XblEventsSetStorageAllotment + XblEventsWriteInGameEvent + XblFormatSecureDeviceAddress + XblGameInviteAddNotificationHandler + XblGameInviteRemoveNotificationHandler + XblGetAsyncQueue + XblGetErrorCondition + XblGetScid + XblHttpCallCloseHandle + XblHttpCallCreate + XblHttpCallDuplicateHandle + XblHttpCallGetHeader + XblHttpCallGetHeaderAtIndex + XblHttpCallGetNetworkErrorCode + XblHttpCallGetNumHeaders + XblHttpCallGetPlatformNetworkErrorMessage + XblHttpCallGetRequestUrl + XblHttpCallGetResponseBodyBytes + XblHttpCallGetResponseBodyBytesSize + XblHttpCallGetResponseString + XblHttpCallGetStatusCode + XblHttpCallPerformAsync + XblHttpCallRequestSetHeader + XblHttpCallRequestSetLongHttpCall + XblHttpCallRequestSetRequestBodyBytes + XblHttpCallRequestSetRequestBodyString + XblHttpCallRequestSetRetryAllowed + XblHttpCallRequestSetRetryCacheId + XblHttpCallSetTracing + XblInitialize + XblLeaderboardGetLeaderboardAsync + XblLeaderboardGetLeaderboardResult + XblLeaderboardGetLeaderboardResultSize + XblLeaderboardResultGetNextAsync + XblLeaderboardResultGetNextResult + XblLeaderboardResultGetNextResultSize + XblLocalStorageClearComplete + XblLocalStorageReadComplete + XblLocalStorageSetHandlers + XblLocalStorageWriteComplete + XblMatchmakingCreateMatchTicketAsync + XblMatchmakingCreateMatchTicketResult + XblMatchmakingDeleteMatchTicketAsync + XblMatchmakingGetHopperStatisticsAsync + XblMatchmakingGetHopperStatisticsResult + XblMatchmakingGetHopperStatisticsResultSize + XblMatchmakingGetMatchTicketDetailsAsync + XblMatchmakingGetMatchTicketDetailsResult + XblMatchmakingGetMatchTicketDetailsResultSize + XblMemGetFunctions + XblMemSetFunctions + XblMultiplayerActivityAddInviteHandler + XblMultiplayerActivityDeleteActivityAsync + XblMultiplayerActivityFlushRecentPlayersAsync + XblMultiplayerActivityGetActivityAsync + XblMultiplayerActivityGetActivityResult + XblMultiplayerActivityGetActivityResultSize + XblMultiplayerActivityRemoveInviteHandler + XblMultiplayerActivitySendInvitesAsync + XblMultiplayerActivitySetActivityAsync + XblMultiplayerActivityUpdateRecentPlayers + XblMultiplayerAddConnectionIdChangedHandler + XblMultiplayerAddSessionChangedHandler + XblMultiplayerAddSubscriptionLostHandler + XblMultiplayerClearActivityAsync + XblMultiplayerCreateSearchHandleAsync + XblMultiplayerCreateSearchHandleResult + XblMultiplayerDeleteSearchHandleAsync + XblMultiplayerEventArgsFindMatchCompleted + XblMultiplayerEventArgsMember + XblMultiplayerEventArgsMembers + XblMultiplayerEventArgsMembersCount + XblMultiplayerEventArgsPerformQoSMeasurements + XblMultiplayerEventArgsPropertiesJson + XblMultiplayerEventArgsXuid + XblMultiplayerGetActivitiesForSocialGroupAsync + XblMultiplayerGetActivitiesForSocialGroupResult + XblMultiplayerGetActivitiesForSocialGroupResultCount + XblMultiplayerGetActivitiesForUsersAsync + XblMultiplayerGetActivitiesForUsersResult + XblMultiplayerGetActivitiesForUsersResultCount + XblMultiplayerGetActivitiesWithPropertiesForSocialGroupAsync + XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResult + XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResultSize + XblMultiplayerGetActivitiesWithPropertiesForUsersAsync + XblMultiplayerGetActivitiesWithPropertiesForUsersResult + XblMultiplayerGetActivitiesWithPropertiesForUsersResultSize + XblMultiplayerGetSearchHandlesAsync + XblMultiplayerGetSearchHandlesResult + XblMultiplayerGetSearchHandlesResultCount + XblMultiplayerGetSessionAsync + XblMultiplayerGetSessionByHandleAsync + XblMultiplayerGetSessionByHandleResult + XblMultiplayerGetSessionResult + XblMultiplayerManagerAutoFillMembersDuringMatchmaking + XblMultiplayerManagerCancelMatch + XblMultiplayerManagerDoWork + XblMultiplayerManagerEstimatedMatchWaitTime + XblMultiplayerManagerFindMatch + XblMultiplayerManagerGameSessionActive + XblMultiplayerManagerGameSessionConstants + XblMultiplayerManagerGameSessionCorrelationId + XblMultiplayerManagerGameSessionHost + XblMultiplayerManagerGameSessionIsHost + XblMultiplayerManagerGameSessionMembers + XblMultiplayerManagerGameSessionMembersCount + XblMultiplayerManagerGameSessionPropertiesJson + XblMultiplayerManagerGameSessionSessionReference + XblMultiplayerManagerGameSessionSetProperties + XblMultiplayerManagerGameSessionSetSynchronizedHost + XblMultiplayerManagerGameSessionSetSynchronizedProperties + XblMultiplayerManagerInitialize + XblMultiplayerManagerJoinability + XblMultiplayerManagerJoinGame + XblMultiplayerManagerJoinGameFromLobby + XblMultiplayerManagerJoinLobby + XblMultiplayerManagerLeaveGame + XblMultiplayerManagerLobbySessionAddLocalUser + XblMultiplayerManagerLobbySessionConstants + XblMultiplayerManagerLobbySessionCorrelationId + XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties + XblMultiplayerManagerLobbySessionHost + XblMultiplayerManagerLobbySessionInviteFriends + XblMultiplayerManagerLobbySessionInviteUsers + XblMultiplayerManagerLobbySessionIsHost + XblMultiplayerManagerLobbySessionLocalMembers + XblMultiplayerManagerLobbySessionLocalMembersCount + XblMultiplayerManagerLobbySessionMembers + XblMultiplayerManagerLobbySessionMembersCount + XblMultiplayerManagerLobbySessionPropertiesJson + XblMultiplayerManagerLobbySessionRemoveLocalUser + XblMultiplayerManagerLobbySessionSessionReference + XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress + XblMultiplayerManagerLobbySessionSetLocalMemberProperties + XblMultiplayerManagerLobbySessionSetProperties + XblMultiplayerManagerLobbySessionSetSynchronizedHost + XblMultiplayerManagerLobbySessionSetSynchronizedProperties + XblMultiplayerManagerMatchStatus + XblMultiplayerManagerMemberAreMembersOnSameDevice + XblMultiplayerManagerSetAutoFillMembersDuringMatchmaking + XblMultiplayerManagerSetJoinability + XblMultiplayerManagerSetQosMeasurements + XblMultiplayerQuerySessionsAsync + XblMultiplayerQuerySessionsResult + XblMultiplayerQuerySessionsResultCount + XblMultiplayerRemoveConnectionIdChangedHandler + XblMultiplayerRemoveSessionChangedHandler + XblMultiplayerRemoveSubscriptionLostHandler + XblMultiplayerSearchHandleCloseHandle + XblMultiplayerSearchHandleDuplicateHandle + XblMultiplayerSearchHandleGetCreationTime + XblMultiplayerSearchHandleGetCustomSessionPropertiesJson + XblMultiplayerSearchHandleGetId + XblMultiplayerSearchHandleGetJoinRestriction + XblMultiplayerSearchHandleGetMemberCounts + XblMultiplayerSearchHandleGetNumberAttributes + XblMultiplayerSearchHandleGetSessionClosed + XblMultiplayerSearchHandleGetSessionOwnerXuids + XblMultiplayerSearchHandleGetSessionReference + XblMultiplayerSearchHandleGetStringAttributes + XblMultiplayerSearchHandleGetTags + XblMultiplayerSearchHandleGetVisibility + XblMultiplayerSendInvitesAsync + XblMultiplayerSendInvitesResult + XblMultiplayerSessionAddMemberReservation + XblMultiplayerSessionCloseHandle + XblMultiplayerSessionCompare + XblMultiplayerSessionConstantsSetCapabilities + XblMultiplayerSessionConstantsSetCloudComputePackageJson + XblMultiplayerSessionConstantsSetMaxMembersInSession + XblMultiplayerSessionConstantsSetMeasurementServerAddressesJson + XblMultiplayerSessionConstantsSetMemberInitialization + XblMultiplayerSessionConstantsSetPeerToHostRequirements + XblMultiplayerSessionConstantsSetPeerToPeerRequirements + XblMultiplayerSessionConstantsSetQosConnectivityMetrics + XblMultiplayerSessionConstantsSetTimeouts + XblMultiplayerSessionConstantsSetVisibility + XblMultiplayerSessionCreateHandle + XblMultiplayerSessionCurrentUser + XblMultiplayerSessionCurrentUserDeleteCustomPropertyJson + XblMultiplayerSessionCurrentUserSetCustomPropertyJson + XblMultiplayerSessionCurrentUserSetEncounters + XblMultiplayerSessionCurrentUserSetGroups + XblMultiplayerSessionCurrentUserSetMembersInGroup + XblMultiplayerSessionCurrentUserSetQosMeasurements + XblMultiplayerSessionCurrentUserSetRoles + XblMultiplayerSessionCurrentUserSetSecureDeviceAddressBase64 + XblMultiplayerSessionCurrentUserSetServerQosMeasurements + XblMultiplayerSessionCurrentUserSetStatus + XblMultiplayerSessionDeleteCustomPropertyJson + XblMultiplayerSessionDuplicateHandle + XblMultiplayerSessionEtag + XblMultiplayerSessionGetInfo + XblMultiplayerSessionGetInitializationInfo + XblMultiplayerSessionGetMember + XblMultiplayerSessionGetRoleByName + XblMultiplayerSessionHostCandidates + XblMultiplayerSessionJoin + XblMultiplayerSessionLeave + XblMultiplayerSessionMatchmakingServer + XblMultiplayerSessionMembers + XblMultiplayerSessionMembersAccepted + XblMultiplayerSessionPropertiesSetJoinRestriction + XblMultiplayerSessionPropertiesSetKeywords + XblMultiplayerSessionPropertiesSetReadRestriction + XblMultiplayerSessionPropertiesSetTurnCollection + XblMultiplayerSessionRawServersJson + XblMultiplayerSessionReferenceCreate + XblMultiplayerSessionReferenceIsValid + XblMultiplayerSessionReferenceParseFromUriPath + XblMultiplayerSessionReferenceToUriPath + XblMultiplayerSessionRoleTypes + XblMultiplayerSessionSessionConstants + XblMultiplayerSessionSessionProperties + XblMultiplayerSessionSessionReference + XblMultiplayerSessionSetAllocateCloudCompute + XblMultiplayerSessionSetClosed + XblMultiplayerSessionSetCustomPropertyJson + XblMultiplayerSessionSetHostDeviceToken + XblMultiplayerSessionSetInitializationSucceeded + XblMultiplayerSessionSetLocked + XblMultiplayerSessionSetMatchmakingResubmit + XblMultiplayerSessionSetMatchmakingServerConnectionPath + XblMultiplayerSessionSetMatchmakingTargetSessionConstantsJson + XblMultiplayerSessionSetMutableRoleSettings + XblMultiplayerSessionSetRawServersJson + XblMultiplayerSessionSetServerConnectionStringCandidates + XblMultiplayerSessionSetSessionChangeSubscription + XblMultiplayerSessionSubscribedChangeTypes + XblMultiplayerSessionTimeOfSession + XblMultiplayerSessionWriteStatus + XblMultiplayerSetActivityAsync + XblMultiplayerSetSubscriptionsEnabled + XblMultiplayerSetTransferHandleAsync + XblMultiplayerSetTransferHandleResult + XblMultiplayerSubscriptionsEnabled + XblMultiplayerWriteSessionAsync + XblMultiplayerWriteSessionByHandleAsync + XblMultiplayerWriteSessionByHandleResult + XblMultiplayerWriteSessionResult + XblPresenceAddDevicePresenceChangedHandler + XblPresenceAddTitlePresenceChangedHandler + XblPresenceGetPresenceAsync + XblPresenceGetPresenceForMultipleUsersAsync + XblPresenceGetPresenceForMultipleUsersResult + XblPresenceGetPresenceForMultipleUsersResultCount + XblPresenceGetPresenceForSocialGroupAsync + XblPresenceGetPresenceForSocialGroupResult + XblPresenceGetPresenceForSocialGroupResultCount + XblPresenceGetPresenceResult + XblPresenceRecordCloseHandle + XblPresenceRecordDuplicateHandle + XblPresenceRecordGetDeviceRecords + XblPresenceRecordGetUserState + XblPresenceRecordGetXuid + XblPresenceRemoveDevicePresenceChangedHandler + XblPresenceRemoveTitlePresenceChangedHandler + XblPresenceSetPresenceAsync + XblPresenceStopTrackingAdditionalTitles + XblPresenceStopTrackingUsers + XblPresenceTrackAdditionalTitles + XblPresenceTrackUsers + XblPrivacyBatchCheckPermissionAsync + XblPrivacyBatchCheckPermissionResult + XblPrivacyBatchCheckPermissionResultSize + XblPrivacyCheckPermissionAsync + XblPrivacyCheckPermissionForAnonymousUserAsync + XblPrivacyCheckPermissionForAnonymousUserResult + XblPrivacyCheckPermissionForAnonymousUserResultSize + XblPrivacyCheckPermissionResult + XblPrivacyCheckPermissionResultSize + XblPrivacyGetAvoidListAsync + XblPrivacyGetAvoidListResult + XblPrivacyGetAvoidListResultCount + XblPrivacyGetMuteListAsync + XblPrivacyGetMuteListResult + XblPrivacyGetMuteListResultCount + XblProfileGetUserProfileAsync + XblProfileGetUserProfileResult + XblProfileGetUserProfilesAsync + XblProfileGetUserProfilesForSocialGroupAsync + XblProfileGetUserProfilesForSocialGroupResult + XblProfileGetUserProfilesForSocialGroupResultCount + XblProfileGetUserProfilesResult + XblProfileGetUserProfilesResultCount + XblRealTimeActivityAddConnectionStateChangeHandler + XblRealTimeActivityAddResyncHandler + XblRealTimeActivityRemoveConnectionStateChangeHandler + XblRealTimeActivityRemoveResyncHandler + XblRemoveServiceCallRoutedHandler + XblSetOverrideConfiguration + XblSocialAddSocialRelationshipChangedHandler + XblSocialGetSocialRelationshipsAsync + XblSocialGetSocialRelationshipsResult + XblSocialManagerAddLocalUser + XblSocialManagerCreateSocialUserGroupFromFilters + XblSocialManagerCreateSocialUserGroupFromList + XblSocialManagerDestroySocialUserGroup + XblSocialManagerDoWork + XblSocialManagerGetLocalUserCount + XblSocialManagerGetLocalUsers + XblSocialManagerPresenceRecordIsUserPlayingTitle + XblSocialManagerRemoveLocalUser + XblSocialManagerSetRichPresencePollingStatus + XblSocialManagerUpdateSocialUserGroup + XblSocialManagerUserGroupGetFilters + XblSocialManagerUserGroupGetLocalUser + XblSocialManagerUserGroupGetType + XblSocialManagerUserGroupGetUsers + XblSocialManagerUserGroupGetUsersTrackedByGroup + XblSocialRelationshipResultCloseHandle + XblSocialRelationshipResultDuplicateHandle + XblSocialRelationshipResultGetNextAsync + XblSocialRelationshipResultGetNextResult + XblSocialRelationshipResultGetRelationships + XblSocialRelationshipResultGetTotalCount + XblSocialRelationshipResultHasNext + XblSocialRemoveSocialRelationshipChangedHandler + XblSocialSubmitBatchReputationFeedbackAsync + XblSocialSubmitReputationFeedbackAsync + XblStringVerifyStringAsync + XblStringVerifyStringResult + XblStringVerifyStringResultSize + XblStringVerifyStringsAsync + XblStringVerifyStringsResult + XblStringVerifyStringsResultSize + XblTitleManagedStatsDeleteStatsAsync + XblTitleManagedStatsUpdateStatsAsync + XblTitleManagedStatsWriteAsync + XblTitleStorageBlobMetadataResultCloseHandle + XblTitleStorageBlobMetadataResultDuplicateHandle + XblTitleStorageBlobMetadataResultGetItems + XblTitleStorageBlobMetadataResultGetNextAsync + XblTitleStorageBlobMetadataResultGetNextResult + XblTitleStorageBlobMetadataResultHasNext + XblTitleStorageDeleteBlobAsync + XblTitleStorageDownloadBlobAsync + XblTitleStorageDownloadBlobResult + XblTitleStorageGetBlobMetadataAsync + XblTitleStorageGetBlobMetadataResult + XblTitleStorageGetQuotaAsync + XblTitleStorageGetQuotaResult + XblTitleStorageUploadBlobAsync + XblTitleStorageUploadBlobResult + XblUserStatisticsAddStatisticChangedHandler + XblUserStatisticsGetMultipleUserStatisticsAsync + XblUserStatisticsGetMultipleUserStatisticsForMultipleServiceConfigurationsAsync + XblUserStatisticsGetMultipleUserStatisticsForMultipleServiceConfigurationsResult + XblUserStatisticsGetMultipleUserStatisticsForMultipleServiceConfigurationsResultSize + XblUserStatisticsGetMultipleUserStatisticsResult + XblUserStatisticsGetMultipleUserStatisticsResultSize + XblUserStatisticsGetSingleUserStatisticAsync + XblUserStatisticsGetSingleUserStatisticResult + XblUserStatisticsGetSingleUserStatisticResultSize + XblUserStatisticsGetSingleUserStatisticsAsync + XblUserStatisticsGetSingleUserStatisticsResult + XblUserStatisticsGetSingleUserStatisticsResultSize + XblUserStatisticsRemoveStatisticChangedHandler + XblUserStatisticsStopTrackingStatistics + XblUserStatisticsStopTrackingUsers + XblUserStatisticsTrackStatistics + XTaskQueueCloseHandle + XTaskQueueCreate + XTaskQueueCreateComposite + XTaskQueueDispatch + XTaskQueueDuplicateHandle + XTaskQueueGetCurrentProcessTaskQueue + XTaskQueueGetPort + XTaskQueueRegisterMonitor + XTaskQueueRegisterWaiter + XTaskQueueSetCurrentProcessTaskQueue + XTaskQueueSubmitCallback + XTaskQueueSubmitDelayedCallback + XTaskQueueTerminate + XTaskQueueUnregisterMonitor + XTaskQueueUnregisterWaiter diff --git a/External/Xal/External/libHttpClient b/External/Xal/External/libHttpClient index 0f43237a..d34b3b12 160000 --- a/External/Xal/External/libHttpClient +++ b/External/Xal/External/libHttpClient @@ -1 +1 @@ -Subproject commit 0f43237a35cd2335b5503ffaaf240a368c938f3d +Subproject commit d34b3b125f3cb23da81428aa350f66930bc99f8c diff --git a/External/Xal/Source/Xal/Include/Xal/xal.h b/External/Xal/Source/Xal/Include/Xal/xal.h index e753df5e..83c959ce 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal.h +++ b/External/Xal/Source/Xal/Include/Xal/xal.h @@ -33,7 +33,7 @@ extern "C" /// /// It is never an error to set a platform event handler that is not required. /// -HRESULT XalInitialize( +STDAPI XalInitialize( _In_ XalInitArgs const* args, _In_opt_ XTaskQueueHandle internalWorkQueue ) noexcept; @@ -48,7 +48,7 @@ HRESULT XalInitialize( /// This functions should only be called when all user handles have been closed /// and there are no outstanding asynchronous operations. /// -HRESULT XalCleanupAsync( +STDAPI XalCleanupAsync( _In_ XAsyncBlock* async ) noexcept; @@ -57,7 +57,7 @@ HRESULT XalCleanupAsync( /// /// The AsyncBlock for this operation. /// Result code for this API operation. -HRESULT XalCleanupResult( +STDAPI XalCleanupResult( _In_ XAsyncBlock* async ) noexcept; @@ -67,7 +67,7 @@ HRESULT XalCleanupResult( /// /// The maximum number of concurrent users. /// Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL. -HRESULT XalGetMaxUsers( +STDAPI XalGetMaxUsers( _Out_ uint32_t* maxUsers ) noexcept; @@ -77,7 +77,7 @@ HRESULT XalGetMaxUsers( /// /// The Xbox Live title ID. /// Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL. -HRESULT XalGetTitleId( +STDAPI XalGetTitleId( _Out_ uint32_t* titleId ) noexcept; @@ -85,7 +85,7 @@ HRESULT XalGetTitleId( /// Get the size of the buffer needed to store the Xbox Live sandbox string. /// /// The size of the sandbox string including the null terminator. -size_t XalGetSandboxSize() noexcept; +STDAPI_(size_t) XalGetSandboxSize() noexcept; /// /// Get the Xbox Live sandbox that Xal was initialized with. Must be called after @@ -97,7 +97,7 @@ size_t XalGetSandboxSize() noexcept; /// The number of bytes used in the buffer including /// the null terminator. /// Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL. -HRESULT XalGetSandbox( +STDAPI XalGetSandbox( _In_ size_t sandboxSize, _Out_writes_(sandboxSize) char* sandbox, _Out_opt_ size_t* sandboxUsed @@ -114,7 +114,7 @@ HRESULT XalGetSandbox( /// userIdentifier will be stored in the user and passed to all XalPlatform* /// callbacks related to this user. /// -HRESULT XalTryAddDefaultUserSilentlyAsync( +STDAPI XalTryAddDefaultUserSilentlyAsync( _In_ uint32_t userIdentifier, _In_ XAsyncBlock* async ) noexcept; @@ -127,7 +127,7 @@ HRESULT XalTryAddDefaultUserSilentlyAsync( /// /// If the operations failed, newUser will be NULL. /// -HRESULT XalTryAddDefaultUserSilentlyResult( +STDAPI XalTryAddDefaultUserSilentlyResult( _In_ XAsyncBlock* async, _Out_ XalUserHandle* newUser ) noexcept; @@ -146,7 +146,7 @@ HRESULT XalTryAddDefaultUserSilentlyResult( /// userIdentifier will be stored in the user and passed to all XalPlatform* /// callbacks related to this user. /// -HRESULT XalTryAddUserByIdAsync( +STDAPI XalTryAddUserByIdAsync( _In_ uint32_t userIdentifier, _In_ uint64_t xboxUserId, _In_ XAsyncBlock* async @@ -161,7 +161,7 @@ HRESULT XalTryAddUserByIdAsync( /// /// If the operations failed, newUser will be NULL. /// -HRESULT XalTryAddUserByIdResult( +STDAPI XalTryAddUserByIdResult( _In_ XAsyncBlock* async, _Out_ XalUserHandle* newUser ) noexcept; @@ -179,7 +179,7 @@ HRESULT XalTryAddUserByIdResult( /// userIdentifier will be stored in the user and passed to all XalPlatform* /// callbacks related to this user. /// -HRESULT XalAddUserWithUiAsync( +STDAPI XalAddUserWithUiAsync( _In_ uint32_t userIdentifier, _In_ XAsyncBlock* async ) noexcept; @@ -193,7 +193,7 @@ HRESULT XalAddUserWithUiAsync( /// /// If the operations failed, newUser will be NULL. /// -HRESULT XalAddUserWithUiResult( +STDAPI XalAddUserWithUiResult( _In_ XAsyncBlock* async, _Out_ XalUserHandle* newUser ) noexcept; @@ -202,7 +202,7 @@ HRESULT XalAddUserWithUiResult( /// Checks if the current platform supports retrieving a device user handle. /// /// True if device user present, false if not. -bool XalGetDeviceUserIsPresent() noexcept; +STDAPI_(bool) XalGetDeviceUserIsPresent() noexcept; /// /// Returns a user which represents the device itself. @@ -213,7 +213,7 @@ bool XalGetDeviceUserIsPresent() noexcept; /// This user handle will have had XalUserDuplicateHandle called on it. Be sure /// to call XalUserCloseHandle once it is no longer needed. /// -HRESULT XalGetDeviceUser( +STDAPI XalGetDeviceUser( _Out_ XalUserHandle* deviceUser ) noexcept; @@ -221,7 +221,7 @@ HRESULT XalGetDeviceUser( /// Checks if the user can be signed out on the current platform. /// /// True if user can be signed out, false if user can't. -bool XalSignOutUserAsyncIsPresent() noexcept; +STDAPI_(bool) XalSignOutUserAsyncIsPresent() noexcept; /// /// Signs out a user from the device. @@ -242,7 +242,7 @@ bool XalSignOutUserAsyncIsPresent() noexcept; /// (see ) this function will /// invoke the hook. /// -HRESULT XalSignOutUserAsync( +STDAPI XalSignOutUserAsync( _In_ XalUserHandle user, _In_ XAsyncBlock* async ) noexcept; @@ -252,7 +252,7 @@ HRESULT XalSignOutUserAsync( /// /// The AsyncBlock for this operation. /// Result code for this API operation. -HRESULT XalSignOutUserResult( +STDAPI XalSignOutUserResult( _In_ XAsyncBlock* async ) noexcept; @@ -265,7 +265,7 @@ HRESULT XalSignOutUserResult( /// /// If no user can be found matching the local id, E_XAL_USERNOTFOUND is returned. /// -HRESULT XalFindUserByLocalId( +STDAPI XalFindUserByLocalId( _In_ XalUserLocalId localId, _Out_ XalUserHandle* user ) noexcept; diff --git a/External/Xal/Source/Xal/Include/Xal/xal_internal_telemetry.h b/External/Xal/Source/Xal/Include/Xal/xal_internal_telemetry.h index 3209fee6..13ab3774 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_internal_telemetry.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_internal_telemetry.h @@ -116,7 +116,7 @@ typedef struct XalTelemetryTicket /// The cll persistence for this event. /// The cll sensitivity for this event. /// The cll sampleRate for this event. -HRESULT XalTelemetryWriteEvent( +STDAPI XalTelemetryWriteEvent( _In_ XalUserHandle user, _In_z_ char const* iKey, _In_z_ char const* eventNameWithProvider, diff --git a/External/Xal/Source/Xal/Include/Xal/xal_internal_web_account.h b/External/Xal/Source/Xal/Include/Xal/xal_internal_web_account.h index 4a1db139..f2b77ac7 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_internal_web_account.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_internal_web_account.h @@ -20,7 +20,7 @@ extern "C" /// Returns the size of the buffer needed to store the web account ID string. /// /// The user object. -size_t XalUserGetWebAccountIdSize( +STDAPI_(size_t) XalUserGetWebAccountIdSize( _In_ XalUserHandle user ) noexcept; @@ -34,7 +34,7 @@ size_t XalUserGetWebAccountIdSize( /// /// The number of bytes used in the buffer /// including the null terminator. -HRESULT XalUserGetWebAccountId( +STDAPI XalUserGetWebAccountId( _In_ XalUserHandle user, _In_ size_t webAccountIdSize, _Out_writes_(webAccountIdSize) char* webAccountId, @@ -97,7 +97,7 @@ typedef struct XalUserGetWebAccountTokenArgs /// The requested token details. /// The AsyncBlock for this operation. /// . -HRESULT XalUserGetWebAccountTokenSilentlyAsync( +STDAPI XalUserGetWebAccountTokenSilentlyAsync( _In_ XalUserHandle user, _In_ XalUserGetWebAccountTokenArgs const* args, _In_ XAsyncBlock* async @@ -108,7 +108,7 @@ HRESULT XalUserGetWebAccountTokenSilentlyAsync( /// /// The AsyncBlock for this operation. /// The size in bytes for the result buffer. -HRESULT XalUserGetWebAccountTokenSilentlyResultSize( +STDAPI XalUserGetWebAccountTokenSilentlyResultSize( _In_ XAsyncBlock* async, _Out_ size_t* bufferSize ) noexcept; @@ -120,7 +120,7 @@ HRESULT XalUserGetWebAccountTokenSilentlyResultSize( /// The size of the buffer for the result object. /// /// The result token. -HRESULT XalUserGetWebAccountTokenSilentlyResult( +STDAPI XalUserGetWebAccountTokenSilentlyResult( _In_ XAsyncBlock* async, _In_ size_t bufferSize, _Out_writes_z_(bufferSize) char* result @@ -133,7 +133,7 @@ HRESULT XalUserGetWebAccountTokenSilentlyResult( /// The requested token details. /// The AsyncBlock for this operation. /// . -HRESULT XalUserGetWebAccountTokenWithUiAsync( +STDAPI XalUserGetWebAccountTokenWithUiAsync( _In_ XalUserHandle user, _In_ XalUserGetWebAccountTokenArgs const* args, _In_ XAsyncBlock* async @@ -144,7 +144,7 @@ HRESULT XalUserGetWebAccountTokenWithUiAsync( /// /// The AsyncBlock for this operation. /// The size in bytes for the result buffer. -HRESULT XalUserGetWebAccountTokenWithUiResultSize( +STDAPI XalUserGetWebAccountTokenWithUiResultSize( _In_ XAsyncBlock* async, _Out_ size_t* bufferSize ) noexcept; @@ -156,7 +156,7 @@ HRESULT XalUserGetWebAccountTokenWithUiResultSize( /// The size of the buffer for the result object. /// /// The result token. -HRESULT XalUserGetWebAccountTokenWithUiResult( +STDAPI XalUserGetWebAccountTokenWithUiResult( _In_ XAsyncBlock* async, _In_ size_t bufferSize, _Out_writes_z_(bufferSize) char* result diff --git a/External/Xal/Source/Xal/Include/Xal/xal_platform.h b/External/Xal/Source/Xal/Include/Xal/xal_platform.h index d226808d..60609858 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_platform.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_platform.h @@ -38,7 +38,7 @@ extern "C" /// A pointer to the custom freeing callback to use, /// or a null pointer to restore the default. /// Result code for this API operation. -HRESULT XalMemSetFunctions( +STDAPI XalMemSetFunctions( _In_opt_ XalMemAllocFunc* memAllocFunc, _In_opt_ XalMemFreeFunc* memFreeFunc ) noexcept; @@ -54,7 +54,7 @@ HRESULT XalMemSetFunctions( /// Set to the to the current memory free callback. /// Returns the default routine if not previously set. /// Result code for this API operation. -HRESULT XalMemGetFunctions( +STDAPI XalMemGetFunctions( _Out_ XalMemAllocFunc** memAllocFunc, _Out_ XalMemFreeFunc** memFreeFunc ) noexcept; @@ -75,7 +75,7 @@ HRESULT XalMemGetFunctions( /// /// Must be called before XalInitialize. /// -HRESULT XalPlatformWebSetEventHandler( +STDAPI XalPlatformWebSetEventHandler( _In_opt_ XTaskQueueHandle queue, _In_opt_ void* context, _In_ XalPlatformWebShowUrlEventHandler2* handler @@ -94,7 +94,7 @@ HRESULT XalPlatformWebSetEventHandler( /// cannot be completed. /// /// -HRESULT XalPlatformWebShowUrlComplete( +STDAPI XalPlatformWebShowUrlComplete( _In_ XalPlatformOperation operation, _In_ XalPlatformOperationResult result, _In_opt_z_ char const* url @@ -114,7 +114,7 @@ HRESULT XalPlatformWebShowUrlComplete( /// /// Must be called before XalInitialize. /// -HRESULT XalPlatformStorageSetEventHandlers( +STDAPI XalPlatformStorageSetEventHandlers( _In_opt_ XTaskQueueHandle queue, _In_ XalPlatformStorageEventHandlers2* handlers ) noexcept; @@ -130,7 +130,7 @@ HRESULT XalPlatformStorageSetEventHandlers( /// the write is completed or if an error occurs and the operation cannot be /// completed . /// -HRESULT XalPlatformStorageWriteComplete( +STDAPI XalPlatformStorageWriteComplete( _In_ XalPlatformOperation operation, _In_ XalPlatformOperationResult result ) noexcept; @@ -151,7 +151,7 @@ HRESULT XalPlatformStorageWriteComplete( /// If the requested key cannot be found, the operation should be completed /// with XalClientOperationResult_Success, data = nullptr and dataSize = 0. /// -HRESULT XalPlatformStorageReadComplete( +STDAPI XalPlatformStorageReadComplete( _In_ XalPlatformOperation operation, _In_ XalPlatformOperationResult result, _In_ size_t dataSize, @@ -169,7 +169,7 @@ HRESULT XalPlatformStorageReadComplete( /// the data is cleared or if an error occurs and the operation cannot be /// completed . /// -HRESULT XalPlatformStorageClearComplete( +STDAPI XalPlatformStorageClearComplete( _In_ XalPlatformOperation operation, _In_ XalPlatformOperationResult result ) noexcept; @@ -188,7 +188,7 @@ HRESULT XalPlatformStorageClearComplete( /// /// Must be called before XalInitialize. /// -HRESULT XalPlatformRemoteConnectSetEventHandlers( +STDAPI XalPlatformRemoteConnectSetEventHandlers( _In_opt_ XTaskQueueHandle queue, _In_ XalPlatformRemoteConnectEventHandlers2* handlers ) noexcept; @@ -205,7 +205,7 @@ HRESULT XalPlatformRemoteConnectSetEventHandlers( /// E_ABORT. The XalPlatformRemoteConnectClosePromptEventHandler will be called /// as normal. /// -HRESULT XalPlatformRemoteConnectCancelPrompt( +STDAPI XalPlatformRemoteConnectCancelPrompt( _In_ XalPlatformOperation operation ) noexcept; @@ -221,7 +221,7 @@ HRESULT XalPlatformRemoteConnectCancelPrompt( /// /// Must be called before XalInitialize. /// -HRESULT XalPlatformCryptoSetCallbacks( +STDAPI XalPlatformCryptoSetCallbacks( _In_ XalPlatformCryptoCallbacks* callbacks ) noexcept; @@ -237,7 +237,7 @@ HRESULT XalPlatformCryptoSetCallbacks( /// /// Must be called before XalInitialize. /// -HRESULT XalPlatformDateTimeSetCallbacks( +STDAPI XalPlatformDateTimeSetCallbacks( _In_ XalPlatformDateTimeCallbacks* callbacks ) noexcept; diff --git a/External/Xal/Source/Xal/Include/Xal/xal_user.h b/External/Xal/Source/Xal/Include/Xal/xal_user.h index 0a1ddd61..4cab2423 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_user.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_user.h @@ -20,7 +20,7 @@ extern "C" /// The user handle. /// The new user handle. /// Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL. -HRESULT XalUserDuplicateHandle( +STDAPI XalUserDuplicateHandle( _In_ XalUserHandle user, _Out_ XalUserHandle* duplicatedUser ) noexcept; @@ -30,7 +30,7 @@ HRESULT XalUserDuplicateHandle( /// /// The user object /// -void XalUserCloseHandle( +STDAPI_(void) XalUserCloseHandle( _In_ XalUserHandle user ) noexcept; @@ -46,7 +46,7 @@ void XalUserCloseHandle( /// /// User identity ordering is arbitrary, but sutiable for sorting. /// -int32_t XalCompareUsers( +STDAPI_(int32_t) XalCompareUsers( _In_ XalUserHandle user1, _In_ XalUserHandle user2 ) noexcept; @@ -60,7 +60,7 @@ int32_t XalCompareUsers( /// The user object. /// The Xbox Live User ID (XUID) of the user. /// Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL. -HRESULT XalUserGetId( // TODO any valid error scenarios? local users, consent +STDAPI XalUserGetId( // TODO any valid error scenarios? local users, consent _In_ XalUserHandle user, _Out_ uint64_t* id ) noexcept; @@ -71,7 +71,7 @@ HRESULT XalUserGetId( // TODO any valid error scenarios? local users, consent /// The user object. /// The local id of the user. /// Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL. -HRESULT XalUserGetLocalId( +STDAPI XalUserGetLocalId( _In_ XalUserHandle user, _Out_ XalUserLocalId* localId ) noexcept; @@ -81,7 +81,7 @@ HRESULT XalUserGetLocalId( /// /// The user object. /// -bool XalUserIsDevice( +STDAPI_(bool) XalUserIsDevice( _In_ XalUserHandle user ) noexcept; @@ -90,7 +90,7 @@ bool XalUserIsDevice( /// /// The user object. /// -bool XalUserIsGuest( +STDAPI_(bool) XalUserIsGuest( _In_ XalUserHandle user ) noexcept; @@ -101,7 +101,7 @@ bool XalUserIsGuest( /// The sign-in state of the user /// . /// Result code for this API operation. -HRESULT XalUserGetState( +STDAPI XalUserGetState( _In_ XalUserHandle user, _Out_ XalUserState* state ) noexcept; @@ -118,7 +118,7 @@ HRESULT XalUserGetState( /// XalGamertagComponent_Classic instead. XalGamertagComponent_Suffix will be /// empty if the modern components are unavailable. /// -size_t XalUserGetGamertagSize( +STDAPI_(size_t) XalUserGetGamertagSize( _In_ XalUserHandle user, _In_ XalGamertagComponent component ) noexcept; @@ -140,7 +140,7 @@ size_t XalUserGetGamertagSize( /// XalGamertagComponent_Classic instead. XalGamertagComponent_Suffix will be /// empty if the modern components are unavailable. /// -HRESULT XalUserGetGamertag( +STDAPI XalUserGetGamertag( _In_ XalUserHandle user, _In_ XalGamertagComponent component, _In_ size_t gamertagSize, @@ -155,7 +155,7 @@ HRESULT XalUserGetGamertag( /// The size wanted. /// The AsyncBlock for this operation. /// Result code for this API operation. Possible values are S_OK or E_FAIL. -HRESULT XalUserGetGamerPictureAsync( +STDAPI XalUserGetGamerPictureAsync( _In_ XalUserHandle user, _In_ XalGamerPictureSize pictureSize, _In_ XAsyncBlock* async @@ -167,7 +167,7 @@ HRESULT XalUserGetGamerPictureAsync( /// The AsyncBlock for this operation. /// The size in bytes for the result buffer. /// Result code for this API operation. -HRESULT XalUserGetGamerPictureResultSize( +STDAPI XalUserGetGamerPictureResultSize( _In_ XAsyncBlock* async, _Out_ size_t* bufferSize ) noexcept; @@ -179,7 +179,7 @@ HRESULT XalUserGetGamerPictureResultSize( /// The size of the gamer picture buffer. /// The gamer picture png data. /// Result code for this API operation. -HRESULT XalUserGetGamerPictureResult( +STDAPI XalUserGetGamerPictureResult( _In_ XAsyncBlock* async, _In_ size_t bufferSize, _Out_writes_(bufferSize) void* buffer @@ -191,7 +191,7 @@ HRESULT XalUserGetGamerPictureResult( /// The user object. /// The age group. /// Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL. -HRESULT XalUserGetAgeGroup( +STDAPI XalUserGetAgeGroup( _In_ XalUserHandle user, _Out_ XalAgeGroup* ageGroup ) noexcept; @@ -207,7 +207,7 @@ HRESULT XalUserGetAgeGroup( /// denied a privilege. If the user has the privilege it will always be /// XAL_PRIVILEGE_CHECK_DENY_REASON_NONE. /// Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL. -HRESULT XalUserCheckPrivilege( +STDAPI XalUserCheckPrivilege( _In_ XalUserHandle user, _In_ XalPrivilege privilege, _Out_ bool* hasPrivilege, @@ -218,7 +218,7 @@ HRESULT XalUserCheckPrivilege( /// Checks if the current platform supports resolving missing privileges. /// /// -bool XalUserResolvePrivilegeWithUiIsPresent() noexcept; +STDAPI_(bool) XalUserResolvePrivilegeWithUiIsPresent() noexcept; /// /// Shows ui explaining why the user is missing the given privilege and @@ -228,7 +228,7 @@ bool XalUserResolvePrivilegeWithUiIsPresent() noexcept; /// The privilege to check. /// The AsyncBlock for this operation. /// Result code for this API operation. -HRESULT XalUserResolveUserPrivilegeWithUiAsync( +STDAPI XalUserResolveUserPrivilegeWithUiAsync( _In_ XalUserHandle user, _In_ XalPrivilege privilege, _In_ XAsyncBlock* async @@ -239,7 +239,7 @@ HRESULT XalUserResolveUserPrivilegeWithUiAsync( /// /// The AsyncBlock for this operation. /// Result code for this API operation. -HRESULT XalUserResolveUserPrivilegeWithUiResult( +STDAPI XalUserResolveUserPrivilegeWithUiResult( _In_ XAsyncBlock* async ) noexcept; @@ -254,7 +254,7 @@ HRESULT XalUserResolveUserPrivilegeWithUiResult( /// The AsyncBlock for this operation. /// . /// Result code for this API operation. -HRESULT XalUserGetTokenAndSignatureSilentlyAsync( +STDAPI XalUserGetTokenAndSignatureSilentlyAsync( _In_ XalUserHandle user, _In_ XalUserGetTokenAndSignatureArgs const* args, _In_ XAsyncBlock* async @@ -266,7 +266,7 @@ HRESULT XalUserGetTokenAndSignatureSilentlyAsync( /// The AsyncBlock for this operation. /// The size in bytes for the result buffer. /// Result code for this API operation. -HRESULT XalUserGetTokenAndSignatureSilentlyResultSize( +STDAPI XalUserGetTokenAndSignatureSilentlyResultSize( _In_ XAsyncBlock* async, _Out_ size_t* bufferSize ) noexcept; @@ -283,7 +283,7 @@ HRESULT XalUserGetTokenAndSignatureSilentlyResultSize( /// /// result is a pointer within buffer and does not need to be freed separately. /// -HRESULT XalUserGetTokenAndSignatureSilentlyResult( +STDAPI XalUserGetTokenAndSignatureSilentlyResult( _In_ XAsyncBlock* async, _In_ size_t bufferSize, _Out_writes_bytes_to_(bufferSize, *bufferUsed) void* buffer, @@ -303,7 +303,7 @@ HRESULT XalUserGetTokenAndSignatureSilentlyResult( /// This function should only be called after a call to /// XalUserGetTokenAndSignatureSilentlyAsync fails with E_XAL_UIREQUIRED. /// -HRESULT XalUserResolveIssueWithUiAsync( +STDAPI XalUserResolveIssueWithUiAsync( _In_ XalUserHandle user, _In_opt_z_ char const* url, _In_ XAsyncBlock* async @@ -314,7 +314,7 @@ HRESULT XalUserResolveIssueWithUiAsync( /// /// The AsyncBlock for this operation. /// Result code for this API operation. -HRESULT XalUserResolveIssueWithUiResult( +STDAPI XalUserResolveIssueWithUiResult( _In_ XAsyncBlock* async ) noexcept; @@ -329,7 +329,7 @@ HRESULT XalUserResolveIssueWithUiResult( /// The event handler, . /// The token for unregistering this callback /// Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL. -HRESULT XalUserRegisterChangeEventHandler( +STDAPI XalUserRegisterChangeEventHandler( _In_opt_ XTaskQueueHandle queue, _In_opt_ void* context, _In_ XalUserChangeEventHandler* handler, @@ -342,7 +342,7 @@ HRESULT XalUserRegisterChangeEventHandler( /// The token returned from /// XalUserRegisterChangeEventHandler. /// -void XalUserUnregisterChangeEventHandler( +STDAPI_(void) XalUserUnregisterChangeEventHandler( _In_ XalRegistrationToken token ) noexcept; @@ -358,7 +358,7 @@ void XalUserUnregisterChangeEventHandler( /// /// May fail with E_XAL_DEFERRALNOTAVAILABLE. /// -HRESULT XalUserGetSignoutDeferral( +STDAPI XalUserGetSignoutDeferral( _Out_ XalSignoutDeferralHandle* deferral ) noexcept; @@ -367,7 +367,7 @@ HRESULT XalUserGetSignoutDeferral( /// /// The deferral handle. /// -void XalUserCloseSignoutDeferral( +STDAPI_(void) XalUserCloseSignoutDeferral( _In_ XalSignoutDeferralHandle deferral ) noexcept; diff --git a/External/Xal/Source/Xal/Include/Xal/xal_uwp_user.h b/External/Xal/Source/Xal/Include/Xal/xal_uwp_user.h index 830c40ec..33d29233 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_uwp_user.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_uwp_user.h @@ -13,7 +13,7 @@ extern "C" //------------------------------------------------------------------------------ // Uwp user functions //------------------------------------------------------------------------------ -HRESULT XalUserGetPlatformWebAccount( +STDAPI XalUserGetPlatformWebAccount( _In_ XalUserHandle user, _Out_ Windows::Security::Credentials::WebAccount^* webAccount ) noexcept; @@ -24,7 +24,7 @@ HRESULT XalUserGetPlatformWebAccount( /// The system user. /// The AsyncBlock for this operation. /// Result code for this API operation. -HRESULT XalAddUwpSystemUserSilentAsync( +STDAPI XalAddUwpSystemUserSilentAsync( _In_ Windows::System::User^ user, _In_ XAsyncBlock* async ) noexcept; diff --git a/External/Xal/Source/Xal/Include/Xal/xal_version.h b/External/Xal/Source/Xal/Include/Xal/xal_version.h index 7401e844..0aaf8483 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_version.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_version.h @@ -20,6 +20,6 @@ extern "C" /// YYYYMMDD Date string describing the date the build was created /// rrr QFE number (000 indicates base release) /// -#define XAL_VERSION "2021.04.20210518.001" +#define XAL_VERSION "2021.06.20210518.000" } diff --git a/External/Xal/Source/Xal/Include/Xal/xal_xdk_ext.h b/External/Xal/Source/Xal/Include/Xal/xal_xdk_ext.h index b18c47de..c00a6e20 100644 --- a/External/Xal/Source/Xal/Include/Xal/xal_xdk_ext.h +++ b/External/Xal/Source/Xal/Include/Xal/xal_xdk_ext.h @@ -8,7 +8,7 @@ extern "C" /// /// The user handle. /// The associated system user. -HRESULT XalUserToXboxSystemUser( +STDAPI XalUserToXboxSystemUser( _In_ XalUserHandle user, _Out_ Windows::Xbox::System::IUser^* systemUser ) noexcept; @@ -18,7 +18,7 @@ HRESULT XalUserToXboxSystemUser( /// /// The system user. /// The new user handle. -HRESULT XalAddXboxSystemUser( +STDAPI XalAddXboxSystemUser( _In_ Windows::Xbox::System::IUser^ systemUser, _Out_ XalUserHandle* user ) noexcept; diff --git a/Include/cpprestinclude/pplx/details/threadpool.hpp b/Include/cpprestinclude/pplx/details/threadpool.hpp index 283d5a09..9c56c0f8 100644 --- a/Include/cpprestinclude/pplx/details/threadpool.hpp +++ b/Include/cpprestinclude/pplx/details/threadpool.hpp @@ -16,7 +16,7 @@ * ==--== * =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ **/ -#include "pplx\threadpool.h" +#include "pplx/threadpool.h" #if defined(__ANDROID__) #include #include diff --git a/Include/cpprestinclude/pplx/threadpool.h b/Include/cpprestinclude/pplx/threadpool.h index 04d89515..c556eca3 100644 --- a/Include/cpprestinclude/pplx/threadpool.h +++ b/Include/cpprestinclude/pplx/threadpool.h @@ -44,6 +44,7 @@ #include #include #include "pplx/pplx.h" +#include "asio/io_service.hpp" #endif namespace crossplat { diff --git a/Include/xsapi-c/achievements_manager_c.h b/Include/xsapi-c/achievements_manager_c.h index 197f7a6b..853d28b8 100644 --- a/Include/xsapi-c/achievements_manager_c.h +++ b/Include/xsapi-c/achievements_manager_c.h @@ -157,7 +157,7 @@ STDAPI XblAchievementsManagerRemoveLocalUser( /// /// Checks whether a specific user has had its initial state synced. /// -/// Xbox Live User to check. +/// Xbox Live User to check. /// HRESULT return code for this API operation. If the user is not /// initialized, this function will return E_FAIL. STDAPI XblAchievementsManagerIsUserInitialized( @@ -260,7 +260,7 @@ STDAPI XblAchievementsManagerGetAchievementsByState( /// /// The Xbox User ID of the player. /// The UTF-8 encoded achievement ID as defined by Dev Center. -/// The completion percentage of the achievement to indicate progress. +/// The completion percentage of the achievement to indicate progress. /// Valid values are from 1 to 100. Set to 100 to unlock the achievement. /// Progress will be set by the server to the highest value sent /// HRESULT return code for this API operation. diff --git a/Include/xsapi-c/multiplayer_activity_c.h b/Include/xsapi-c/multiplayer_activity_c.h index 8bfb6505..17b102e8 100644 --- a/Include/xsapi-c/multiplayer_activity_c.h +++ b/Include/xsapi-c/multiplayer_activity_c.h @@ -12,9 +12,11 @@ extern "C" { /// -/// Different platforms on which a title can be activated. +/// Enumerates the platforms on which a title can be activated. /// -enum class XblMultiplayerActivityPlatform : uint32_t +/// +/// + enum class XblMultiplayerActivityPlatform : uint32_t { /// /// Unknown device. @@ -27,17 +29,17 @@ enum class XblMultiplayerActivityPlatform : uint32_t XboxOne = 1, /// - /// WindowsOneCore (UWP & GameCore on PC). + /// Windows OneCore (Universal Windows Platform [UWP] and {% term projname %} on PC). /// WindowsOneCore = 2, /// - /// Win32 based device. + /// Win32-based device. /// Win32 = 3, /// - /// Scarlett device. + /// {% term scarlett %} device. /// Scarlett = 4, @@ -68,34 +70,46 @@ enum class XblMultiplayerActivityPlatform : uint32_t }; /// -/// Setting which dictates who can join a player's current activity. +/// Enumerates who can join a player's current activity. /// +/// +/// +/// +/// To see how this enumeration is used, see "Setting an activity" in +/// the Activities section +/// of Example code for Multiplayer Activity. +/// enum class XblMultiplayerActivityJoinRestriction : uint32_t { /// - /// Public. + /// Everyone. /// Public = 0, /// - /// InviteOnly. + /// Only invited players. /// InviteOnly = 1, /// - /// Followed. + /// Only followed players. /// Followed = 2 }; /// -/// Different types of recent players encounters. +/// Enumerates types of recent player encounters. /// +/// +/// +/// To see how this enumeration is used, see "Setting an activity" in +/// the Activities section +/// of Example code for Multiplayer Activity. +/// enum class XblMultiplayerActivityEncounterType : uint32_t { /// - /// Default. - /// This has no inherent meaning - it is up to the title to interpret this value appropriately. + /// No inherent meaning. The title interprets this value as appropriate. /// Default = 0, @@ -111,60 +125,73 @@ enum class XblMultiplayerActivityEncounterType : uint32_t }; /// -/// Information about a User's activity playing a certain title. +/// Information about a player's activity while playing a title. /// +/// +/// +/// +/// To see how this enumeration is used, see "Setting an activity" and "Getting activities" in +/// the Activities section +/// of Example code for Multiplayer Activity. +/// typedef struct XblMultiplayerActivityInfo { /// - /// Xbox User ID the activity info belongs to. + /// The Xbox user ID to which the activity info belongs. /// uint64_t xuid; /// - /// The connection string is passed to the connecting client in order to join a game. - /// Typically contains information like the server IP address. - /// When querying activities, this field will only be populated if the activity is public - /// or if the user is following the caller. + /// The connection string passed to the connecting client to join a game; + /// typically contains information such as the server IP address. + /// When querying activities, this field is populated only if the activity is public + /// or the player is following the caller. /// _Field_z_ const char* connectionString; /// - /// Setting which dictates who can join the player's current activity. + /// Specifies who can join the player's current activity. /// XblMultiplayerActivityJoinRestriction joinRestriction; /// - /// The maximum number of players who can join the players current activity. - /// A value of 0 indicates that maxPlayers is not set. + /// The maximum number of players who can join the player's current activity. + /// A value of 0 indicates that no players can join. /// size_t maxPlayers; /// - /// The number of players already playing with the user in a multiplayer activity. - /// A value of 0 indicates that currentPlayers is not set. + /// The number of players already playing with the player in a multiplayer activity. + /// A value of 0 indicates that no other players are currently playing. /// size_t currentPlayers; /// /// A unique identifier to group all users playing as part of the same activity. - /// Set by title when the activity is created. + /// The title sets this identifier when it creates the activity. /// _Field_z_ const char* groupId; /// - /// The platform on which that activity is happening. - /// When setting an activity, the platform will be automatically inferred (this field will be ignored). + /// The platform on which the activity is happening. + /// When setting an activity, the platform is automatically inferred; this field is ignored. /// XblMultiplayerActivityPlatform platform; } XblMultiplayerActivityInfo; /// -/// Struct describing a recent player encounter. +/// Describes a recent player encounter. /// +/// +/// +/// To see how this enumeration is used, see "Updating recent players" in +/// the Recent players section +/// of Example code for Multiplayer Activity. +/// typedef struct XblMultiplayerActivityRecentPlayerUpdate { /// - /// Xuid of the encountered user. + /// Xbox user ID of the encountered user. /// uint64_t xuid; @@ -175,17 +202,17 @@ typedef struct XblMultiplayerActivityRecentPlayerUpdate } XblMultiplayerActivityRecentPlayerUpdate; /// -/// Appends to a user's list of recent players. -/// If an encountered user is already in the list, it updates the existing recent player entry. +/// Appends to a player's list of recent players. +/// If an encountered user is already in the list, it updates the existing recent-player entry. /// -/// Xbox live context for the local user. -/// List of XblMultiplayerActivityRecentPlayerUpdates to append to the recent players list. -/// Size of the updates array. +/// {% term xbox-live %} context for the local user. +/// List of objects to append to the recent players list. +/// Size of the `updates` array. /// HRESULT return code for this API operation. /// -/// This call only affects the caller's recent players list (unidirectional). -/// Recent player updates will be batched and uploaded by XSAPI using the background queue provided during XblInitialize. -/// To force an immediate flush, call XblMultiplayerActivityFlushRecentPlayersAsync. +/// This call is unidirectional; it only affects the caller's recent-players list.

+/// Recent-player updates are batched and uploaded by XSAPI by using the background queue provided during `XblInitialize`.

+/// To force an immediate flush, call . ///
STDAPI XblMultiplayerActivityUpdateRecentPlayers( _In_ XblContextHandle xblContext, @@ -194,16 +221,19 @@ STDAPI XblMultiplayerActivityUpdateRecentPlayers( ) XBL_NOEXCEPT; /// -/// Immediately writes any pending recent players updates to XboxLive service. -/// Note that calling this API is optional; updates will automatically be uploaded periodically on a background task queue. +/// Immediately writes any pending recent-players updates to {% term xbox-live %}. /// -/// Xbox live context for the local user. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// When this API is used, the upload will happen on the task queue supplied in this call. -/// The result of the asynchronous operation can be obtained by calling -/// inside the AsyncBlock callback or after the AsyncBlock is complete. +/// Calling this API is optional; updates are periodically uploaded from a background task queue.

+/// When this API is used, the upload happens on the task queue supplied in this call.

+/// To get the result of the asynchronous operation, call +/// inside the `XAsyncBlock` callback or after `XAsyncBlock` is complete.

+/// To see how this enumeration is used, see the +/// Recent players section +/// of Example code for Multiplayer Activity. ///
STDAPI XblMultiplayerActivityFlushRecentPlayersAsync( _In_ XblContextHandle xblContext, @@ -213,14 +243,26 @@ STDAPI XblMultiplayerActivityFlushRecentPlayersAsync( /// /// Sets or updates the multiplayer activity for a local user. /// -/// Xbox live context for the local user. -/// Struct describing the activity. -/// The "maxPlayers" and "currentPlayers" fields are optional and will be ignored if they are set to 0. -/// The value of the "platform" field will be ignored and XSAPI will automatically set the activity as -/// being on the correct local platform. -/// True if the activity should be joinable on other platforms supported by the title. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// Information about the activity. +/// The `maxPlayers` and `currentPlayers` fields are optional; they are ignored if set to 0. +/// The value of the `platform` field is ignored; XSAPI automatically sets the activity +/// on the appropriate local platform. +/// +/// True if the activity should be joinable on other platforms supported by the title. +/// +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. +/// +/// When a title starts or joins a multiplayer experience, it should create an +/// activity. Doing this lets both the shell and other players in your title +/// see the player's activity. Your title can let other players join the game +/// in progress. If a player wants to join an activity for your title and it is not +/// running, it is activated and the connection string is passed to it.

+/// To see how this function is used, see "Setting an activity" in +/// the Activities section +/// of Example code for Multiplayer Activity. +///
STDAPI XblMultiplayerActivitySetActivityAsync( _In_ XblContextHandle xblContext, _In_ const XblMultiplayerActivityInfo* activityInfo, @@ -231,15 +273,20 @@ STDAPI XblMultiplayerActivitySetActivityAsync( /// /// Get the multiplayer activity for a set of users. You can query at most 30 users with each call. /// -/// Xbox live context for the local user. -/// List of Xbox User IDs for whom to get multiplayer activity. -/// Size of the xuids array. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// List of Xbox user IDs for whom to get multiplayer activity. +/// Size of the `xuids` array. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// /// To get the result, call and -/// inside the XAsyncBlock callback or -/// after the async operation is complete. +/// inside the `XAsyncBlock` callback or +/// after the async operation is complete.

+/// To see how this function is used, see "Getting activities" in +/// the Activities section +/// of Example code for Multiplayer Activity.

+/// For more information about multiplayer activities, see +/// Activities. ///
STDAPI XblMultiplayerActivityGetActivityAsync( _In_ XblContextHandle xblContext, @@ -251,9 +298,18 @@ STDAPI XblMultiplayerActivityGetActivityAsync( /// /// Gets the buffer size needed to store the results of a get activity call. /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The size in bytes for the result buffer. /// HRESULT return code for this API operation. +/// +/// To see how this function is used, see "Getting activities" in +/// the Activities section +/// of Example code for Multiplayer Activity.

+/// For more information about multiplayer activities, see +/// Activities. +///
+/// +/// STDAPI XblMultiplayerActivityGetActivityResultSize( _In_ XAsyncBlock* async, _Out_ size_t* resultSizeInBytes @@ -262,15 +318,25 @@ STDAPI XblMultiplayerActivityGetActivityResultSize( /// /// Gets the results for a successful get activity call. /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The size of the result buffer. /// Use to get the required buffer size. -/// A caller allocated byte buffer to write result into. -/// Strongly typed array ofXblMultiplayerActivityInfo that points into buffer. -/// Do not free this as its lifecycle is tied to buffer. -/// The number of entries in the ptrToBufferResults array. -/// The number of bytes in the provided buffer that were used. +/// A caller-allocated byte buffer that receives the result. +/// Strongly typed array of that +/// points into `buffer`. Do not free this array. Its lifecycle is tied to `buffer`. +/// +/// The number of entries in the `ptrToBufferResults` array. +/// The number of bytes in `buffer` that were used. /// HRESULT return code for this API operation. +/// +/// To get the size of the buffer that you need to store the results, call the +/// function.

+/// To see how this function is used, see "Getting activities" in +/// the Activities section +/// of Example code for Multiplayer Activity.

+/// For more information about multiplayer activities, see +/// Activities. +///
STDAPI XblMultiplayerActivityGetActivityResult( _In_ XAsyncBlock* async, _In_ size_t bufferSize, @@ -281,16 +347,21 @@ STDAPI XblMultiplayerActivityGetActivityResult( ) XBL_NOEXCEPT; /// -/// Clear the multiplayer activity for the local user. +/// Clears the multiplayer activity for the local user. /// -/// Xbox live context for the local user. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// Titles should delete the activity for a user as soon as they leave the multiplayer activity. -/// A user's activity will be automatically cleared by a presence check if the title fails to delete it manually. -/// The result of the asynchronous operation can be obtained by calling -/// inside the AsyncBlock callback or after the AsyncBlock is complete. +/// Titles should delete the activity for a user as soon as they leave the multiplayer activity.

+/// If the title does not delete a user's activity, it is automatically cleared by a presence check.

+/// To get the result of the asynchronous operation, call +/// inside the `XAsyncBlock` callback or after `XAsyncBlock` is complete.

+/// To see how this function is used, see "Deleting an activity" in +/// the Activities section +/// of Example code for Multiplayer Activity.

+/// For more information about multiplayer activities, see +/// Activities. ///
STDAPI XblMultiplayerActivityDeleteActivityAsync( _In_ XblContextHandle xblContext, @@ -298,21 +369,26 @@ STDAPI XblMultiplayerActivityDeleteActivityAsync( ) XBL_NOEXCEPT; /// -/// Sends invites to specified Xuids to join the callers current activity. +/// Sends invites to Xbox user IDs to join the caller's current activity. /// -/// Xbox live context for the local user. -/// List of Xbox User IDs to invite. -/// Size of the xuids array. -/// If the title is configured for cross platform invites, -/// setting this to true will send an invitation to all platform endpoints the title supports. -/// If set to false, the invite will only be sent to the platform of the sender. -/// If cross platform invites are not configured, the invite will always be sent to just the sender's platform. -/// (Optional) Connection string that the peer will use to join the game. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// List of Xbox user IDs to invite. +/// Size of the `xuids` array. +/// If the title is configured for cross-platform invites, +/// setting this parameter to true sends an invite to all platform endpoints that the title supports. +/// If set to false, the invite is sent to the sender's platform platform only. +/// If cross-platform invites are not configured, the invite is always sent to the sender's platform only. +/// (Optional) Connection string that the peer uses to join the game. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// The result of the asynchronous operation can be obtained by calling -/// inside the AsyncBlock callback or after the AsyncBlock is complete. +/// To get the result of the asynchronous operation, call +/// inside the `XAsyncBlock` callback or after `XAsyncBlock` is complete.

+/// To see how this function is used, see "Sending invites" in +/// the Invites section +/// of Example code for Multiplayer Activity.

+/// For more information about multiplayer activities, see +/// Activities. ///
STDAPI XblMultiplayerActivitySendInvitesAsync( _In_ XblContextHandle xblContext, @@ -325,8 +401,13 @@ STDAPI XblMultiplayerActivitySendInvitesAsync( #if HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL /// -/// Contains information about received game multiplayer activity invites. +/// Describes multiplayer activity invites. /// +/// +/// +/// For more information about multiplayer activities, see +/// Activities. +/// typedef struct XblMultiplayerActivityInviteData { /// @@ -340,7 +421,7 @@ typedef struct XblMultiplayerActivityInviteData uint64_t senderXuid; /// - /// Sender Image URL. + /// URL of the sender's gamerpic. /// _Field_z_ const char* senderImageUrl; @@ -350,20 +431,20 @@ typedef struct XblMultiplayerActivityInviteData char senderGamertag[XBL_GAMERTAG_CHAR_SIZE]; /// - /// The UTF-8 encoded modern gamertag for the player. + /// The UTF-8 encoded modern gamertag of the player. /// Not guaranteed to be unique. /// char senderModernGamertag[XBL_MODERN_GAMERTAG_CHAR_SIZE]; /// - /// The UTF-8 encoded suffix appended to modern gamertag to ensure uniqueness. - /// May be empty in some cases. + /// The UTF-8 encoded suffix appended to the modern gamertag to ensure uniqueness. + /// Can be empty in some cases. /// char senderModernGamertagSuffix[XBL_MODERN_GAMERTAG_SUFFIX_CHAR_SIZE]; /// /// The UTF-8 encoded unique modern gamertag and suffix. - /// Format will be "modernGamertag#suffix". + /// Format is "modernGamertag#suffix". /// Guaranteed to be no more than 16 rendered characters. /// char senderUniqueModernGamertag[XBL_UNIQUE_MODERN_GAMERTAG_CHAR_SIZE]; @@ -374,13 +455,13 @@ typedef struct XblMultiplayerActivityInviteData _Field_z_ const char* titleName; /// - /// Url to the title image used in the invite. + /// URL of the title image used in the invite. /// _Field_z_ const char* titleImageUrl; /// - /// The connection string is passed to the connecting client in order to join a game. - /// Typically contains information like the server IP address. + /// Connection string to pass to the connecting client so that it can join a game. + /// Typically contains information such as the server IP address. /// _Field_z_ const char* connectionString; @@ -396,7 +477,11 @@ typedef struct XblMultiplayerActivityInviteData /// Data needed by the invitee to respond to a game invite. /// Client context provided when the handler was added. /// -/// The lifetime of the XblMultiplayerActivityInviteData object is limited to the callback. +/// +/// The lifetime of the object is limited to the callback.

+/// For more information about multiplayer activities, see +/// Activities. +///
typedef void CALLBACK XblMultiplayerActivityInviteHandler( _In_ const XblMultiplayerActivityInviteData* data, _In_opt_ void* context @@ -405,10 +490,16 @@ typedef void CALLBACK XblMultiplayerActivityInviteHandler( /// /// Registers an event handler for multiplayer activity invites. /// -/// Xbox live context for the local user. +/// {% term xbox-live %} context for the local user. /// The callback function that receives notifications. -/// Caller context to be passed the handler. -/// An XblFunctionContext object that can be used to unregister the event handler. +/// Caller context to be passed to the handler. +/// An `XblFunctionContext` object that can be used to unregister the event handler. +/// +/// To unregister an event handler for multiplayer activity invites, call the +/// function.

+/// For more information about multiplayer activities, see +/// Activities. +///
STDAPI_(XblFunctionContext) XblMultiplayerActivityAddInviteHandler( _In_ XblContextHandle xblContextHandle, _In_ XblMultiplayerActivityInviteHandler* handler, @@ -418,9 +509,15 @@ STDAPI_(XblFunctionContext) XblMultiplayerActivityAddInviteHandler( /// /// Unregisters an event handler for multiplayer activity invites. /// -/// Xbox live context for the local user. -/// The XblFunctionContext object that was returned when the event handler was registered. +/// {% term xbox-live %} context for the local user. +/// The `XblFunctionContext` object that was returned when the event handler was registered. /// +/// +/// To register an event handler for multiplayer activity invites, call the +/// function.

+/// For more information about multiplayer activities, see +/// Activities. +///
STDAPI XblMultiplayerActivityRemoveInviteHandler( _In_ XblContextHandle xblContextHandle, _In_ XblFunctionContext token diff --git a/Include/xsapi-c/multiplayer_c.h b/Include/xsapi-c/multiplayer_c.h index 7527f701..c265fc91 100644 --- a/Include/xsapi-c/multiplayer_c.h +++ b/Include/xsapi-c/multiplayer_c.h @@ -12,9 +12,10 @@ extern "C" { /// -/// Defines values used to indicate the state of a tournament game. -/// DEPRECATED. It will be removed in a future release +/// Defines values that indicate the state of a tournament game. +/// DEPRECATED. This enumeration will be removed in a future release. /// +/// enum class XblTournamentGameResult : uint32_t { /// @@ -49,13 +50,14 @@ enum class XblTournamentGameResult : uint32_t }; /// -/// Defines values used to indicate the arbitration state of a tournament game. -/// DEPRECATED. It will be removed in a future release +/// Defines values that indicate the arbitration state of a tournament game. +/// DEPRECATED. This enumeration will be removed in a future release. /// +/// enum class XblTournamentArbitrationState : uint32_t { /// - /// No arbitration state set. + /// No arbitration state is set. /// None, @@ -65,25 +67,27 @@ enum class XblTournamentArbitrationState : uint32_t Completed, /// - /// The match was canceled, for example in the case of forfeiting. + /// The match was canceled, such as in the case of forfeiting. /// Canceled, /// - /// The match begun, but no players or servers reported results in time before the arbitration deadline. + /// The match began, but no players or servers reported results before the arbitration deadline. /// NoResults, /// - /// Some results were received, and results were compiled based on this incomplete data. + /// Some results were received, and results were compiled based on the incomplete data. /// PartialResults }; /// -/// Defines values used to indicate the source for a tournament game state. -/// DEPRECATED. It will be removed in a future release +/// Defines values that indicate the source for a tournament game state. +/// DEPRECATED. This enumeration will be removed in a future release. /// +/// +/// enum class XblTournamentGameResultSource : uint32_t { /// @@ -92,7 +96,7 @@ enum class XblTournamentGameResultSource : uint32_t None, /// - /// Game result source is from client arbitration submit. + /// Game result is determined by client arbitration. /// Arbitration, @@ -108,47 +112,52 @@ enum class XblTournamentGameResultSource : uint32_t }; /// -/// Defines values used to indicate the status of a tournament game result. -/// DEPRECATED. It will be removed in a future release +/// Defines values that indicate the status of a tournament game result. +/// DEPRECATED. This enumeration will be removed in a future release. /// +/// +/// enum class XblTournamentArbitrationStatus : uint32_t { /// - /// Occurs before arbitrationStartTime. + /// The system time is before the arbitration start time (`ArbitrationStartTime`), which is also the start time for the match. /// Waiting, /// - /// Occurs after arbitrationStartTime and at least one user has gone active. + /// The system time is after the arbitration start time (`ArbitrationStartTime`), and at least one player has become active. /// InProgress, /// - /// The user has reported results and his role in the arbitration process is now done. - /// Occurs either after (arbitrationForfeitTime and no players have joined), (arbitration succeeded), or (arbitrationFinishTime). + /// The player reported results, so the player's role in the arbitration process is now done. + /// Occurs when arbitration succeeds, after the arbitration forfeit time (`ArbitrationStartTime` + /// plus the `ForfeitTimeout` delta) if no players have joined, or after arbitration time-out + /// (`ArbitrationStartTime` plus the `ArbitrationTimeout` delta). /// Complete, /// - /// The user has gone active at least once and is now participating in the match. + /// The player has become active at least once and is now participating in the match. /// Playing, /// - /// The user was not able to upload results before the arbitrationTimeout deadline. + /// The player was not able to upload results before arbitration time-out (`ArbitrationStartTime` plus the `ArbitrationTimeout` delta). /// Incomplete, /// - /// The status is "Joining" until both the XblTournamentArbitrationStatus is "InProgress" and the member is active. + /// The system time is after the arbitration start time (`ArbitrationStartTime`), but the player is not yet active. /// Joining }; /// -/// Defines values used to indicate the team session registration state for a tournament. -/// DEPRECATED. It will be removed in a future release +/// Defines values that indicate the team session registration state for a tournament. +/// DEPRECATED. This enumeration will be removed in a future release. /// +/// enum class XblTournamentRegistrationState : uint32_t { /// @@ -177,34 +186,35 @@ enum class XblTournamentRegistrationState : uint32_t Registered, /// - /// The team has completed its participation in the Tournament. + /// The team completed its participation in the tournament. /// Completed }; /// -/// Defines values used to indicate the reason why the team in under selected tournament registration state. +/// Defines values that indicate reasons why the team is under selected tournament registration state. /// DEPRECATED. It will be removed in a future release /// +/// enum class XblTournamentRegistrationReason : uint32_t { /// - /// The team registration reason is unknown. + /// The reason is unknown. /// Unknown, /// - /// The registration for this tournament has been closed. + /// The registration for this tournament is closed. /// RegistrationClosed, /// - /// One of the team members have already been registered for this tournament. + /// One of the team members is already registered for this tournament. /// MemberAlreadyRegistered, /// - /// The tournament has reached its max team registration limit and is now full. + /// The tournament has reached its team registration limit. /// TournamentFull, @@ -214,41 +224,55 @@ enum class XblTournamentRegistrationReason : uint32_t TeamEliminated, /// - /// The tournament has been completed. + /// The tournament is completed. /// TournamentCompleted }; /// -/// Defines values used to indicate status for visibility or accessibility of a session. +/// Defines values that indicate the visibility or accessibility of a session. /// +/// +/// +/// +/// +/// +/// +/// +/// +/// For more information, +/// see Game session visibility and joinability +/// and the Visibility and joinability section +/// of Multiplayer Session advanced topics. +/// enum class XblMultiplayerSessionVisibility : uint32_t { /// - /// Unknown. + /// The status is unknown. /// Unknown, /// - /// Ignore the SessionVisibility filter. + /// Ignore the session visibility filter. /// Any, /// - /// The session is private and it's not visible to other users who aren't in the session. - /// Joining a visible or private session is a HTTP_E_STATUS_FORBIDDEN (403). + /// The session is private and is not visible to players who aren't in the session. + /// Attempting to join causes the service to return HTTP_E_STATUS_FORBIDDEN (403). /// PrivateSession, /// - /// The session is visible to other users who aren't in the session, but the session is read-only to them and they can't join. - /// Joining an visible causes the service to return HTTP_E_STATUS_BAD_REQUEST (400). + /// The session is visible to players who aren't in the session, but the session is + /// read-only to them and they can't join. + /// Attempting to join causes the service to return HTTP_E_STATUS_BAD_REQUEST (400). /// Visible, /// /// The session is full and cannot be joined by anyone. - /// Joining an open but full session causes the service to return HTTP_E_STATUS_BAD_REQUEST (400). + /// Attempting to join causes the service to return HTTP_E_STATUS_BAD_REQUEST (400). /// Full, @@ -259,9 +283,59 @@ enum class XblMultiplayerSessionVisibility : uint32_t }; /// -/// Defines values used to indicate status for the initialization stage of a session during managed initialization. +/// Defines values that indicate the initialization stage of a session during managed initialization. /// +/// +/// +/// For more information about managed initialization, see the "Managed initialization" section +/// of Target session initialization and QoS. +/// enum class XblMultiplayerInitializationStage : uint32_t +{ + /// + /// Stage not known. + /// + Unknown, + + /// + /// Stage not set. + /// + None, + + /// + /// Joining stage. Typically, matchmaking creates a session and adds users to the session. + /// The client has until the joining timeout to join the session during this stage. + /// + Joining, + + /// + /// Measuring stage. Quality of Service (QoS) measurement happens during this stage. + /// If the title is manually managing QoS, the title handles this stage. + /// Otherwise, the {% term xbox-live-party %} system handles this stage + /// when calling `RegisterGameSession` or `RegisterMatchSession`. + /// + Measuring, + + /// + /// Evaluating stage. If `externalEvaluation` is false, this stage is skipped. + /// Otherwise, the title does its own evaluation. + /// + Evaluating, + + /// + /// Failed stage. If the first initilization episode didn't succeed, the session can't be initialized. + /// + Failed +}; + +/// +/// Defines values that indicate the type of metric used to measure matchmaking Quality of Service (QoS) for a session. +/// +/// +/// +/// For more information, see Target session initialization and QoS. +/// +enum class XblMultiplayerMetrics : uint32_t { /// /// Unknown. @@ -269,73 +343,31 @@ enum class XblMultiplayerInitializationStage : uint32_t Unknown, /// - /// Initialization stage not set. - /// - None, - - /// - /// Joining initialization stage. - /// Typically matchmaking creates session and puts users into it. - /// SPC has up to the joining timeout to join the session during this phase. - /// - Joining, - - /// - /// Measuring initialization stage. Stage where QoS measurement happens. - /// If the title is manually managing QoS, then title will do this stage. - /// Otherwise the Party system will do this when calling RegisterGameSession or RegisterMatchSession. - /// - Measuring, - - /// - /// Evaluating initialization stage. - /// If auto evaluate is true, then this stage is skipped. - /// Otherwise the title will do its own evaluation. - /// This stage is applied even with the SPC is managing QoS. - /// - Evaluating, - - /// - /// Failed initialization stage. - /// If episode 1 didn't succeed, then goes into failed permanently. - /// - Failed -}; - -/// -/// Defines values used to indicate the type of metric used to measure matchmaking QoS for a session. -/// -enum class XblMultiplayerMetrics : uint32_t -{ - /// - /// Unknown metric. - /// - Unknown, - - /// - /// Bandwidth host selection metric. + /// Upstream (peer-to-host) bandwidth. /// BandwidthUp, /// - /// Bandwidth down host selection metric. + /// Downstream (host-to-peer) bandwidth. /// BandwidthDown, /// - /// Bandwidth host selection metric. + /// Combined bandwidth. /// Bandwidth, /// - /// Latency host selection metric. + /// Upstream (peer-to-host) latency. /// Latency }; /// -/// Defines values used to indicate the current network address translation (NAT) settings for a console connecting to Xbox Live. +/// Defines values that indicate the current network address translation (NAT) settings for +/// a console connecting to {% term xbox-live %}. /// +/// enum class XblNetworkAddressTranslationSetting : uint32_t { /// @@ -344,24 +376,29 @@ enum class XblNetworkAddressTranslationSetting : uint32_t Unknown, /// - /// Can connect with any other consoles regardless of their NAT setting. + /// Can connect with any consoles regardless of their NAT settings. /// Open, /// - /// Consoles using Moderate NAT settings can only connect with other consoles using Moderate or Open settings. + /// Can connect only with consoles that use Moderate or Open settings. /// Moderate, /// - /// Consoles using Strict NAT settings can only connect with other consoles using Open NAT settings. + /// Can connect only with consoles that use Open NAT settings. /// Strict }; /// -/// Defines values used to indicate types measurement failures for a session member on the network. +/// Defines values that indicate why Quality of Service (QoS) measurement failed during session initialization. /// +/// +/// +/// +/// For more information, see Target session initialization and QoS. +/// enum class XblMultiplayerMeasurementFailure : uint32_t { /// @@ -370,50 +407,56 @@ enum class XblMultiplayerMeasurementFailure : uint32_t Unknown, /// - /// This player has no measurement failure. + /// No measurement failure. /// None, /// - /// This player failed because timeout measurement test failed. + /// Measurement timed out. /// Timeout, /// - /// This player failed because latency measurement test failed. + /// Measurement of latency failed. /// Latency, /// - /// This player failed because bandwidth up measurement test failed. + /// Measurement of upstream (peer-to-host) bandwidth failed. /// BandwidthUp, /// - /// This player failed because bandwidth down measurement test failed. + /// Measurement of downstream (host-to-peer) bandwidth failed. /// BandwidthDown, /// - /// This player failed cause someone failed in their group failed. + /// Measurement failed for this player failed because measurement failed for another player in the group. /// Group, /// - /// This player failed due to a network error such as the user was unreachable. + /// Measurement failed due to a network error; for example, the player was unreachable. /// Network, /// - /// This player failed because your episode failed. - /// This likely happened because there wasn't enough users in the session. + /// Measurement failed because the initialization episode failed. + /// This likely happened because not enough users were in the session. /// Episode }; /// -/// Defines values used to indicate current status values for a session. +/// Defines values that indicate the current status of a session. /// +/// +/// +/// For more information, see +/// the Session user states section +/// of Multiplayer Session advanced topics. +/// enum class XblMultiplayerSessionStatus : uint32_t { /// @@ -422,53 +465,53 @@ enum class XblMultiplayerSessionStatus : uint32_t Unknown, /// - /// The session is active and there is at least one user. + /// At least one player is active in the session. /// Active, /// - /// The session is inactive. - /// This means no users in the session are active or all users left the session. + /// No players are active in the session or all players left the session. /// Inactive, /// - /// The session is reserved. - /// This means one for more users have not accepted the session invite. + /// One or more players have not accepted the session invite. /// Reserved }; /// -/// Defines values used to indicate restrictions on the users who can join a session. +/// Defines values that indicate restrictions on the users who can join a session. /// enum class XblMultiplayerSessionRestriction : uint32_t { /// - /// The unrecognized restriction type. + /// Unknown restriction type. /// Unknown, /// - /// Default value, no restriction. + /// No restrictions. /// None, /// - /// If "local", only users whose token's DeviceId matches someone else already in the session and "active": true. + /// Only players whose token `DeviceId` values match the `DeviceId` of a player + /// who is already in the session and active. /// Local, /// - /// If "followed", only local users (as defined above) and users who are followed by an + /// Only local players (as defined for `Local`) and players who are followed by an /// existing (not reserved) member of the session can join without a reservation. /// Followed }; /// -/// Defines values used to indicate status for a matchmaking request for a session. +/// Defines values that indicate the status of a matchmaking request for a session. /// +/// enum class XblMatchmakingStatus : uint32_t { /// @@ -477,54 +520,61 @@ enum class XblMatchmakingStatus : uint32_t Unknown, /// - /// Indicates the matchmaking search is not specified. - /// This status is optional and requires the clientMatchmaking capability. + /// The matchmaking search is not specified. + /// This status is optional and requires the `clientMatchmaking` capability. /// None, /// - /// Indicates the matchmaking search is still searching. + /// The matchmaking search is still searching. /// Searching, /// - /// Indicates the matchmaking search has expired. + /// The matchmaking search has expired. /// Expired, /// - /// Indicates the matchmaking search has found a session. + /// The matchmaking search found a session. /// Found, /// - /// Indicates the matchmaking search has been canceled. + /// The matchmaking search was canceled. /// Canceled }; /// -/// Defines values used to indicate status for member of a session. +/// Defines values that indicate the status of a member of a session. /// +/// +/// +/// enum class XblMultiplayerSessionMemberStatus : uint32_t { /// - /// Member is reserved for a specific Xbox User ID. - /// This specific member must join the session to fill the reservation. - /// If a reserved member doesn't join before the JoinTimeout they will be removed. + /// The member is reserved for a specific Xbox user ID. + /// The specified member must join the session to fill the reservation. + /// If a reserved member doesn't join before the end of `JoinTimeout` (in + /// the structure), the member is removed from the session. /// Reserved, /// /// The member is inactive in the current title. - /// The member may be active in another title as specified by ActiveTitleId. - /// If an inactive member doesn't mark themselves as Active within the MemberInactiveTimeout they will be removed from the session. + /// The member may be active in another title, as specified by `ActiveTitleId` in + /// the structure. + /// If an inactive member doesn't mark themselves as active before the end of `MemberInactiveTimeout` + /// (in the structure), the member is removed from the session. /// Inactive, /// /// When the shell launches the title to start a multiplayer game, the member is marked as ready. - /// If a ready member doesn't mark themselves as Active within the MemberReadyTimeout they will be marked as inactive. + /// If a ready member doesn't mark themselves as active before the end of `MemberReadyTimeout` (in + /// the structure), the member is marked as inactive. /// Ready, @@ -535,18 +585,20 @@ enum class XblMultiplayerSessionMemberStatus : uint32_t }; /// -/// Defines values used to indicate the mode used when creating or writing to a new Multiplayer service session. +/// Defines values that indicate the mode used when creating or writing to a multiplayer session. /// +/// +/// enum class XblMultiplayerSessionWriteMode : uint32_t { /// - /// Create a new multiplayer session. + /// Create a multiplayer session. /// Fails if the session already exists. /// CreateNew, /// - /// Either update or create a new session. + /// Either update or create a session. /// Doesn't care whether the session exists. /// UpdateOrCreateNew, @@ -559,14 +611,14 @@ enum class XblMultiplayerSessionWriteMode : uint32_t /// /// Updates an existing multiplayer session. - /// Fails with HTTP_E_STATUS_PRECOND_FAILED (HTTP status 412) if eTag on local session doesn't match eTag on server. + /// Fails with HTTP_E_STATUS_PRECOND_FAILED (HTTP status 412) if the ETag on the local session doesn't match the ETag on the server. /// Fails if the session does not exist. /// SynchronizedUpdate, }; /// -/// Defines values used to indicate the write status of a Multiplayer session. +/// Defines values that indicate the write status of a multiplayer session. /// enum class XblWriteSessionStatus : uint32_t { @@ -576,44 +628,45 @@ enum class XblWriteSessionStatus : uint32_t Unknown, /// - /// HTTP Result 403- User does not have proper permission to write a session. + /// User does not have permission to write to the session (HTTP status 403). /// AccessDenied, /// - /// HTTP Result 201- Write created session successfully. + /// The write operation created the session (HTTP status 201). /// Created, /// - /// HTTP Result 409- Conflict occurred during write about session document. + /// A conflict occurred during the write operation (HTTP status 409). /// Conflict, /// - /// HTTP Result 404- Session not found. + /// The session was not found (HTTP status 404). /// HandleNotFound, /// - /// HTTP Result 412- Session document is not the most recent. + /// The session was updated by another user (HTTP status 412). /// OutOfSync, /// - /// HTTP Result 204- Session deleted successfully. + /// The session was deleted successfully (HTTP status 204). /// SessionDeleted, /// - /// HTTP Result 200- Session updated successfully. + /// The session was updated successfully (HTTP status 200). /// Updated }; /// -/// Defines values used to indicate change types for a multiplayer session. +/// Defines values that indicate change types for a multiplayer session. /// +/// enum class XblMultiplayerSessionChangeTypes : uint32_t { /// @@ -632,12 +685,12 @@ enum class XblMultiplayerSessionChangeTypes : uint32_t HostDeviceTokenChange = 0x0002, /// - /// Changes to the stage of initialization has changed. + /// Changes to the stage of initialization. /// InitializationStateChange = 0x0004, /// - /// Changes to the matchmaking status (e.g. match found or expired). + /// Changes to the matchmaking status, such as match found or match expired. /// MatchmakingStatusChange = 0x0008, @@ -652,29 +705,29 @@ enum class XblMultiplayerSessionChangeTypes : uint32_t MemberStatusChange = 0x0020, /// - /// Changes to the XblMultiplayerJoinability of the session. + /// Changes to the joinability () of the session. /// SessionJoinabilityChange = 0x0040, /// - /// Changes within properties/custom. + /// Changes in the custom properties of the session. /// CustomPropertyChange = 0x0080, /// - /// Changes within member/properties/custom, for any of the members. + /// Changes in the custom properties of any of the members. /// MemberCustomPropertyChange = 0x0100, /// - /// Changes within tournament server properties. Such as next game, last game, or registration. - /// DEPRECATED. It will be removed in a future release + /// Changes in tournament server properties, such as next game, last game, or registration. + /// DEPRECATED. This value will be removed in a future release. /// TournamentPropertyChange = 0x0200, /// - /// Changes within arbitration server properties. Such as game results. - /// DEPRECATED. It will be removed in a future release + /// Changes in arbitration server properties, such as game results. + /// DEPRECATED. This value will be removed in a future release. /// ArbitrationPropertyChange = 0x0400 }; @@ -682,11 +735,13 @@ enum class XblMultiplayerSessionChangeTypes : uint32_t DEFINE_ENUM_FLAG_OPERATORS(XblMultiplayerSessionChangeTypes); /// -/// Defines values used to indicate mutable_role_setting types for a multiplayer role. +/// Defines values that indicate which multiplayer role settings are mutable. /// +/// /// -/// Only the session owner can modify role settings and only those that are set in XblMultiplayerRoleType::MutableRoleSettings. -/// The XblMutableRoleSettings can be set in the session template. +/// Only the session owner can modify role settings and only those that are set +/// in `XblMultiplayerRoleType::MutableRoleSettings`. +/// You can set `XblMutableRoleSettings` in the session template. /// enum class XblMutableRoleSettings : uint32_t { @@ -696,12 +751,12 @@ enum class XblMutableRoleSettings : uint32_t None = 0x0, /// - /// Allows you to set a max count for the multiplayer role. + /// Allows you to set the maximum number of players that can fill the role. /// Max = 0x1, /// - /// Allows you to set a target count for the multiplayer role. + /// Allows you to set the target number of players that should fill the role. /// Target = 0x2 }; @@ -713,8 +768,9 @@ DEFINE_ENUM_FLAG_OPERATORS(XblMutableRoleSettings); /// /// Represents a reference to a tournament reference. -/// DEPRECATED. It will be removed in a future release +/// DEPRECATED. This structure will be removed in a future release. /// +/// typedef struct XBL_DEPRECATED XblTournamentReference { /// @@ -728,7 +784,7 @@ typedef struct XBL_DEPRECATED XblTournamentReference _Null_terminated_ char TournamentId[XBL_GUID_LENGTH]; /// - /// The organizer name of the tournament. + /// The name of the tournament organizer. /// _Null_terminated_ char Organizer[XBL_TOURNAMENT_REFERENCE_ORGANIZER_LENGTH]; @@ -740,8 +796,8 @@ typedef struct XBL_DEPRECATED XblTournamentReference /// -/// The result of a multiplayer game. -/// DEPRECATED. It will be removed in a future release +/// Represents the result of a multiplayer game. +/// DEPRECATED. This structure will be removed in a future release. /// typedef struct XBL_DEPRECATED XblTournamentGameResultWithRank { @@ -751,19 +807,19 @@ typedef struct XBL_DEPRECATED XblTournamentGameResultWithRank XblTournamentGameResult Result; /// - /// The ranking of the result. Only applies when result is XblTournamentGameResult::Rank. + /// The ranking of the result. Applies only when `Result` is `XblTournamentGameResult::Rank`. /// uint64_t Ranking; } XblTournamentGameResultWithRank; /// -/// A team's result for a multiplayer game. -/// DEPRECATED. It will be removed in a future release +/// Represents a team result for a multiplayer game. +/// DEPRECATED. This structure will be removed in a future release. /// typedef struct XBL_DEPRECATED XblTournamentTeamResult { /// - /// Name of the team that the result is for. + /// Name of the team. /// const char* Team; @@ -778,27 +834,32 @@ typedef struct XBL_DEPRECATED XblTournamentTeamResult } XblTournamentTeamResult; /// -/// Represents requirements that apply to each connection between a host candidate and session members. +/// Represents requirements for each connection between a host candidate and session members. /// +/// +/// +/// +/// For more information, see Target session initialization and QoS. +/// typedef struct XblMultiplayerPeerToHostRequirements { /// - /// The maximum latency, in milliseconds, for the peer to host connection. + /// The maximum latency, in milliseconds, of the upstream (peer-to-host) connection. /// uint64_t LatencyMaximum; /// - /// The minimum bandwidth down in kilobits per second for the peer to host connection. + /// The minimum bandwidth, in kilobits per second, of the downstream (host-to-peer) connection. /// uint64_t BandwidthDownMinimumInKbps; /// - /// The minimum bandwidth up in kilobits per second for the peer to host connection. + /// The minimum bandwidth, in kilobits per second, of the upstream (peer-to-host) connection. /// uint64_t BandwidthUpMinimumInKbps; /// - /// Indicates which metric was used to select the host. + /// The metric used to select the host. /// XblMultiplayerMetrics HostSelectionMetric; } XblMultiplayerPeerToHostRequirements; @@ -806,234 +867,258 @@ typedef struct XblMultiplayerPeerToHostRequirements /// /// Represents requirements for a connection between session members. /// +/// +/// typedef struct XblMultiplayerPeerToPeerRequirements { /// - /// The maximum latency, in milliseconds, for the peer to peer connection. + /// The maximum latency, in milliseconds, for the peer-to-peer connection. /// uint64_t LatencyMaximum; /// - /// The minimum bandwidth in kilobits per second for the peer to peer connection. + /// The minimum bandwidth, in kilobits per second, for the peer-to-peer connection. /// uint64_t BandwidthMinimumInKbps; } XblMultiplayerPeerToPeerRequirements; /// -/// Used to configure requirements and initialize a new Multiplayer session. +/// Represents requirements for a new Multiplayer service session. /// +/// +/// typedef struct XblMultiplayerMemberInitialization { /// - /// Timeout in milliseconds for the first stage of the QoS process which is the joining stage. + /// Maximum time, in milliseconds, for the joining stage of the Quality of Service (QoS) process. /// uint64_t JoinTimeout; /// - /// Timeout in milliseconds for the measurement stage of the QoS process. + /// Maximum time, in milliseconds, for the measurement stage of the QoS process. /// uint64_t MeasurementTimeout; /// - /// Timeout in milliseconds for the evaluation stage of the QoS process. + /// Maximum time, in milliseconds, for the evaluation stage of the QoS process. /// uint64_t EvaluationTimeout; /// - /// This is an optional evaluate stage for title. The title can do evaluation when set to true. + /// When set to true, indicates that the title performs the evaluation stage. /// bool ExternalEvaluation; /// - /// Defaults to 2. Must be between 1 and maxMemberCount. Only applies to initialization episode zero. + /// Minimum number of members for the session. Defaults to 2. Must be between 1 and `maxMemberCount`. + /// Applies only to the joining stage. /// uint32_t MembersNeededToStart; } XblMultiplayerMemberInitialization; /// -/// Represents the capabilities of a multiplayer session. +/// Represents the capabilities of a Multiplayer service session. /// +/// +/// /// -/// Session capabilities are boolean values that are optionally set in the session template. -/// If no capabilities are needed, an empty SessionCapabilities object should be in the template -/// to prevent capabilities from being specified on session creation, unless the title -/// requires dynamic session capabilities. +/// Session capabilities are optional Boolean values that are set in the session template. +/// If no capabilities are needed, an empty `SessionCapabilities` object should be in the template +/// to prevent capabilities from being specified at session creation, unless the title +/// requires dynamic session capabilities.

+/// For more information, see the Session capabilities +/// section of Multiplayer Session advanced topics. ///
typedef struct XblMultiplayerSessionCapabilities { /// - /// If false, the session can't enable any metrics and the session members can not set their SecureDeviceAddress. + /// Indicates whether a session can enable metrics and session members can set `secureDeviceAddress`. + /// If false, the session can't enable any metrics, and session members can't set `secureDeviceAddress`. /// bool Connectivity; /// - /// True if team capability is set on the session for a tournament. - /// DEPRECATED. It will be removed in a future release + /// If true, team capability is set on the session for a tournament. + /// DEPRECATED. This member will be removed in a future release. /// XBL_DEPRECATED bool Team; /// - /// True if arbitration capability is set on the session for a tournament. - /// DEPRECATED. It will be removed in a future release + /// If true, arbitration capability is set on the session for a tournament. + /// DEPRECATED. This member will be removed in a future release. /// XBL_DEPRECATED bool Arbitration; /// - /// By default (if false), active users are required to remain online playing the title, - /// otherwise they get demoted to inactive status. - /// Setting this flag to true disables this check so that members stay active indefinitely. + /// If false (the default value), active users are required to remain online playing the title. + /// If they don't, they are demoted to inactive status. + /// Set this flag to true to enable session members to stay active indefinitely. /// bool SuppressPresenceActivityCheck; /// - /// Indicates whether the session represents actual gameplay, as opposed to setup/menu time like a lobby or matchmaking. - /// If true, then the session is in gameplay mode. + /// Indicates whether the session represents actual gameplay rather than time in setup or + /// a menu, such a lobby or during matchmaking. + /// If true, the session is in gameplay mode. /// bool Gameplay; /// - /// If true, this session can host a large number of users, which has impact on other session properties (see documentation). + /// If true, the session can host 101 to 1000 users, which affects other session features. + /// If false, the session can host 1 to 100 users. For more information, see + /// the Session size section + /// of Multiplayer Session advanced topics. /// bool Large; /// - /// If true, this connection is required to have a member be active (see documentation). + /// If true, a connection is required for a member to be marked as active. To enable session notifications + /// and detect disconnections, this member must be set to true. For more information, see + /// the Subscribe for MPSD session change notifications section + /// of Multiplayer tasks. /// bool ConnectionRequiredForActiveMembers; /// - /// Session supports calls from platforms without strong title identity. + /// If true, the session supports calls from platforms without strong title identity. /// This capability can't be set on large sessions. /// bool UserAuthorizationStyle; /// - /// Session supports cross play between PC and Xbox. + /// If true, the session supports crossplay between {% term platform_windows %} PC and Xbox. /// bool Crossplay; /// - /// True, if the session can be linked to a search handle for searching. + /// If true, the session can be linked to a search handle for searching. /// bool Searchable; /// - /// If you have user_authorization_style set, then in order to be searchable, you must have owners set. + /// If true, the session has owners. For a session to be searchable when `UserAuthorizationStyle` is + /// true, the session must have owners. /// bool HasOwners; } XblMultiplayerSessionCapabilities; /// -/// Represents constant values for a multiplayer session. +/// Represents constants for a multiplayer session. /// +/// +/// Session constants are set by the creator or by the session template only when a session is created. +/// typedef struct XblMultiplayerSessionConstants { /// - /// The maximum number of members in this session. + /// The maximum number of members in the session. /// uint32_t MaxMembersInSession; /// - /// The visibility of this session. + /// The visibility of the session. /// XblMultiplayerSessionVisibility Visibility; /// - /// A collection of Xbox User IDs indicating who initiated the session. (Optional) + /// A collection of Xbox user IDs indicating who initiated the session. (Optional) /// uint64_t* InitiatorXuids; /// - /// The number of entries in the InitiatorXuids array. + /// The number of entries in the `InitiatorXuids` array. /// size_t InitiatorXuidsCount; /// - /// JSON string that specify the custom constants for the session. - /// These can not be changed after the session is created. (Optional) + /// Any custom constants for the session, specified in a JSON string. + /// These constants can't be changed after the session is created. (Optional) /// const char* CustomJson; /// - /// JSON string that specify the cloud compute package constants for the session. - /// These can not be changed after the session is created. (Optional) + /// The Cloud Compute package constants for the session, specified in a JSON string. + /// These constants can't be changed after the session is created. (Optional) /// const char* SessionCloudComputePackageConstantsJson; /// - /// If a member reservation does not join within this timeout, then reservation is removed. + /// Maximum time, in milliseconds, for a member with a reservation to join the session. + /// If the member doesn't join within this time, the reservation is removed. /// uint64_t MemberReservedTimeout; /// - /// If an inactive member reservation does not become active within this timeout, then the inactive member is removed from the session. + /// Maximum time, in milliseconds, for an inactive member to become active. + /// If an inactive member doesn't become active within this time, the member is removed from the session. /// uint64_t MemberInactiveTimeout; /// - /// If a member who is marked as ready doesn't mark themselves as active within this timeout, then member becomes inactive. + /// Maximum time, in milliseconds, for a member who is marked as ready to become active. /// When the shell launches the title to start a multiplayer game, the member is marked as ready. + /// If a member who is marked as ready doesn't become active within this time, the member becomes inactive. /// uint64_t MemberReadyTimeout; /// - /// If the session is empty for this timeout, then the session is deleted. + /// Maximum time, in milliseconds, that the session can remain empty. + /// If no members join the session within this time, the session is deleted. /// uint64_t SessionEmptyTimeout; /// - /// Delta from start time representing the point at which results are finalized. - /// If no one has reported (client or server) at this point, we declare the match results incomplete. - /// DEPRECATED. It will be removed in a future release + /// Delta, in milliseconds, from start time that represents the time at which results are finalized. + /// If no one (client or server) has reported at this time, we declare the match results incomplete. + /// DEPRECATED. This member will be removed in a future release. /// XBL_DEPRECATED uint64_t ArbitrationTimeout; /// - /// Delta from start time representing the point at which, if the session has no active users, the match is canceled. - /// DEPRECATED. It will be removed in a future release + /// Delta, in milliseconds, from start time that represents the time at which, if the session has + /// no active users, the match is canceled. + /// DEPRECATED. This member will be removed in a future release. /// XBL_DEPRECATED uint64_t ForfeitTimeout; /// - /// Indicates if the title wants latency measured for determining connectivity. - /// Requires CapabilitiesConnectivity capability. + /// If true, indicates that the title wants latency measured to help determine connectivity. + /// Requires `capabilities.connectivity` to be true. /// bool EnableMetricsLatency; /// - /// Indicates if the title wants bandwidth down measured for determining connectivity. - /// Requires CapabilitiesConnectivity capability. + /// If true, indicates that the title wants downstream (host-to-peer) bandwidth measured to help + /// determine connectivity. Requires `capabilities.connectivity` to be true. /// bool EnableMetricsBandwidthDown; /// - /// Indicates if the title wants bandwidth up measured for determining connectivity. - /// Requires CapabilitiesConnectivity capability. + /// If true, indicates that the title wants upstream (peer-to-host) bandwidth measured to help + /// determine connectivity. Requires `capabilities.connectivity` to be true. /// bool EnableMetricsBandwidthUp; /// - /// Indicates if the title wants a custom measurement measured for determining connectivity. - /// Requires CapabilitiesConnectivity capability. + /// If true, indicates that the title wants a custom measurement to help determine connectivity. + /// Requires `capabilities.connectivity` to be true. /// bool EnableMetricsCustom; /// - /// If a member_initialization object is set, the session expects the client system or title - /// to perform initialization following session creation. - /// The timeouts and initialization stages are automatically tracked by - /// the session, including initial QoS if any metrics are set. - /// Will be null if it is not set. + /// If set, the session expects the client system or title to perform initialization after session creation. + /// Timeouts and initialization stages are automatically tracked by the session, including + /// initial Quality of Service (QoS) measurements if any metrics are set. /// XblMultiplayerMemberInitialization* MemberInitialization; /// - /// Peer to peer QoS requirements. + /// QoS requirements for a connection between session members. /// XblMultiplayerPeerToPeerRequirements PeerToPeerRequirements; /// - /// Peer to host QoS requirements. + /// QoS requirements for a connection between a host candidate and session members. /// XblMultiplayerPeerToHostRequirements PeerToHostRequirements; @@ -1058,16 +1143,18 @@ typedef struct XblMultiplayerSessionConstants #define XBL_MULTIPLAYER_SESSION_NAME_MAX_LENGTH XBL_MULTIPLAYER_SESSION_TEMPLATE_NAME_MAX_LENGTH /// -/// MPSD can create various handles which refer to a session. -/// They are immutable and can only be created, read, and deleted. +/// Represents a handle ID of a multiplayer session. /// +/// /// +/// Multiplayer Session Directory (MPSD) can create various handles that refer to a session. +/// They are immutable and can only be created, read, and deleted. /// Note that this handle ID references to a service side object. /// typedef struct XblMultiplayerSessionHandleId { /// - /// MPSD service generated ID that identifies the handle. + /// The ID of the handle that MSPD created. /// _Null_terminated_ char value[XBL_GUID_LENGTH]; } XblMultiplayerSessionHandleId; @@ -1078,7 +1165,7 @@ typedef struct XblMultiplayerSessionHandleId typedef struct XblMultiplayerSessionReference { /// - /// The service configuration ID specific to the title. + /// The service configuration ID (SCID) specific to the title. /// _Null_terminated_ char Scid[XBL_SCID_LENGTH]; @@ -1097,23 +1184,30 @@ typedef struct XblMultiplayerSessionReference /// /// Represents a URI path representation of a session reference. -/// Format is /serviceconfigs/{scid}/sessiontemplates/{session-template-name}/sessions/{session-name}. /// +/// +/// The format of the URI path +/// is `/serviceconfigs/{scid}/sessiontemplates/{session-template-name}/sessions/{session-name}`, where +/// `{scid}` is the service configuration ID specific to the title. +/// +/// typedef struct XblMultiplayerSessionReferenceUri { /// - /// The stored URI path. + /// The URI path. /// _Null_terminated_ char value[XBL_MULTIPLAYER_SESSION_REFERENCE_URI_MAX_LENGTH]; } XblMultiplayerSessionReferenceUri; /// -/// Creates an XblMultiplayerSessionReference from a scid, session template name, and session name. +/// Creates an object from a service configuration ID (SCID), session +/// template name, and session name. /// -/// The Service Configuration ID (SCID) that the session is a part of. The SCID is considered case sensitive so paste it directly from the Partner Center -/// The session template name. -/// The session name. -/// A reference to the multiplayer session that was created. +/// The SCID that the session is a part of. The SCID is case-sensitive, so paste it directly +/// from Partner Center. +/// The name of the session template. +/// The name of the session. +/// A reference to the multiplayer session. STDAPI_(XblMultiplayerSessionReference) XblMultiplayerSessionReferenceCreate( _In_z_ const char* scid, _In_z_ const char* sessionTemplateName, @@ -1121,7 +1215,7 @@ STDAPI_(XblMultiplayerSessionReference) XblMultiplayerSessionReferenceCreate( ) XBL_NOEXCEPT; /// -/// Returns the session reference parsed from URI. +/// Returns the session reference parsed from a URI. /// /// The URI path. /// Passes back the session reference. @@ -1132,9 +1226,9 @@ STDAPI XblMultiplayerSessionReferenceParseFromUriPath( ) XBL_NOEXCEPT; /// -/// Returns a URI path representation of the session reference. +/// Returns the URI path representation of a session reference. /// -/// The session reference. +/// A session reference. /// Passes back the URI representation of the session reference. /// HRESULT return code for this API operation. STDAPI XblMultiplayerSessionReferenceToUriPath( @@ -1143,49 +1237,52 @@ STDAPI XblMultiplayerSessionReferenceToUriPath( ) XBL_NOEXCEPT; /// -/// Checks whether an XblMultiplayerSessionReference is well formed. -/// It is considered well formed if none of the fields are empty strings. +/// Verifies whether an object is well formed. /// /// The session reference. /// Returns true if session is well formed, false if session is not well formed. +/// +/// An object is considered to be well formed if none +/// of the fields are empty strings. +/// STDAPI_(bool) XblMultiplayerSessionReferenceIsValid( _In_ const XblMultiplayerSessionReference* sessionReference ) XBL_NOEXCEPT; /// -/// Represents the matchmaking server supporting the multiplayer session. +/// Represents the matchmaking server that supports a multiplayer session. /// typedef struct XblMultiplayerMatchmakingServer { /// - /// The Matchmaking Status of the Multiplayer Session Server. + /// The status of the matchmaking server. /// XblMatchmakingStatus Status; /// - /// The Matchmaking Status Details of the Multiplayer Session Server. + /// The status details, if any, of the matchmaking server. /// const char* StatusDetails; /// - /// The Typical Wait of the Multiplayer Session Server. + /// The typical wait time, in seconds. /// uint32_t TypicalWaitInSeconds; /// - /// The Target Session Reference of the Multiplayer Session Server. + /// A reference to the target session. /// XblMultiplayerSessionReference TargetSessionRef; } XblMultiplayerMatchmakingServer; /// -/// Represents the arbitration server supporting the multiplayer session. -/// DEPRECATED. It will be removed in a future release +/// Represents the arbitration server that supports a multiplayer session. +/// DEPRECATED. This structure will be removed in a future release. /// typedef struct XBL_DEPRECATED XblMultiplayerArbitrationServer { /// - /// The start time for the match. This is also when the arbitration time starts. + /// The start time of the match. This time is also when arbitration starts. /// time_t ArbitrationStartTime; @@ -1200,7 +1297,7 @@ typedef struct XBL_DEPRECATED XblMultiplayerArbitrationServer XblTournamentGameResultSource ResultSource; /// - /// A value from 0-100 that indicates the confidence level of this result. + /// A value from 0 through 100 that indicates the confidence level of the result. /// uint32_t ResultConfidenceLevel; @@ -1220,24 +1317,24 @@ typedef struct XBL_DEPRECATED XblMultiplayerArbitrationServer /// /// Represents a team in a tournament. -/// DEPRECATED. It will be removed in a future release +/// DEPRECATED. This structure will be removed in a future release. /// typedef struct XBL_DEPRECATED XblMultiplayerTournamentTeam { /// - /// Id of the team. + /// ID of the team. /// const char* TeamId; /// - /// Session reference for the session the team is in. + /// Session reference of the session the team is in. /// XblMultiplayerSessionReference TeamSessionReference; } XblMultiplayerTournamentTeam; /// -/// Represents the tournament server supporting the multiplayer session. -/// DEPRECATED. It will be removed in a future release +/// Represents the tournament server that supports a multiplayer session. +/// DEPRECATED. This structure will be removed in a future release. /// typedef struct XBL_DEPRECATED XblMultiplayerTournamentsServer { @@ -1263,40 +1360,40 @@ typedef struct XBL_DEPRECATED XblMultiplayerTournamentsServer size_t TeamsCount; /// - /// The tournament registration state of the team. + /// The registration state of the team. /// XblTournamentRegistrationState RegistrationState; /// - /// The tournament registration reason for the certain state. + /// The reason for the registration state. /// XblTournamentRegistrationReason RegistrationReason; /// - /// Next game's start time for the tournament. + /// The start time of the next game in the tournament. /// time_t NextGameStartTime; /// - /// Next game session reference for the tournament. + /// The session reference of the next game in the tournament. /// XblMultiplayerSessionReference NextGameSessionReference; /// - /// The last game's end time for the tournament. + /// The end time of the last game in the tournament. /// time_t LastGameEndTime; XBL_WARNING_PUSH XBL_WARNING_DISABLE_DEPRECATED /// - /// The last game's state for the tournament. + /// The result of the last game in the tournament. /// XblTournamentTeamResult LastTeamResult; XBL_WARNING_POP /// - /// The source for the last game's state of the tournament. + /// The source of the result of the last game in the tournament. /// XblTournamentGameResultSource LastGameResultSource; } XblMultiplayerTournamentsServer; @@ -1304,6 +1401,11 @@ typedef struct XBL_DEPRECATED XblMultiplayerTournamentsServer /// /// Represents a category of roles for a multiplayer session. /// +/// +/// +/// +/// For more information, see Multiplayer roles. +/// typedef struct XblMultiplayerRoleType { /// @@ -1317,7 +1419,7 @@ typedef struct XblMultiplayerRoleType bool OwnerManaged; /// - /// Which role settings for roles in this role type can be modified throughout the life of the session. + /// The settings (for roles in this role type) that can be modified throughout the life of the session. /// Exclude role settings to lock them. /// XblMutableRoleSettings MutableRoleSettings; @@ -1328,7 +1430,7 @@ typedef struct XblMultiplayerRoleType struct XblMultiplayerRole* Roles; /// - /// The number of roles in the Roles array. + /// The number of roles in the `Roles` array. /// size_t RoleCount; } XblMultiplayerRoleType; @@ -3623,17 +3725,19 @@ STDAPI XblMultiplayerSendInvitesResult( ) XBL_NOEXCEPT; /// -/// DEPRECATED - Call XblMultiplayerGetActivitiesWithPropertiesForSocialGroupAsync which also populates CustomSessionProperties in the result. -/// Queries for the current activity for a socialgroup of users associated with a particular "owner" user. +/// DEPRECATED - Call , which also +/// populates `CustomSessionProperties` in the result.
+/// Queries for the current activity for a social group of players associated with a particular "owner" player. ///
-/// Xbox live context for the local user. -/// The Service Configuration ID (SCID) within which to query for activities. The SCID is considered case sensitive so paste it directly from the Partner Center -/// The person whose social group will be used for the query. -/// The social group to use in order to get the list of users. (e.g. "people" or "favorites") -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local player. +/// The service configuration identifier (SCID) within which to query for activities. +/// The SCID is case-sensitive, so paste it directly from Partner Center. +/// The player whose social group will be used for the query. +/// The social group (such as "people" or "favorites") to use to get the list of users. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// There is no paging or continuation, and the multiplayer service will limit the number of items returned to 100. +/// No paging or continuation is available. The Multiplayer service limits the number of items returned to 100. /// STDAPI XblMultiplayerGetActivitiesForSocialGroupAsync( _In_ XblContextHandle xboxLiveContext, @@ -3644,16 +3748,17 @@ STDAPI XblMultiplayerGetActivitiesForSocialGroupAsync( ) XBL_NOEXCEPT; /// -/// Queries for the current activity for a socialgroup of users associated with a particular "owner" user. +/// Queries for the current activity for a social group of players associated with a particular "owner" player. /// -/// Xbox live context for the local user. -/// The Service Configuration ID (SCID) within which to query for activities. The SCID is considered case sensitive so paste it directly from the Partner Center -/// The person whose social group will be used for the query. -/// The social group to use in order to get the list of users. (e.g. "people" or "favorites") -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local player. +/// The service configuration identifier (SCID) within which to query for activities. +/// The SCID is case-sensitive, so paste it directly from Partner Center. +/// The player whose social group will be used for the query. +/// The social group (such as "people" or "favorites") to use to get the list of users. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// There is no paging or continuation, and the multiplayer service will limit the number of items returned to 100. +/// No paging or continuation is available. The Multiplayer service limits the number of items returned to 100. /// STDAPI XblMultiplayerGetActivitiesWithPropertiesForSocialGroupAsync( _In_ XblContextHandle xblContext, @@ -3664,9 +3769,9 @@ STDAPI XblMultiplayerGetActivitiesWithPropertiesForSocialGroupAsync( ) XBL_NOEXCEPT; /// -/// Gets the number of XblMultiplayerActivityDetails objects returned. +/// Gets the number of objects returned. /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The number of activity objects returned. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesForSocialGroupResultCount( @@ -3675,11 +3780,11 @@ STDAPI XblMultiplayerGetActivitiesForSocialGroupResultCount( ) XBL_NOEXCEPT; /// -/// Gets the result of a XblMultiplayerGetActivitiesForSocialGroupAsync call. +/// Gets the result of a call to . /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The number of activity objects returned. -/// A caller allocated array to pass back the activities object results. +/// A caller-allocated array for the activity objects returned. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesForSocialGroupResult( _In_ XAsyncBlock* async, @@ -3688,9 +3793,9 @@ STDAPI XblMultiplayerGetActivitiesForSocialGroupResult( ) XBL_NOEXCEPT; /// -/// Gets the number of XblMultiplayerActivityDetails objects returned. +/// Gets the size of objects returned. /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The size in bytes required to store the multiplayer activity details. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResultSize( @@ -3699,15 +3804,15 @@ STDAPI XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResultSize( ) XBL_NOEXCEPT; /// -/// Gets the result of a XblMultiplayerGetActivitiesForSocialGroupAsync call. +/// Gets the result of a call to . /// -/// The AsyncBlock for this operation. -/// The size of the provided buffer. -/// A caller allocated byte buffer to write result into. -/// Strongly typed pointer that points into buffer. -/// Do not free this as its lifecycle is tied to buffer. -/// Number of entries in the ptrToBufferResults array. -/// Number of bytes written to the buffer. +/// The `XAsyncBlock` for this operation. +/// The size of the provided `buffer`. +/// A caller-allocated byte buffer to write results into. +/// Strongly typed pointer to `buffer`. +/// Do not free; its lifecycle is tied to `buffer`. +/// Number of entries in `buffer`. +/// Number of bytes actually written to `buffer`. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResult( _In_ XAsyncBlock* async, @@ -3719,17 +3824,19 @@ STDAPI XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResult( ) XBL_NOEXCEPT; /// -/// DEPRECATED - Call XblMultiplayerGetActivitiesWithPropertiesForUsersAsync which also populates CustomSessionProperties in the result. -/// Queries for the current activity for a set of users specified by xuid. +/// DEPRECATED - Call , which also +/// populates `CustomSessionProperties` in the result.
+/// Queries for the current activity for a set of players specified by Xbox user ID. ///
-/// Xbox live context for the local user. -/// The Service Configuration ID (SCID) within which to query for activities. The SCID is considered case sensitive so paste it directly from the Partner Center -/// The list of user ids to find activities for. -/// The size of the xuids array. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// The service configuration identifier (SCID) within which to query for activities. +/// The SCID is case-sensitive, so paste it directly from Partner Center. +/// The list of Xbox user IDs to find activities for. +/// The size of the `xuids` array. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// There is no paging or continuation, and the multiplayer service will limit the number of items returned to 100. +/// No paging or continuation is available. The Multiplayer service limits the number of items returned to 100. /// STDAPI XblMultiplayerGetActivitiesForUsersAsync( _In_ XblContextHandle xblContext, @@ -3740,16 +3847,17 @@ STDAPI XblMultiplayerGetActivitiesForUsersAsync( ) XBL_NOEXCEPT; /// -/// Queries for the current activity for a set of users specified by xuid. +/// Queries for the current activity for a set of players specified by Xbox user ID. /// -/// Xbox live context for the local user. -/// The Service Configuration ID (SCID) within which to query for activities. The SCID is considered case sensitive so paste it directly from the Partner Center -/// The list of user ids to find activities for. -/// The size of the xuids array. -/// The AsyncBlock for this operation. +/// {% term xbox-live %} context for the local user. +/// The service configuration identifier (SCID) within which to query for activities. +/// The SCID is case-sensitive, so paste it directly from Partner Center. +/// The list of Xbox user IDs to find activities for. +/// The size of the `xuids` array. +/// The `XAsyncBlock` for this operation. /// HRESULT return code for this API operation. /// -/// There is no paging or continuation, and the multiplayer service will limit the number of items returned to 100. +/// No paging or continuation is available. The Multiplayer service limits the number of items returned to 100. /// STDAPI XblMultiplayerGetActivitiesWithPropertiesForUsersAsync( _In_ XblContextHandle xblContext, @@ -3760,9 +3868,9 @@ STDAPI XblMultiplayerGetActivitiesWithPropertiesForUsersAsync( ) XBL_NOEXCEPT; /// -/// Gets the number of XblMultiplayerActivityDetails objects returned. +/// Gets the number of objects returned. /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The number of activity objects returned. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesForUsersResultCount( @@ -3771,11 +3879,11 @@ STDAPI XblMultiplayerGetActivitiesForUsersResultCount( ) XBL_NOEXCEPT; /// -/// Gets the result of a XblMultiplayerGetActivitiesForUsersAsync call. +/// Gets the result of a call to . /// -/// The AsyncBlock for this operation. +/// The `XAsyncBlock` for this operation. /// The number of activity objects returned. -/// A caller allocated array to pass back the activities object results. +/// A caller-allocated array for the activity objects returned. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesForUsersResult( _In_ XAsyncBlock* async, @@ -3784,10 +3892,10 @@ STDAPI XblMultiplayerGetActivitiesForUsersResult( ) XBL_NOEXCEPT; /// -/// Gets the number of XblMultiplayerActivityDetails objects returned. +/// Gets the size of objects returned. /// -/// The AsyncBlock for this operation. -/// The number of activity objects returned. +/// The `XAsyncBlock` for this operation. +/// Returns the size in bytes required to store the result. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesWithPropertiesForUsersResultSize( _In_ XAsyncBlock* async, @@ -3795,15 +3903,15 @@ STDAPI XblMultiplayerGetActivitiesWithPropertiesForUsersResultSize( ) XBL_NOEXCEPT; /// -/// Gets the result of a XblMultiplayerGetActivitiesForUsersAsync call. +/// Gets the result of a call to . /// -/// The AsyncBlock for this operation. -/// The size of the provided buffer. -/// A caller allocated byte buffer to write result into. -/// Strongly typed pointer that points into buffer. -/// Do not free this as its lifecycle is tied to buffer. -/// Number of entries in the ptrToBufferResults array. -/// Number of bytes written to the buffer. +/// The `XAsyncBlock` for this operation. +/// The size of the provided `buffer`. +/// A caller-allocated byte buffer to write results into. +/// Strongly typed pointer to `buffer`. +/// Do not free; its lifecycle is tied to `buffer`. +/// Number of entries in `buffer`. +/// Number of bytes actually written to `buffer`. /// HRESULT return code for this API operation. STDAPI XblMultiplayerGetActivitiesWithPropertiesForUsersResult( _In_ XAsyncBlock* async, diff --git a/Include/xsapi-c/notification_c.h b/Include/xsapi-c/notification_c.h index 325fdadf..8b0a951a 100644 --- a/Include/xsapi-c/notification_c.h +++ b/Include/xsapi-c/notification_c.h @@ -34,7 +34,6 @@ STDAPI XblNotificationSubscribeToNotificationsAsync( ) XBL_NOEXCEPT; #endif -#if HC_PLATFORM == HC_PLATFORM_IOS || HC_PLATFORM == HC_PLATFORM_ANDROID || HC_PLATFORM == HC_PLATFORM_UWP /// /// Unsubscribes the title from push notifications. /// @@ -45,6 +44,4 @@ STDAPI XblNotificationUnsubscribeFromNotificationsAsync( _In_ XblContextHandle xboxLiveContext, _In_ XAsyncBlock* asyncBlock ) XBL_NOEXCEPT; -#endif - } \ No newline at end of file diff --git a/Include/xsapi-c/presence_c.h b/Include/xsapi-c/presence_c.h index 0c835d2b..55cb1587 100644 --- a/Include/xsapi-c/presence_c.h +++ b/Include/xsapi-c/presence_c.h @@ -680,7 +680,7 @@ STDAPI_XBL_DEPRECATED XblPresenceSubscribeToTitlePresenceChange( /// /// Unsubscribes a previously created title presence change subscription. /// DEPRECATED. This API will be removed in a future release. Individual RTA subscription will be managed automatically by XSAPI as -/// titles are untracked with . +/// titles are untracked with . /// /// Xbox live context for the local user. /// Handle for the subscription created with . @@ -812,7 +812,7 @@ STDAPI XblPresenceStopTrackingUsers( /// Xbox live context for the local user. /// Array of title IDs to append to the existing list of tracked titles. Note that /// the current title will be tracked by default. -/// Length of the titleIds array. +/// Length of the titleIds array. /// HRESULT return code for this API operation. /// /// Updates will be delivered via XblPresenceTitlePresenceChangedHandlers. @@ -830,7 +830,7 @@ STDAPI XblPresenceTrackAdditionalTitles( ///
/// Xbox live context for the local user. /// Array of title IDs to remove from the list of tracked titles. -/// Length of the titleIds array. +/// Length of the titleIds array. /// HRESULT return code for this API operation. STDAPI XblPresenceStopTrackingAdditionalTitles( _In_ XblContextHandle xblContextHandle, diff --git a/Include/xsapi-c/social_c.h b/Include/xsapi-c/social_c.h index a00d8ce0..a42315e3 100644 --- a/Include/xsapi-c/social_c.h +++ b/Include/xsapi-c/social_c.h @@ -422,7 +422,7 @@ STDAPI_(void) XblSocialRelationshipResultCloseHandle( /// /// Subscribes to the social service for people changed events. /// DEPRECATED. Calling this API is no longer required and it will be removed in a future release. RTA subscription will be managed -/// automatically by XSAPI as are added and removed. +/// automatically by XSAPI as `XblSocialRelationshipChangedHandler` are added and removed. /// /// An xbox live context handle created with XblContextCreateHandle. /// The Xbox User ID of the player requesting the subscription. @@ -440,7 +440,7 @@ STDAPI_XBL_DEPRECATED XblSocialSubscribeToSocialRelationshipChange( /// /// Un-subscribes a previously created social relationship change subscription. /// DEPRECATED. Calling this API is no longer required and it will be removed in a future release. RTA subscription will be managed -/// automatically by XSAPI as are added and removed. +/// automatically by XSAPI as `XblSocialRelationshipChangedHandler` are added and removed. /// /// An xbox live context handle created with XblContextCreateHandle. /// The subscription handle to unsubscribe. @@ -470,13 +470,16 @@ typedef void ); /// -/// Registers an event handler for social relationship change notifications. +/// Registers an event handler for notifications of social relationship changes caused by the registering user. /// /// An xbox live context handle created with XblContextCreateHandle. /// The callback function that receives notifications. /// Client context pointer to be passed back to the handler. /// A XblFunctionContext used to remove the handler. /// +/// This handler triggers only if the user changes the relationship with another user. +/// This handler does not trigger if another user changes the relationship with the user. +/// /// Call to un-register event handler. /// STDAPI_(XblFunctionContext) XblSocialAddSocialRelationshipChangedHandler( diff --git a/Include/xsapi-c/xbox_live_global_c.h b/Include/xsapi-c/xbox_live_global_c.h index 9d13b9f5..e7b36e05 100644 --- a/Include/xsapi-c/xbox_live_global_c.h +++ b/Include/xsapi-c/xbox_live_global_c.h @@ -11,6 +11,8 @@ #pragma warning(disable: 4062) #endif +#include + extern "C" { diff --git a/Include/xsapi-cpp/impl/notification.hpp b/Include/xsapi-cpp/impl/notification.hpp index 5e47f1ee..cb464c04 100644 --- a/Include/xsapi-cpp/impl/notification.hpp +++ b/Include/xsapi-cpp/impl/notification.hpp @@ -191,7 +191,7 @@ pplx::task> notification_service::unsubscribe_from_notifi return asyncWrapper->Task(hr); } -#elif (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS +#elif HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS pplx::task> notification_service::unsubscribe_from_notifications() { auto xblContext = m_xblContext; diff --git a/Include/xsapi-cpp/notification_service.h b/Include/xsapi-cpp/notification_service.h index 19f377e7..8ab82e22 100644 --- a/Include/xsapi-cpp/notification_service.h +++ b/Include/xsapi-cpp/notification_service.h @@ -12,7 +12,7 @@ NAMESPACE_MICROSOFT_XBOX_SERVICES_NOTIFICATION_CPP_BEGIN class xbox_live_context; -#if HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL +#if HC_PLATFORM == HC_PLATFORM_WIN32 class invite_notification_event_args { public: @@ -79,7 +79,7 @@ public: inline ~notification_service(); inline pplx::task> subscribe_to_notifications( -#if (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS +#if HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS _In_ const std::function& achievementUnlockHandler, _In_ const std::function& multiplayerInviteHandler #elif (HC_PLATFORM == HC_PLATFORM_IOS || HC_PLATFORM == HC_PLATFORM_ANDROID) @@ -89,7 +89,7 @@ public: inline pplx::task> unsubscribe_from_notifications(); -#if (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS +#if HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS inline std::function& game_invite_handler(); inline std::function& achievement_unlock_handler(); @@ -98,7 +98,7 @@ public: private: XblContextHandle m_xblContext; -#if (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS +#if HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS XblFunctionContext m_gameinviteFunctionContext; XblFunctionContext m_achievementUnlockFunctionContext; diff --git a/Source/Services/Notification/RTA/notification_subscription.cpp b/Source/Services/Notification/RTA/notification_subscription.cpp index bbb3165c..62124706 100644 --- a/Source/Services/Notification/RTA/notification_subscription.cpp +++ b/Source/Services/Notification/RTA/notification_subscription.cpp @@ -297,8 +297,8 @@ Result MultiplayerActivityInviteData::Deserialize AchievementUnlockEvent::AchievementUnlockEvent(AchievementUnlockEvent&& event) noexcept : m_achievementId(std::move(event.m_achievementId)), - m_achievementDescription(std::move(event.m_achievementDescription)), m_achievementName(std::move(event.m_achievementName)), + m_achievementDescription(std::move(event.m_achievementDescription)), m_achievementIconUri(std::move(event.m_achievementIconUri)), m_deepLink(event.m_deepLink) { @@ -317,8 +317,8 @@ AchievementUnlockEvent::AchievementUnlockEvent(AchievementUnlockEvent&& event) n AchievementUnlockEvent::AchievementUnlockEvent(const AchievementUnlockEvent& event) : m_achievementId(event.m_achievementId), - m_achievementDescription(event.m_achievementDescription), m_achievementName(event.m_achievementName), + m_achievementDescription(event.m_achievementDescription), m_achievementIconUri(event.m_achievementIconUri), m_deepLink(event.m_deepLink) { diff --git a/Source/Shared/HookedUri/asyncrt_utils.h b/Source/Shared/HookedUri/asyncrt_utils.h index a3089318..9a0b7552 100644 --- a/Source/Shared/HookedUri/asyncrt_utils.h +++ b/Source/Shared/HookedUri/asyncrt_utils.h @@ -593,7 +593,7 @@ public: void set_length(int length) { m_length = length; } private: - static const utility::string_t c_allowed_chars; + static const utility::char_t* c_allowed_chars; std::mt19937 m_random; int m_length; }; diff --git a/Source/Shared/HookedUri/details/asyncrt_utils.hpp b/Source/Shared/HookedUri/details/asyncrt_utils.hpp index 0121d5d8..2fc728be 100644 --- a/Source/Shared/HookedUri/details/asyncrt_utils.hpp +++ b/Source/Shared/HookedUri/details/asyncrt_utils.hpp @@ -1120,11 +1120,11 @@ utility::seconds timespan::xml_duration_to_seconds(const utility::string_t &time return utility::seconds(numSecs); } -const utility::string_t nonce_generator::c_allowed_chars(_XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")); +const utility::char_t * nonce_generator::c_allowed_chars = _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); utility::string_t nonce_generator::generate() { - std::uniform_int_distribution<> distr(0, static_cast(c_allowed_chars.length() - 1)); + std::uniform_int_distribution<> distr(0, static_cast(ustrlen(c_allowed_chars) - 1)); utility::string_t result; result.reserve(length()); std::generate_n(std::back_inserter(result), length(), [&]() { return c_allowed_chars[distr(m_random)]; } ); diff --git a/Source/Shared/HookedUri/details/basic_types.h b/Source/Shared/HookedUri/details/basic_types.h index 4ec5bd2d..19e345a8 100644 --- a/Source/Shared/HookedUri/details/basic_types.h +++ b/Source/Shared/HookedUri/details/basic_types.h @@ -57,6 +57,7 @@ typedef std::wstringstream stringstream_t; #define ucout std::wcout #define ucin std::wcin #define ucerr std::wcerr +#define ustrlen wcslen #else // // On POSIX platforms, all strings are narrow @@ -74,6 +75,7 @@ typedef std::stringstream stringstream_t; #define ucout std::cout #define ucin std::cin #define ucerr std::cerr +#define ustrlen strlen #endif // endif _UTF16_STRINGS #ifndef _TURN_OFF_PLATFORM_STRING diff --git a/Source/Shared/Logger/log.h b/Source/Shared/Logger/log.h index 4f1e81c6..097b0d2b 100644 --- a/Source/Shared/Logger/log.h +++ b/Source/Shared/Logger/log.h @@ -2,8 +2,11 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. #pragma once +#include "internal_mem.h" - +#if XSAPI_ANDROID_STUDIO +#include "trace.h" +#endif #define DEFAULT_LOGGER xbox::services::logger::get_logger() diff --git a/Source/Shared/a/android_utils.cpp b/Source/Shared/a/android_utils.cpp index 4b80e344..e93010d7 100644 --- a/Source/Shared/a/android_utils.cpp +++ b/Source/Shared/a/android_utils.cpp @@ -1,4 +1,6 @@ #include "android_utils.h" +#include +#include "Logger/log.h" NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN JString::JString(JNIEnv* env, jstring string) noexcept : diff --git a/Source/Shared/a/android_utils.h b/Source/Shared/a/android_utils.h index 0368d696..e1ae4b6a 100644 --- a/Source/Shared/a/android_utils.h +++ b/Source/Shared/a/android_utils.h @@ -2,6 +2,10 @@ #include +#if XSAPI_ANDROID_STUDIO +#include "types.h" +#endif + NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN /// diff --git a/Source/Shared/a/http_call_jni.cpp b/Source/Shared/a/http_call_jni.cpp index c0db21f4..74029ef3 100644 --- a/Source/Shared/a/http_call_jni.cpp +++ b/Source/Shared/a/http_call_jni.cpp @@ -4,7 +4,7 @@ #include #include "jni_utils.h" #include "http_call_legacy.h" -#include "a\java_interop.h" +#include "a/java_interop.h" #define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, "HttpCall", __VA_ARGS__)) #define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "HttpCall", __VA_ARGS__)) diff --git a/Source/Shared/a/rwlock_guard.h b/Source/Shared/a/rwlock_guard.h index 1fa89344..c0906f3d 100644 --- a/Source/Shared/a/rwlock_guard.h +++ b/Source/Shared/a/rwlock_guard.h @@ -2,6 +2,10 @@ #include +#if XSAPI_ANDROID_STUDIO +#include "types.h" +#endif + NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN /// diff --git a/Source/Shared/build_version.h b/Source/Shared/build_version.h index c424f3b8..b520778c 100644 --- a/Source/Shared/build_version.h +++ b/Source/Shared/build_version.h @@ -9,4 +9,4 @@ //********************************************************* #pragma once -#define XBOX_SERVICES_API_VERSION_STRING "2021.04.20210526.2" +#define XBOX_SERVICES_API_VERSION_STRING "2021.06.20210527.0" diff --git a/Source/Shared/internal_mem.h b/Source/Shared/internal_mem.h index 80147e8d..307876fb 100644 --- a/Source/Shared/internal_mem.h +++ b/Source/Shared/internal_mem.h @@ -1,9 +1,15 @@ // Copyright (c) Microsoft Corporation // Licensed under the MIT license. See LICENSE file in the project root for full license information. +#pragma once #include "xsapi-c/xbox_live_global_c.h" - -#pragma once +#include +#include +#include +#include +#include +#include +#include NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN diff --git a/Utilities/CMake/Android/CMakeLists.txt b/Utilities/CMake/Android/CMakeLists.txt new file mode 100644 index 00000000..9566f5a1 --- /dev/null +++ b/Utilities/CMake/Android/CMakeLists.txt @@ -0,0 +1,158 @@ +cmake_minimum_required (VERSION 3.6) + +project("Microsoft.Xbox.Services.Android") + +get_filename_component(PATH_TO_XSAPI_ROOT "../../.." ABSOLUTE) + +set(PATH_TO_XAL_ROOT "${PATH_TO_XSAPI_ROOT}/External/xal") +set(PATH_TO_XAL "${PATH_TO_XAL_ROOT}/Source/Xal") + +set(CMAKE_STATIC_LIBRARY_PREFIX "") + +####################################### +### Set up source and include files ### +####################################### + +include("../GetCommonXSAPISourceFiles.cmake") +get_common_xsapi_source_files( + Public_Source_Files + Public_Source_Files_C + Common_Source_Files + System_Source_Files + Shared_Logger_Source_Files + Shared_Source_Files + Achievements_Source_Files + Achievements_Manager_Source_Files + Leaderboard_Source_Files + Privacy_Source_Files + Presence_Source_Files + TitleStorage_Source_Files + Social_Source_Files + Social_Manager_Source_Files + Stats_Source_Files + Matchmaking_Source_Files + Multiplayer_Source_Files + Multiplayer_Manager_Source_Files + StringVerify_Source_Files + MultiplayerActivity_Source_Files + RealTimeActivityManager_Source_Files + "${PATH_TO_XSAPI_ROOT}" + ) + +set(SOURCE_FILES + "${Public_Source_Files}" + "${Common_Source_Files}" + "${Public_Source_Files_C}" + "${System_Source_Files}" + "${Shared_Logger_Source_Files}" + "${Shared_Source_Files}" + "${Achievements_Source_Files}" + "${Achievements_Manager_Source_Files}" + "${Leaderboard_Source_Files}" + "${Privacy_Source_Files}" + "${Presence_Source_Files}" + "${TitleStorage_Source_Files}" + "${Social_Source_Files}" + "${Social_Manager_Source_Files}" + "${Stats_Source_Files}" + "${Matchmaking_Source_Files}" + "${Multiplayer_Source_Files}" + "${Multiplayer_Manager_Source_Files}" + "${StringVerify_Source_Files}" + "${MultiplayerActivity_Source_Files}" + "${RealTimeActivityManager_Source_Files}" + ) + +include("../GetAndroidXSAPISourceFiles.cmake") +get_android_xsapi_source_files( + Common_Android_Source_Files + System_Android_Source_Files + Shared_Android_Source_Files + TCUI_Android_Source_Files + Notification_Android_Source_Files + Events_Android_Source_Files + "${PATH_TO_XSAPI_ROOT}" +) + +set(ANDROID_SOURCE_FILES + "${Common_Android_Source_Files}" + "${System_Android_Source_Files}" + "${Shared_Android_Source_Files}" + "${TCUI_Android_Source_Files}" + "${Notification_Android_Source_Files}" + "${Events_Android_Source_Files}" + ) + + set(COMMON_INCLUDE_DIRS + "${PATH_TO_XSAPI_ROOT}/Include" + "${PATH_TO_XSAPI_ROOT}/Include/xsapi-c" + "${PATH_TO_XSAPI_ROOT}/Include/xsapi-cpp" + "${PATH_TO_XSAPI_ROOT}/Include/xsapi-cpp/impl" + "${PATH_TO_XSAPI_ROOT}/Include/cpprestinclude" + "${PATH_TO_XSAPI_ROOT}/Source/Services" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Achievements" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Common" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Common/Unix" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Events" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Leaderboard" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Matchmaking" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Multiplayer" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Multiplayer/Manager" + "${PATH_TO_XSAPI_ROOT}/Source/Services/MultiplayerActivity" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Notification" + "${PATH_TO_XSAPI_ROOT}/Source/Services/RealTimeActivityManager" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Presence" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Privacy" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Social" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Social/Manager" + "${PATH_TO_XSAPI_ROOT}/Source/Services/Stats" + "${PATH_TO_XSAPI_ROOT}/Source/Services/StringVerify" + "${PATH_TO_XSAPI_ROOT}/Source/System" + "${PATH_TO_XSAPI_ROOT}/Source/Services/TitleStorage" + "${PATH_TO_XSAPI_ROOT}/Source/Services/TCUI" + "${PATH_TO_XSAPI_ROOT}/Source/Shared" + "${PATH_TO_XSAPI_ROOT}/Source/Shared/u" + "${PATH_TO_XAL}/Include" + "${PATH_TO_XSAPI_ROOT}/External/rapidjson/include" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/Include" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/Include/httpClient" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include/asio" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include/asio/detail" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include/asio/impl" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/websocketpp/websocketpp" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/websocketpp/websocketpp/config" + "${PATH_TO_XAL_ROOT}/External/libHttpClient/External/websocketpp/websocketpp/transport" + "${PATH_TO_XAL_ROOT}/External/CompactCoreCLL" + ) + +######################### +### Set up static lib ### +######################### + +add_library( + "${PROJECT_NAME}" + STATIC + "${SOURCE_FILES}" + "${ANDROID_SOURCE_FILES}" +) + +target_include_directories( + "${PROJECT_NAME}" + PRIVATE + "${COMMON_INCLUDE_DIRS}" +) + +######################### +### Set up flags ### +######################### +include("GetXSAPIFlags.cmake") +get_xsapi_android_flags(FLAGS FLAGS_DEBUG FLAGS_RELEASE) + +include("${PATH_TO_XAL_ROOT}/External/libHttpClient/Utilities/CMake/Android/TargetSetFlags.cmake") +target_set_flags( + "${PROJECT_NAME}" + "${FLAGS}" + "${FLAGS_DEBUG}" + "${FLAGS_RELEASE}" +) \ No newline at end of file diff --git a/Utilities/CMake/Android/GetXSAPIFlags.cmake b/Utilities/CMake/Android/GetXSAPIFlags.cmake new file mode 100644 index 00000000..182197a8 --- /dev/null +++ b/Utilities/CMake/Android/GetXSAPIFlags.cmake @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.6) + +# This function will set common, debug, and release config compiler flags +# into the three OUT_XXX variables, respectively. These are intended to then +# be passed to `target_set_flags`, from `TargetSetFlags.cmake`. +function(GET_XSAPI_ANDROID_FLAGS OUT_FLAGS OUT_FLAGS_DEBUG OUT_FLAGS_RELEASE) + set(FLAGS + "-DASIO_STANDALONE=1" + "-DXSAPI_ANDROID_STUDIO=1" + "-std=c++14" + "-Wno-unknown-pragmas" + "-Wno-pragma-once-outside-header" + "-DHC_PLATFORM_MSBUILD_GUESS=HC_PLATFORM_ANDROID" + ) + + set("${OUT_FLAGS}" "${FLAGS}" PARENT_SCOPE) + + set("${OUT_FLAGS_DEBUG}" + "-O0" + "-DHC_TRACE_BUILD_LEVEL=5" + PARENT_SCOPE + ) + + set("${OUT_FLAGS_RELEASE}" + "-Os" + "-DHC_TRACE_BUILD_LEVEL=3" + PARENT_SCOPE + ) +endfunction() diff --git a/Utilities/CMake/CMakeLists.txt b/Utilities/CMake/CMakeLists.txt index 3e93e413..06cbed8c 100644 --- a/Utilities/CMake/CMakeLists.txt +++ b/Utilities/CMake/CMakeLists.txt @@ -54,105 +54,71 @@ endif() add_definitions(-D_NO_ASYNCRTIMP -D_NO_PPLXIMP -D_NO_XSAPIIMP -DXSAPI_BUILD) -if( ANDROID) - set_source_files_properties(../../Source/Services/Common/Unix/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h") + +get_filename_component(PATH_TO_XSAPI_ROOT "../../" ABSOLUTE) + +if(ANDROID) + set_source_files_properties(${PATH_TO_XSAPI_ROOT}/Source/Services/Common/Unix/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h") else() - set_source_files_properties(../../Source/Services/Common/cpp/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h") + set_source_files_properties(${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h") endif() if (NOT ${CMAKE_GENERATOR} MATCHES "Visual Studio .*") - set_property(SOURCE ../../Source/Services/Common/cpp/pch.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch") + set_property(SOURCE ${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch") set_property(SOURCE ${SOURCES} APPEND PROPERTY OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch") endif() include_directories( $(ProjectDir) - $(ProjectDir)../../Source/Services - $(ProjectDir)../../Source/Services/Common - $(ProjectDir)../../Source/Services/Social - $(ProjectDir)../../Source/Services/Multiplayer - $(ProjectDir)../../Source/Services/Presence - $(ProjectDir)../../Source/Services/Notification - $(ProjectDir)../../Source/Services/TCUI - $(ProjectDir)../../Source/Services/Social/Manager - $(ProjectDir)../../Source/Services/RealTimeActivity - $(ProjectDir)../../Source/Shared - $(ProjectDir)../../include - $(ProjectDir)../../External/cpprestsdk/Release/include - $(ProjectDir)../../Source/System + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Common + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Social + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Multiplayer + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Presence + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Notification + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/TCUI + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Social/Manager + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/RealTimeActivity + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Shared + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Include + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/External/cpprestsdk/Release/Include + $(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/System ) set(CMAKE_SUPPRESS_REGENERATION true) -set(Public_Source_Files - ../../include/xsapi-cpp/achievements.h - ../../include/xsapi-cpp/leaderboard.h - ../../include/xsapi-cpp/matchmaking.h - ../../include/xsapi-cpp/multiplayer.h - ../../include/xsapi-cpp/privacy.h - ../../include/xsapi-cpp/profile.h - ../../include/xsapi-cpp/services.h - ../../include/xsapi-cpp/social.h - ../../include/xsapi-cpp/system.h - ../../include/xsapi-cpp/types.h - ../../include/xsapi-cpp/user_statistics.h - ../../include/xsapi-cpp/xbox_live_context.h - ../../include/xsapi-cpp/xbox_service_call_routed_event_args.h - ../../include/xsapi-cpp/errors.h - ../../include/xsapi-cpp/http_call.h - ../../include/xsapi-cpp/http_call_request_message.h - ../../include/xsapi-cpp/mem.h - ../../include/xsapi-cpp/social_manager.h - ../../include/xsapi-cpp/service_call_logging_config.h - ../../include/xsapi-cpp/multiplayer_manager.h - ../../include/xsapi-cpp/presence.h - ../../include/xsapi-cpp/real_time_activity.h - ../../include/xsapi-cpp/title_storage.h - ../../include/xsapi-cpp/xbox_live_app_config.h - ../../include/xsapi-cpp/xbox_live_context_settings.h - ../../include/xsapi-cpp/string_verify.h +include("GetCommonXSAPISourceFiles.cmake") +get_common_xsapi_source_files( + Public_Source_Files + Public_Source_Files_C + Common_Source_Files + System_Source_Files + Shared_Logger_Source_Files + Shared_Source_Files + Achievements_Source_Files + Achievements_Manager_Source_Files + Leaderboard_Source_Files + Privacy_Source_Files + Presence_Source_Files + TitleStorage_Source_Files + Social_Source_Files + Social_Manager_Source_Files + Stats_Source_Files + Matchmaking_Source_Files + Multiplayer_Source_Files + Multiplayer_Manager_Source_Files + StringVerify_Source_Files + MultiplayerActivity_Source_Files + RealTimeActivityManager_Source_Files + ${PATH_TO_XSAPI_ROOT} ) -set(Public_Source_Files_C - ../../include/xsapi-c/achievements_c.h - ../../include/xsapi-c/achievements_manager_c.h - ../../include/xsapi-c/errors_c.h - ../../include/xsapi-c/presence_c.h - ../../include/xsapi-c/profile_c.h - ../../include/xsapi-c/services_c.h - ../../include/xsapi-c/social_c.h - ../../include/xsapi-c/social_manager_c.h - ../../include/xsapi-c/string_verify_c.h - ../../include/xsapi-c/pal.h - ../../include/xsapi-c/xbox_live_context_c.h - ../../include/xsapi-c/xbox_live_context_settings_c.h - ../../include/xsapi-c/xbox_live_global_c.h - ../../include/xsapi-c/matchmaking_c.h - ../../include/xsapi-c/multiplayer_c.h - ../../include/xsapi-c/multiplayer_activity_c.h - ../../include/xsapi-c/multiplayer_manager_c.h - ../../include/xsapi-c/notification_c.h - ../../include/xsapi-c/privacy_c.h - ../../include/xsapi-c/title_managed_statistics_c.h - ../../include/xsapi-c/user_statistics_c.h - ../../include/xsapi-c/leaderboard_c.h - ../../include/xsapi-c/events_c.h - ../../include/xsapi-c/real_time_activity_c.h - ../../include/xsapi-c/types_c.h - ../../include/xsapi-c/http_call_c.h - ../../include/xsapi-c/title_storage_c.h - ../../include/xsapi-c/game_invite_c.h - ../../include/xsapi-c/platform_c.h - ) - -message(STATUS "Test") - if( UNITTEST ) message(STATUS "Test public") list(APPEND Public_Source_Files - ../../include/xsapi-cpp/title_callable_ui.h - ../../include/xsapi-cpp/events.h + ${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/title_callable_ui.h + ${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/events.h ) else() if( XDK ) @@ -161,169 +127,61 @@ else() message(STATUS "Windows public") list(APPEND Public_Source_Files - ../../include/xsapi-cpp/events.h + ${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/events.h ) if( PCWIN32 OR ANDROID OR UWP ) list(APPEND Public_Source_Files - ../../include/xsapi-cpp/notification_service.h + ${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/notification_service.h ) elseif( UWP OR ANDROID ) message(STATUS "UWP public") list(APPEND Public_Source_Files - ../../include/xsapi-cpp/title_callable_ui.h + ${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/title_callable_ui.h ) endif() endif() endif() -set(Common_Source_Files - ../../Source/Services/Common/pch_common.h - ../../Source/Services/Common/xbox_live_context.cpp - ../../Source/Services/Common/xbox_live_context_internal.h - ../../Source/Services/Common/xbox_live_context_settings_internal.h - ../../Source/Services/Common/xbox_live_context_settings.cpp - ../../Source/Services/Common/xbox_live_context_api.cpp - ../../Source/Services/Common/xbox_live_global_api.cpp - ) - -if( ANDROID ) +if(NOT ANDROID ) list(APPEND Common_Source_Files - ../../Source/Services/Common/Unix/pch.cpp - ../../Source/Services/Common/Unix/pch.h - ) -else() - list(APPEND - Common_Source_Files - ../../Source/Services/Common/cpp/pch.cpp - ../../Source/Services/Common/cpp/pch.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.h ) endif() -set(System_Source_Files - ../../Source/System/client_operation.h - ../../Source/System/local_storage.h - ../../Source/System/local_storage.cpp - ) - -if( UNITTEST OR PCWIN32 OR ANDROID ) +if( UNITTEST OR PCWIN32) list(APPEND System_Source_Files - ../../Source/System/platform_api.cpp + ${PATH_TO_XSAPI_ROOT}/Source/System/platform_api.cpp ) endif() if( UNITTEST OR PCWIN32 ) list(APPEND System_Source_Files - ../../Source/System/Win32/local_storage_win32.cpp + ${PATH_TO_XSAPI_ROOT}/Source/System/Win32/local_storage_win32.cpp ) endif() -if ( ANDROID ) - list(APPEND - System_Source_Files - ../../Source/System/a/java_interop.cpp - ../../Source/System/a/java_interop.h - ../../Source/System/Android/local_storage_android.cpp - ) -endif() - -set(Shared_Logger_Source_Files - ../../Source/Shared/Logger/log.cpp - ../../Source/Shared/Logger/log.h - ../../Source/Shared/Logger/log_entry.cpp - ../../Source/Shared/Logger/log_output.cpp - ../../Source/Shared/Logger/log_hc_output.cpp - ../../Source/Shared/Logger/log_hc_output.h - ) - -set(Shared_Source_Files - ../../Source/Shared/xsapi_utils.cpp - ../../Source/Shared/xsapi_json_utils.cpp - ../../Source/Shared/fault_injection.h - ../../Source/Shared/fault_injection.cpp - ../../Source/Shared/service_call_routed_handler.h - ../../Source/Shared/service_call_routed_handler.cpp - ../../Source/Shared/errors_legacy.h - ../../Source/Shared/errors.cpp - ../../Source/Shared/http_call_request_message.cpp - ../../Source/Shared/build_version.h - ../../Source/Shared/utils_locales.cpp - ../../Source/Shared/web_socket.cpp - ../../Source/Shared/xbox_live_app_config_internal.h - ../../Source/Shared/xbox_live_app_config.cpp - ../../Source/Shared/Shared_macros.h - ../../Source/Shared/xsapi_utils.h - ../../Source/Shared/xsapi_json_utils.h - ../../Source/Shared/perf_tester.h - ../../Source/Shared/web_socket.h - ../../Source/Shared/http_headers.h - ../../Source/Shared/http_call_request_message_internal.h - ../../Source/Shared/internal_mem.h - ../../Source/Shared/internal_mem.cpp - ../../Source/Shared/async_helpers.h - ../../Source/Shared/async_helpers.cpp - ../../Source/Shared/internal_errors.h - ../../Source/Shared/ref_counter.h - ../../Source/Shared/ref_counter.cpp - ../../Source/Shared/http_call_api.cpp - ../../Source/Shared/http_call_wrapper_internal.h - ../../Source/Shared/http_call_wrapper_internal.cpp - ../../Source/Shared/global_state.h - ../../Source/Shared/global_state.cpp - ../../Source/Shared/user.h - ../../Source/Shared/string_array.h - ../../Source/Shared/user.cpp - ../../Source/Shared/enum_traits.h - ../../Source/Shared/http_utils.h - ../../Source/Shared/http_utils.cpp - ../../Source/Shared/internal_types.h - ../../Source/Shared/public_utils_legacy.h - ../../Source/Shared/public_utils_legacy.cpp - ) if( UWP OR PCWIN32 OR GDK OR UNITTEST ) list(APPEND Shared_Source_Files - ../../Source/Shared/WinRT/local_config_winrt.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Shared/WinRT/local_config_winrt.cpp ) endif() if( UWP ) list(APPEND Shared_Source_Files - ../../Source/Shared/local_config.h - ../../Source/Shared/local_config.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Shared/local_config.h + ${PATH_TO_XSAPI_ROOT}/Source/Shared/local_config.cpp ) endif() -if ( ANDROID ) - list(APPEND - Shared_Source_Files - ../../Source/Shared/a/android_utils.h - ../../Source/Shared/a/android_utils.cpp - ../../Source/Shared/u/xbl_guid.h - ../../Source/Shared/a/guid.cpp - ../../Source/Shared/a/http_call_jni.cpp - ../../Source/Shared/a/http_call_jni.h - ../../Source/Shared/a/http_call_static_glue.h - ../../Source/Shared/a/http_call_static_glue.cpp - ../../Source/Shared/a/interop_jni.h - ../../Source/Shared/a/interop_jni.cpp - ../../Source/Shared/a/jni_utils.h - ../../Source/Shared/a/rwlock_guard.h - ../../Source/Shared/a/rwlock_guard.cpp - ../../Source/Shared/a/utils_a.h - ../../Source/Shared/a/utils_a.cpp - ../../Source/Shared/a/xbox_live_app_config_jni.cpp - ../../Source/Shared/a/xbox_live_app_config_static_glue.h - ../../Source/Shared/http_call_legacy.h - ../../Source/Shared/http_call_legacy.cpp - ) -endif() set(TCUI_Source_Files ) @@ -331,260 +189,75 @@ set(TCUI_Source_Files if ( UWP ) list(APPEND TCUI_Source_Files - ../../Source/Services/TCUI/UWP/title_callable_ui_uwp.cpp - ) -endif() - -if ( ANDROID ) - list(APPEND - TCUI_Source_Files - ../../Source/Services/TCUI/Android/title_callable_static_glue.h - ../../Source/Services/TCUI/Android/title_callable_ui_static_glue.cpp - ../../Source/Services/TCUI/Android/title_callable_ui_android.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/TCUI/UWP/title_callable_ui_uwp.cpp ) endif() set(Notification_Source_Files ) -if ( (NOT XDK) AND (NOT UNITTEST) ) +if ( (NOT XDK) AND (NOT UNITTEST) AND (NOT ANDROID) ) list(APPEND Notification_Source_Files - ../../Source/Services/Notification/notification_internal.h - ../../Source/Services/Notification/notification_service.cpp - ../../Source/Services/Notification/notification_api.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/notification_internal.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/notification_service.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/notification_api.cpp ) endif() if ( UWP ) list(APPEND Notification_Source_Files - ../../Source/Services/Notification/UWP/notification_service_uwp.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/UWP/notification_service_uwp.cpp ) endif() if ( PCWIN32 ) list(APPEND Notification_Source_Files - ../../Source/Services/Notification/RTA/notification_service_rta.cpp - ../../Source/Services/Notification/RTA/notification_subscription.h - ../../Source/Services/Notification/RTA/notification_subscription.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/RTA/notification_service_rta.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/RTA/notification_subscription.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/RTA/notification_subscription.cpp ) endif() -if ( ANDROID ) - list(APPEND - Notification_Source_Files - ../../Source/Services/Notification/Mobile/notification_service_mobile.cpp - ) -endif() -set(Achievements_Source_Files - ../../Source/Services/Achievements/achievement_service_internal.cpp - ../../Source/Services/Achievements/achievements_internal.h - ../../Source/Services/Achievements/achievements_result.cpp - ../../Source/Services/Achievements/achievements_api.cpp - ../../Source/Services/Achievements/achievements_subscription.cpp - ) - -set(Achievements_Manager_Source_Files - ../../Source/Services/Achievements/Manager/achievements_manager_internal.h - ../../Source/Services/Achievements/Manager/achievements_manager_internal.cpp - ../../Source/Services/Achievements/Manager/achievements_manager_api.cpp - ) - -if( (NOT UNITTEST) AND (NOT XDK) ) +if( (NOT UNITTEST) AND (NOT XDK) AND (NOT ANDROID)) set(Events_Source_Files - ../../Source/Services/Events/events_service.h - ../../Source/Services/Events/events_service_api.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_api.cpp ) endif() if ( GDK ) list(APPEND Events_Source_Files - ../../Source/Services/Events/events_service_gdk.h - ../../Source/Services/Events/events_service_gdk.cpp - ../../Source/Services/Events/events_service_etw.h - ../../Source/Services/Events/events_service_etw.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_gdk.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_gdk.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.cpp ) elseif ( UWP ) # UWP and GDK still using ETW based events service list(APPEND Events_Source_Files - ../../Source/Services/Events/events_service_etw.h - ../../Source/Services/Events/events_service_etw.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.cpp ) -elseif ( PCWIN32 OR ANDROID ) +elseif ( PCWIN32) list(APPEND Events_Source_Files - ../../Source/Services/Events/event.cpp - ../../Source/Services/Events/event_queue.cpp - ../../Source/Services/Events/event_upload_payload.cpp - ../../Source/Services/Events/events_service_xsapi.h - ../../Source/Services/Events/events_service_xsapi.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/event.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/event_queue.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/event_upload_payload.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_xsapi.h + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_xsapi.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Events/Windows/events_service_windows.cpp ) endif() -if( PCWIN32 ) - list(APPEND - Events_Source_Files - ../../Source/Services/Events/Windows/events_service_windows.cpp - ) -endif() - -if( ANDROID ) - list(APPEND - Events_Source_Files - ../../Source/Services/Events/Android/events_service_android.cpp - ) -endif() - - -set(Leaderboard_Source_Files - ../../Source/Services/Leaderboard/Leaderboard_column.cpp - ../../Source/Services/Leaderboard/Leaderboard_internal.h - ../../Source/Services/Leaderboard/Leaderboard_result.cpp - ../../Source/Services/Leaderboard/Leaderboard_row.cpp - ../../Source/Services/Leaderboard/Leaderboard_service.cpp - ) - -set(Privacy_Source_Files - ../../Source/Services/Privacy/privacy_service_internal.h - ../../Source/Services/Privacy/Privacy_service.cpp - ../../Source/Services/Privacy/privacy_api.cpp - ../../Source/Services/Privacy/permission_check_result.cpp - ) - -set(Presence_Source_Files - ../../Source/Services/Presence/device_presence_change_subscription.cpp - ../../Source/Services/Presence/presence_internal.h - ../../Source/Services/Presence/presence_device_record.cpp - ../../Source/Services/Presence/presence_record.cpp - ../../Source/Services/Presence/presence_service.cpp - ../../Source/Services/Presence/presence_title_request.cpp - ../../Source/Services/Presence/presence_user_batch_request.cpp - ../../Source/Services/Presence/title_presence_change_subscription.cpp - ../../Source/Services/Presence/presence_api.cpp - ) - -set(Titlestorage_Source_Files - ../../Source/Services/TitleStorage/title_storage_internal.h - ../../Source/Services/TitleStorage/title_storage_api.cpp - ../../Source/Services/TitleStorage/title_storage_blob_metadata_result.cpp - ../../Source/Services/TitleStorage/title_storage_service.cpp - ) - -set(Social_Source_Files - ../../Source/Services/Social/reputation_feedback_request.cpp - ../../Source/Services/Social/reputation_service.cpp - ../../Source/Services/Social/social_relationship_result.cpp - ../../Source/Services/Social/social_relationship_change_subscription.cpp - ../../Source/Services/Social/social_service.cpp - ../../Source/Services/Social/social_api.cpp - ../../Source/Services/Social/social_internal.h - ../../Source/Services/Social/profile_internal.h - ../../Source/Services/Social/profile_service.cpp - ../../Source/Services/Social/profile_api.cpp - ) - -set(Social_Manager_Source_Files - ../../Source/Services/Social/Manager/peoplehub_service.h - ../../Source/Services/Social/Manager/peoplehub_service.cpp - ../../Source/Services/Social/Manager/social_graph.h - ../../Source/Services/Social/Manager/social_graph.cpp - ../../Source/Services/Social/Manager/social_manager.cpp - ../../Source/Services/Social/Manager/social_manager_api.cpp - ../../Source/Services/Social/Manager/social_manager_internal.h - ../../Source/Services/Social/Manager/social_manager_user_group.h - ../../Source/Services/Social/Manager/social_manager_user_group.cpp - ) - -set(Stats_Source_Files - ../../Source/Services/Stats/requested_statistics.cpp - ../../Source/Services/Stats/service_configuration_statistic.cpp - ../../Source/Services/Stats/statistic.cpp - ../../Source/Services/Stats/user_statistics_result.cpp - ../../Source/Services/Stats/user_statistics_service.cpp - ../../Source/Services/Stats/user_statistics_api.cpp - ../../Source/Services/Stats/statistic_change_subscription.cpp - ../../Source/Services/Stats/user_statistics_internal.h - ../../Source/Services/Stats/title_managed_statistics_internal.h - ../../Source/Services/Stats/title_managed_statistics_service.cpp - ../../Source/Services/Stats/title_managed_statistics_api.cpp - ) - -set(Matchmaking_Source_Files - ../../Source/Services/Matchmaking/hopper_statistics_response.cpp - ../../Source/Services/Matchmaking/matchmaking_service.cpp - ../../Source/Services/Matchmaking/match_ticket_details_response.cpp - ../../Source/Services/Matchmaking/matchmaking_internal.h - ) - -set (Multiplayer_Source_Files - ../../Source/Services/Multiplayer/multiplayer_activity_handle_post_request.cpp - ../../Source/Services/Multiplayer/multiplayer_activity_query_post_request.cpp - ../../Source/Services/Multiplayer/multiplayer_invite_handle_post_request.cpp - ../../Source/Services/Multiplayer/multiplayer_service.cpp - ../../Source/Services/Multiplayer/multiplayer_search_handle_details.cpp - ../../Source/Services/Multiplayer/multiplayer_search_handle_request.cpp - ../../Source/Services/Multiplayer/multiplayer_query_search_handle_request.cpp - ../../Source/Services/Multiplayer/multiplayer_session.cpp - ../../Source/Services/Multiplayer/multiplayer_session_member.cpp - ../../Source/Services/Multiplayer/multiplayer_session_reference.cpp - ../../Source/Services/Multiplayer/multiplayer_service.cpp - ../../Source/Services/Multiplayer/multiplayer_transfer_handle_post_request.cpp - ../../Source/Services/Multiplayer/multiplayer_subscription.cpp - ../../Source/Services/Multiplayer/multiplayer_internal.h - ../../Source/Services/Multiplayer/multiplayer_serializers.cpp - ../../Source/Services/Multiplayer/multiplayer_api.cpp - ) - -set (Multiplayer_Manager_Source_Files - ../../Source/Services/Multiplayer/Manager/multiplayer_match_client.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_session_writer.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_client_manager.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_client_pending_reader.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_client_pending_request.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_game_client.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_member.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_game_session.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_lobby_client.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_local_user_manager.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_lobby_session.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_local_user.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_manager.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_manager_utils.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_manager_internal.h - ../../Source/Services/Multiplayer/Manager/multiplayer_event_queue.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_event_args.cpp - ../../Source/Services/Multiplayer/Manager/multiplayer_manager_api.cpp - ) - -set(StringVerify_Source_Files - ../../Source/Services/StringVerify/string_service.cpp - ../../Source/Services/StringVerify/string_service_internal.h - ../../Source/Services/StringVerify/verify_string_result.cpp - ) - -set(MultiplayerActivity_Source_Files - ../../Source/Services/MultiplayerActivity/multiplayer_activity_api.cpp - ../../Source/Services/MultiplayerActivity/multiplayer_activity_internal.h - ../../Source/Services/MultiplayerActivity/multiplayer_activity_service.cpp - ../../Source/Services/MultiplayerActivity/multiplayer_activity_info.cpp - ) - -set(RealTimeActivityManager_Source_Files - ../../Source/Services/RealTimeActivityManager/real_time_activity_manager.h - ../../Source/Services/RealTimeActivityManager/real_time_activity_manager.cpp - ../../Source/Services/RealTimeActivityManager/real_time_activity_connection.h - ../../Source/Services/RealTimeActivityManager/real_time_activity_connection.cpp - ../../Source/Services/RealTimeActivityManager/real_time_activity_subscription.h - ../../Source/Services/RealTimeActivityManager/real_time_activity_api.cpp - ) - set(Ship_Source_Files - ../../Source/Services/Common/cpp/pch.cpp + ${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp build.cpp ) @@ -654,113 +327,146 @@ else() ${Privacy_Source_Files} ${Stats_Source_Files} ${Leaderboard_Source_Files} - ${Titlestorage_Source_Files} + ${TitleStorage_Source_Files} ${MultiplayerActivity_Source_Files} ${RealTimeActivityManager_Source_Files} ) - if( NOT GDK ) - list(APPEND - SOURCE_FILES - ${Notification_Source_Files} - ${TCUI_Source_Files} - ${Leaderboard_Source_Files} - ${Matchmaking_Source_Files} - ) - endif() - if( NOT XDK ) - list(APPEND - SOURCE_FILES - ${Events_Source_Files} - ) - endif() + if (NOT ANDROID) + if( NOT GDK ) + list(APPEND + SOURCE_FILES + ${Notification_Source_Files} + ${TCUI_Source_Files} + ${Leaderboard_Source_Files} + ${Matchmaking_Source_Files} + ) + endif() - if( NOT WINRT ) - message(STATUS "Adding flat C source") + if( NOT XDK ) + list(APPEND + SOURCE_FILES + ${Events_Source_Files} + ) + endif() + + if( NOT WINRT ) + message(STATUS "Adding flat C source") + list(APPEND + SOURCE_FILES + ${Public_Source_Files_C} + ${Multiplayer_Source_Files_C} + ${Multiplayer_Manager_Source_Files_C} + ) + endif() + else() + # if Android + include("GetAndroidXSAPISourceFiles.cmake") + + get_android_xsapi_source_files( + Common_Android_Source_Files + System_Android_Source_Files + Shared_Android_Source_Files + TCUI_Android_Source_Files + Notification_Android_Source_Files + Events_Android_Source_Files + ${PATH_TO_XSAPI_ROOT} + ) + + source_group("C++ Source\\System" FILES ${System_Android_Source_Files}) + source_group("C++ Source\\Shared" FILES ${Shared_Android_Source_Files}) + source_group("C++ Source\\Services\\TCUI" FILES ${TCUI_Android_Source_Files}) + source_group("C++ Source\\Services\\Notification" FILES ${Notification_Android_Source_Files}) + source_group("C++ Source\\Services\\Common" FILES ${Common_Android_Source_Files}) + source_group("C++ Source\\Services\\Events" FILES ${Events_Android_Source_Files}) + list(APPEND SOURCE_FILES - ${Public_Source_Files_C} - ${Multiplayer_Source_Files_C} - ${Multiplayer_Manager_Source_Files_C} + ${System_Android_Source_Files} + ${Shared_Android_Source_Files} + ${TCUI_Android_Source_Files} + ${Notification_Android_Source_Files} + ${Common_Android_Source_Files} + ${Events_Android_Source_Files} ) endif() endif() # SHIP set(UnitTests_Source_Files_Mocks - ../../Tests/UnitTests/Mocks/mock_web_socket.h - ../../Tests/UnitTests/Mocks/mock_web_socket.cpp - ../../Tests/UnitTests/Mocks/mock_user.cpp - ../../Tests/UnitTests/Mocks/xal_mocks.cpp - ../../Tests/UnitTests/Mocks/http_mock.h - ../../Tests/UnitTests/Mocks/http_mock.cpp - ../../Tests/UnitTests/Mocks/mock_rta_service.h - ../../Tests/UnitTests/Mocks/mock_rta_service.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_web_socket.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_web_socket.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_user.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/xal_mocks.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/http_mock.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/http_mock.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_rta_service.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_rta_service.cpp ) set(UnitTests_Source_Files_Support - ../../Tests/UnitTests/Support/iso8601.cpp - ../../Tests/UnitTests/Support/DefineTestMacros.h - ../../Tests/UnitTests/Support/iso8601.h - ../../Tests/UnitTests/Support/UnitTestIncludes.h - ../../Tests/UnitTests/Support/event.h - ../../Tests/UnitTests/Support/event.cpp - ../../Tests/UnitTests/Support/unit_test_helpers.h - ../../Tests/UnitTests/Support/unit_test_helpers.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/iso8601.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/DefineTestMacros.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/iso8601.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/UnitTestIncludes.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/event.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/event.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/unit_test_helpers.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/unit_test_helpers.cpp ) if ( TAEF ) list(APPEND UnitTests_Source_Files_Support - ../../Tests/UnitTests/Support/TAEF/UnitTestBase.h - ../../Tests/UnitTests/Support/TAEF/UnitTestIncludes_TAEF.h - ../../Tests/UnitTests/Support/TAEF/UnitTestBase.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TAEF/UnitTestBase.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TAEF/UnitTestIncludes_TAEF.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TAEF/UnitTestBase.cpp ) endif() if ( TE ) list(APPEND UnitTests_Source_Files_Support - ../../Tests/UnitTests/Support/TE/unittesthelpers_te.cpp - ../../Tests/UnitTests/Support/TE/unittesthelpers_te.h - ../../Tests/UnitTests/Support/TE/unittestincludes_te.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TE/unittesthelpers_te.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TE/unittesthelpers_te.h + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TE/unittestincludes_te.h ) endif() set(UnitTests_Source_Files_Tests - ../../Tests/UnitTests/Tests/Services/AchievementsTests.cpp - ../../Tests/UnitTests/Tests/Services/AchievementsManagerTests.cpp - ../../Tests/UnitTests/Tests/Services/ErrorTests.cpp - ../../Tests/UnitTests/Tests/Services/LeaderboardTests.cpp - ../../Tests/UnitTests/Tests/Services/MatchmakingTests.cpp - ../../Tests/UnitTests/Tests/Services/MultiplayerManagerTests.cpp - ../../Tests/UnitTests/Tests/Services/MultiplayerTests.cpp - ../../Tests/UnitTests/Tests/Services/PeoplehubTests.cpp - ../../Tests/UnitTests/Tests/Services/PresenceTests.cpp - ../../Tests/UnitTests/Tests/Services/PrivacyTests.cpp - ../../Tests/UnitTests/Tests/Services/ProfileTests.cpp - ../../Tests/UnitTests/Tests/Services/RealTimeActivityManagerTests.cpp - ../../Tests/UnitTests/Tests/Services/ReputationTests.cpp - ../../Tests/UnitTests/Tests/Services/SocialManagerTests.cpp - ../../Tests/UnitTests/Tests/Services/SocialTests.cpp - ../../Tests/UnitTests/Tests/Services/StatsTests.cpp - ../../Tests/UnitTests/Tests/Services/TitleManagedStatsTests.cpp - ../../Tests/UnitTests/Tests/Services/StringVerifyTests.cpp - ../../Tests/UnitTests/Tests/Services/TitleStorageTests.cpp - ../../Tests/UnitTests/Tests/Services/MultiplayerActivityTests.cpp - ../../Tests/UnitTests/Tests/Shared/HttpCallTests.cpp - ../../Tests/UnitTests/Tests/Shared/HttpCallSettingsTests.cpp - ../../Tests/UnitTests/Tests/Shared/LogTests.cpp - ../../Tests/UnitTests/Tests/Shared/XboxLiveContextTests.cpp - ../../Tests/UnitTests/Tests/Shared/XboxLiveCallbackTests.cpp - ../../Tests/UnitTests/Tests/Shared/GlobalTests.cpp - ../../Tests/UnitTests/Tests/Shared/PlatformTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/AchievementsTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/AchievementsManagerTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/ErrorTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/LeaderboardTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MatchmakingTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MultiplayerManagerTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MultiplayerTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/PeoplehubTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/PresenceTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/PrivacyTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/ProfileTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/RealTimeActivityManagerTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/ReputationTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/SocialManagerTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/SocialTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/StatsTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TitleManagedStatsTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/StringVerifyTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TitleStorageTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MultiplayerActivityTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/HttpCallTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/HttpCallSettingsTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/LogTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/XboxLiveContextTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/XboxLiveCallbackTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/GlobalTests.cpp + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/PlatformTests.cpp ) set(TestJson_Files - ../../Tests/UnitTests/Tests/Services/TestResponses/Multiplayer.json - ../../Tests/UnitTests/Tests/Services/TestResponses/Matchmaking.json - ../../Tests/UnitTests/Tests/Services/TestResponses/MultiplayerManager.json + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TestResponses/Multiplayer.json + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TestResponses/Matchmaking.json + ${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TestResponses/MultiplayerManager.json ) set_property(SOURCE ${TestJson_Files} PROPERTY VS_DEPLOYMENT_CONTENT 1) diff --git a/Utilities/CMake/GetAndroidXSAPISourceFiles.cmake b/Utilities/CMake/GetAndroidXSAPISourceFiles.cmake new file mode 100644 index 00000000..e1f677ec --- /dev/null +++ b/Utilities/CMake/GetAndroidXSAPISourceFiles.cmake @@ -0,0 +1,79 @@ +cmake_minimum_required(VERSION 3.6) + + +function(GET_ANDROID_XSAPI_SOURCE_FILES + OUT_COMMON_SOURCE_FILES + OUT_SYSTEM_SOURCE_FILES + OUT_SHARED_SOURCE_FILES + OUT_TCUI_SOURCE_FILES + OUT_NOTIFICATION_SOURCE_FILES + OUT_EVENTS_SOURCE_FILES + PATH_TO_ROOT + ) + + set(${OUT_COMMON_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Common/Unix/pch.cpp" + "${PATH_TO_ROOT}/Source/Services/Common/Unix/pch.h" + PARENT_SCOPE + ) + + set(${OUT_SYSTEM_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/System/a/java_interop.cpp" + "${PATH_TO_ROOT}/Source/System/a/java_interop.h" + "${PATH_TO_ROOT}/Source/System/Android/local_storage_android.cpp" + "${PATH_TO_ROOT}/Source/System/platform_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_SHARED_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Shared/a/android_utils.h" + "${PATH_TO_ROOT}/Source/Shared/a/android_utils.cpp" + "${PATH_TO_ROOT}/Source/Shared/u/xbl_guid.h" + "${PATH_TO_ROOT}/Source/Shared/a/guid.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/http_call_jni.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/http_call_jni.h" + "${PATH_TO_ROOT}/Source/Shared/a/http_call_static_glue.h" + "${PATH_TO_ROOT}/Source/Shared/a/http_call_static_glue.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/interop_jni.h" + "${PATH_TO_ROOT}/Source/Shared/a/interop_jni.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/jni_utils.h" + "${PATH_TO_ROOT}/Source/Shared/a/rwlock_guard.h" + "${PATH_TO_ROOT}/Source/Shared/a/rwlock_guard.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/utils_a.h" + "${PATH_TO_ROOT}/Source/Shared/a/utils_a.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/xbox_live_app_config_jni.cpp" + "${PATH_TO_ROOT}/Source/Shared/a/xbox_live_app_config_static_glue.h" + "${PATH_TO_ROOT}/Source/Shared/http_call_legacy.h" + "${PATH_TO_ROOT}/Source/Shared/http_call_legacy.cpp" + PARENT_SCOPE + ) + + set(${OUT_TCUI_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/TCUI/Android/title_callable_static_glue.h" + "${PATH_TO_ROOT}/Source/Services/TCUI/Android/title_callable_ui_static_glue.cpp" + "${PATH_TO_ROOT}/Source/Services/TCUI/Android/title_callable_ui_android.cpp" + PARENT_SCOPE + ) + + set(${OUT_NOTIFICATION_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Notification/Mobile/notification_service_mobile.cpp" + "${PATH_TO_ROOT}/Source/Services/Notification/notification_internal.h" + "${PATH_TO_ROOT}/Source/Services/Notification/notification_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Notification/notification_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_EVENTS_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Events/event.cpp" + "${PATH_TO_ROOT}/Source/Services/Events/event_queue.cpp" + "${PATH_TO_ROOT}/Source/Services/Events/events_service.h" + "${PATH_TO_ROOT}/Source/Services/Events/events_service_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Events/event_upload_payload.cpp" + "${PATH_TO_ROOT}/Source/Services/Events/events_service_xsapi.h" + "${PATH_TO_ROOT}/Source/Services/Events/events_service_xsapi.cpp" + "${PATH_TO_ROOT}/Source/Services/Events/Android/events_service_android.cpp" + PARENT_SCOPE + ) + + +endfunction() \ No newline at end of file diff --git a/Utilities/CMake/GetCommonXSAPISourceFiles.cmake b/Utilities/CMake/GetCommonXSAPISourceFiles.cmake new file mode 100644 index 00000000..5a7ff16a --- /dev/null +++ b/Utilities/CMake/GetCommonXSAPISourceFiles.cmake @@ -0,0 +1,335 @@ +cmake_minimum_required(VERSION 3.6) + +function(GET_COMMON_XSAPI_SOURCE_FILES + OUT_PUBLIC_SOURCE_FILES + OUT_PUBLIC_C_SOURCE_FILES + OUT_COMMON_SOURCE_FILES + OUT_SYSTEM_SOURCE_FILES + OUT_LOGGER_SOURCE_FILES + OUT_SHARED_SOURCE_FILES + OUT_ACHIEVEMENTS_SOURCE_FILES + OUT_ACHIEVEMENTS_MANAGER_SOURCE_FILES + OUT_LEADERBOARD_SOURCE_FILES + OUT_PRIVACY_SOURCE_FILES + OUT_PRESENCE_SOURCE_FILES + OUT_TITLESTORAGE_SOURCE_FILES + OUT_SOCIAL_SOURCE_FILES + OUT_SOCIAL_MANAGER_SOURCE_FILES + OUT_STATS_SOURCE_FILES + OUT_MATCMAKING_SOURCE_FILES + OUT_MULTIPLAYER_SOURCE_FILES + OUT_MULTIPLAYER_MANAGER_SOURCE_FILES + OUT_STRINGVERIFY_SOURCE_FILES + OUT_MULTIPLAYERACTIVITY_SOURCE_FILES + OUT_REALTIMEACTIVITY_MANAGER_SOURCE_FILES + PATH_TO_ROOT + ) + + set(${OUT_PUBLIC_SOURCE_FILES} + "${PATH_TO_ROOT}/Include/xsapi-cpp/achievements.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/leaderboard.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/matchmaking.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/multiplayer.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/privacy.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/profile.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/services.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/social.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/system.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/types.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/user_statistics.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_live_context.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_service_call_routed_event_args.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/errors.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/http_call.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/http_call_request_message.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/mem.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/social_manager.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/service_call_logging_config.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/multiplayer_manager.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/presence.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/real_time_activity.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/title_storage.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_live_app_config.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_live_context_settings.h" + "${PATH_TO_ROOT}/Include/xsapi-cpp/string_verify.h" + PARENT_SCOPE + ) + + set(${OUT_PUBLIC_C_SOURCE_FILES} + "${PATH_TO_ROOT}/Include/xsapi-c/achievements_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/achievements_manager_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/errors_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/presence_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/profile_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/services_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/social_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/social_manager_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/string_verify_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/pal.h" + "${PATH_TO_ROOT}/Include/xsapi-c/xbox_live_context_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/xbox_live_context_settings_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/xbox_live_global_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/matchmaking_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/multiplayer_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/multiplayer_activity_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/multiplayer_manager_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/notification_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/privacy_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/title_managed_statistics_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/user_statistics_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/leaderboard_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/events_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/real_time_activity_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/types_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/http_call_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/title_storage_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/game_invite_c.h" + "${PATH_TO_ROOT}/Include/xsapi-c/platform_c.h" + PARENT_SCOPE + ) + + set(${OUT_COMMON_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Common/pch_common.h" + "${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context.cpp" + "${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_internal.h" + "${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_settings_internal.h" + "${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_settings.cpp" + "${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Common/xbox_live_global_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_SYSTEM_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/System/client_operation.h" + "${PATH_TO_ROOT}/Source/System/local_storage.h" + "${PATH_TO_ROOT}/Source/System/local_storage.cpp" + PARENT_SCOPE + ) + + set(${OUT_LOGGER_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Shared/Logger/log.cpp" + "${PATH_TO_ROOT}/Source/Shared/Logger/log.h" + "${PATH_TO_ROOT}/Source/Shared/Logger/log_entry.cpp" + "${PATH_TO_ROOT}/Source/Shared/Logger/log_output.cpp" + "${PATH_TO_ROOT}/Source/Shared/Logger/log_hc_output.cpp" + "${PATH_TO_ROOT}/Source/Shared/Logger/log_hc_output.h" + PARENT_SCOPE + ) + + set(${OUT_SHARED_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Shared/xsapi_utils.cpp" + "${PATH_TO_ROOT}/Source/Shared/xsapi_json_utils.cpp" + "${PATH_TO_ROOT}/Source/Shared/fault_injection.h" + "${PATH_TO_ROOT}/Source/Shared/fault_injection.cpp" + "${PATH_TO_ROOT}/Source/Shared/service_call_routed_handler.h" + "${PATH_TO_ROOT}/Source/Shared/service_call_routed_handler.cpp" + "${PATH_TO_ROOT}/Source/Shared/errors_legacy.h" + "${PATH_TO_ROOT}/Source/Shared/errors.cpp" + "${PATH_TO_ROOT}/Source/Shared/http_call_request_message.cpp" + "${PATH_TO_ROOT}/Source/Shared/build_version.h" + "${PATH_TO_ROOT}/Source/Shared/utils_locales.cpp" + "${PATH_TO_ROOT}/Source/Shared/web_socket.cpp" + "${PATH_TO_ROOT}/Source/Shared/xbox_live_app_config_internal.h" + "${PATH_TO_ROOT}/Source/Shared/xbox_live_app_config.cpp" + "${PATH_TO_ROOT}/Source/Shared/Shared_macros.h" + "${PATH_TO_ROOT}/Source/Shared/xsapi_utils.h" + "${PATH_TO_ROOT}/Source/Shared/xsapi_json_utils.h" + "${PATH_TO_ROOT}/Source/Shared/perf_tester.h" + "${PATH_TO_ROOT}/Source/Shared/web_socket.h" + "${PATH_TO_ROOT}/Source/Shared/http_headers.h" + "${PATH_TO_ROOT}/Source/Shared/http_call_request_message_internal.h" + "${PATH_TO_ROOT}/Source/Shared/internal_mem.h" + "${PATH_TO_ROOT}/Source/Shared/internal_mem.cpp" + "${PATH_TO_ROOT}/Source/Shared/async_helpers.h" + "${PATH_TO_ROOT}/Source/Shared/async_helpers.cpp" + "${PATH_TO_ROOT}/Source/Shared/internal_errors.h" + "${PATH_TO_ROOT}/Source/Shared/ref_counter.h" + "${PATH_TO_ROOT}/Source/Shared/ref_counter.cpp" + "${PATH_TO_ROOT}/Source/Shared/http_call_api.cpp" + "${PATH_TO_ROOT}/Source/Shared/http_call_wrapper_internal.h" + "${PATH_TO_ROOT}/Source/Shared/http_call_wrapper_internal.cpp" + "${PATH_TO_ROOT}/Source/Shared/global_state.h" + "${PATH_TO_ROOT}/Source/Shared/global_state.cpp" + "${PATH_TO_ROOT}/Source/Shared/user.h" + "${PATH_TO_ROOT}/Source/Shared/string_array.h" + "${PATH_TO_ROOT}/Source/Shared/user.cpp" + "${PATH_TO_ROOT}/Source/Shared/enum_traits.h" + "${PATH_TO_ROOT}/Source/Shared/http_utils.h" + "${PATH_TO_ROOT}/Source/Shared/http_utils.cpp" + "${PATH_TO_ROOT}/Source/Shared/internal_types.h" + "${PATH_TO_ROOT}/Source/Shared/public_utils_legacy.h" + "${PATH_TO_ROOT}/Source/Shared/public_utils_legacy.cpp" + PARENT_SCOPE + ) + + set(${OUT_ACHIEVEMENTS_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Achievements/achievement_service_internal.cpp" + "${PATH_TO_ROOT}/Source/Services/Achievements/achievements_internal.h" + "${PATH_TO_ROOT}/Source/Services/Achievements/achievements_result.cpp" + "${PATH_TO_ROOT}/Source/Services/Achievements/achievements_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Achievements/achievements_subscription.cpp" + PARENT_SCOPE + ) + + set(${OUT_ACHIEVEMENTS_MANAGER_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Achievements/Manager/achievements_manager_internal.h" + "${PATH_TO_ROOT}/Source/Services/Achievements/Manager/achievements_manager_internal.cpp" + "${PATH_TO_ROOT}/Source/Services/Achievements/Manager/achievements_manager_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_LEADERBOARD_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_column.cpp" + "${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_internal.h" + "${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_result.cpp" + "${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_row.cpp" + "${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_service.cpp" + PARENT_SCOPE + ) + + set(${OUT_PRIVACY_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Privacy/privacy_service_internal.h" + "${PATH_TO_ROOT}/Source/Services/Privacy/Privacy_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Privacy/privacy_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Privacy/permission_check_result.cpp" + PARENT_SCOPE + ) + + set(${OUT_PRESENCE_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Presence/device_presence_change_subscription.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_internal.h" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_device_record.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_record.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_title_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_user_batch_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/title_presence_change_subscription.cpp" + "${PATH_TO_ROOT}/Source/Services/Presence/presence_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_TITLESTORAGE_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_internal.h" + "${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_api.cpp" + "${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_blob_metadata_result.cpp" + "${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_service.cpp" + PARENT_SCOPE + ) + + set(${OUT_SOCIAL_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Social/reputation_feedback_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/reputation_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/social_relationship_result.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/social_relationship_change_subscription.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/social_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/social_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/social_internal.h" + "${PATH_TO_ROOT}/Source/Services/Social/profile_internal.h" + "${PATH_TO_ROOT}/Source/Services/Social/profile_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/profile_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_SOCIAL_MANAGER_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Social/Manager/peoplehub_service.h" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/peoplehub_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_graph.h" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_graph.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_internal.h" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_user_group.h" + "${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_user_group.cpp" + PARENT_SCOPE + ) + + set(${OUT_STATS_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Stats/requested_statistics.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/service_configuration_statistic.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/statistic.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_result.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_api.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/statistic_change_subscription.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_internal.h" + "${PATH_TO_ROOT}/Source/Services/Stats/title_managed_statistics_internal.h" + "${PATH_TO_ROOT}/Source/Services/Stats/title_managed_statistics_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Stats/title_managed_statistics_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_MATCMAKING_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Matchmaking/hopper_statistics_response.cpp" + "${PATH_TO_ROOT}/Source/Services/Matchmaking/matchmaking_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Matchmaking/match_ticket_details_response.cpp" + "${PATH_TO_ROOT}/Source/Services/Matchmaking/matchmaking_internal.h" + PARENT_SCOPE + ) + + set(${OUT_MULTIPLAYER_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_activity_handle_post_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_activity_query_post_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_invite_handle_post_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_search_handle_details.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_search_handle_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_query_search_handle_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_session.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_session_member.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_session_reference.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_service.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_transfer_handle_post_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_subscription.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_internal.h" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_serializers.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_MULTIPLAYER_MANAGER_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_match_client.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_session_writer.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_client_manager.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_client_pending_reader.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_client_pending_request.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_game_client.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_member.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_game_session.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_lobby_client.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_local_user_manager.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_lobby_session.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_local_user.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager_utils.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager_internal.h" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_event_queue.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_event_args.cpp" + "${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager_api.cpp" + PARENT_SCOPE + ) + + set(${OUT_STRINGVERIFY_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/StringVerify/string_service.cpp" + "${PATH_TO_ROOT}/Source/Services/StringVerify/string_service_internal.h" + "${PATH_TO_ROOT}/Source/Services/StringVerify/verify_string_result.cpp" + PARENT_SCOPE + ) + + set(${OUT_MULTIPLAYERACTIVITY_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_api.cpp" + "${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_internal.h" + "${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_service.cpp" + "${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_info.cpp" + PARENT_SCOPE + ) + + set(${OUT_REALTIMEACTIVITY_MANAGER_SOURCE_FILES} + "${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_manager.h" + "${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_manager.cpp" + "${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_connection.h" + "${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_connection.cpp" + "${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_subscription.h" + "${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_api.cpp" + PARENT_SCOPE + ) +endfunction() \ No newline at end of file diff --git a/Utilities/Docs/quality-override.txt b/Utilities/Docs/quality-override.txt new file mode 100644 index 00000000..d2205f7b --- /dev/null +++ b/Utilities/Docs/quality-override.txt @@ -0,0 +1,231 @@ +# Expected format for each line is "filename, quality" where filename is the name Noggin generates for the API. +# In most cases, filename is the same as the API name. Method names are the exception and look like this: classname_methodname.md. +# Example of a class method: +# IDxcPdbUtils_GetArg.md, good +# Example of an enum: +# xsystemdevicetype.md, good +# +# If the --override-file option is not specified, Noggin looks for this file in C:\Users\\Documents\Headers +# +# multiplayer_c +xblmultiplayerarbitrationserver.md, good, task 31827719 +xblmultiplayergetactivitiesforsocialgroupasync.md, good, task 33100385 +xblmultiplayergetactivitiesforsocialgroupresult.md, good, task 33100385 +xblmultiplayergetactivitiesforsocialgroupresultcount.md, good, task 33100385 +xblmultiplayergetactivitiesforusersasync.md, good, task 33100385 +xblmultiplayergetactivitiesforusersresult.md, good, task 33100385 +xblmultiplayergetactivitiesforusersresultcount.md, good, task 33100385 +xblmultiplayergetactivitieswithpropertiesforsocialgroupasync.md, good, task 33100385 +xblmultiplayergetactivitieswithpropertiesforsocialgroupresult.md, good, task 33100385 +xblmultiplayergetactivitieswithpropertiesforsocialgroupresultsize.md, good, task 33100385 +xblmultiplayergetactivitieswithpropertiesforusersasync.md, good, task 33100385 +xblmultiplayergetactivitieswithpropertiesforusersresult.md, good, task 33100385 +xblmultiplayergetactivitieswithpropertiesforusersresultsize.md, good, task 33100385 +xblmultiplayerinitializationstage.md, good, task 33100385 +xblmultiplayermeasurementfailure.md, good, task 33100385 +xblmultiplayermetrics.md, good, task 33100385 +xblmultiplayersessionrestriction.md, good, task 33100385 +xblmultiplayersessionstatus.md, good, task 33100385 +xblmultiplayertournamentteam.md, good, task 31827719 +xblnetworkaddresstranslationsetting.md, good, task 33100385 +xbltournamentarbitrationstate.md, good, task 31827719 +xbltournamentarbitrationstatus.md, good, task 31827719 +xbltournamentgameresult.md, good, task 31827719 +xbltournamentgameresultsource.md, good, task 31827719 +xbltournamentgameresultwithrank.md, good, task 31827719 +xbltournamentregistrationreason.md, good, task 31827719 +xbltournamentregistrationstate.md, good, task 31827719 +xbltournamentreference.md, good, task 31827719 +xbltournamentteamresult.md, good, task 31827719 +multiplayer_c\enums\xblmultiplayermeasurementfailure.md, good, 5/7 doc review +multiplayer_c\enums\xblmultiplayermetrics.md, good, 5/7 doc review +multiplayer_c\enums\xblmultiplayersessionchangetypes.md, good, 5/7 doc review +multiplayer_c\enums\xblmultiplayersessionvisibility.md, good, 5/7 doc review +multiplayer_c\enums\xblnetworkaddresstranslationsetting.md, good, 5/7 doc review +multiplayer_c\enums\xbltournamentarbitrationstate.md, good, 5/7 doc review +multiplayer_c\enums\xbltournamentarbitrationstatus.md, good, 5/7 doc review +multiplayer_c\enums\xbltournamentgameresult.md, good, 5/7 doc review +multiplayer_c\enums\xbltournamentgameresultsource.md, good, 5/7 doc review +multiplayer_c\enums\xbltournamentregistrationreason.md, good, 5/7 doc review +multiplayer_c\enums\xbltournamentregistrationstate.md, good, 5/7 doc review +multiplayer_c\enums\xblwritesessionstatus.md, good, 5/7 doc review +multiplayer_c\functions\xblmultiplayersessionreferencecreate.md, good, task 33320134 +multiplayer_c\functions\xblmultiplayersessionreferenceisvalid.md, good, task 33320134 +multiplayer_c\functions\xblmultiplayersessionreferenceparsefromuripath.md, good, task 33320134 +multiplayer_c\functions\xblmultiplayersessionreferencetouripath.md, good, task 33320134 +multiplayer_c\structs\xblmultiplayermatchmakingserver.md, good, task 33320134 +multiplayer_c\structs\xblmultiplayersessionconstants.md, good, task 33320134 +multiplayer_c\structs\xblmultiplayertournamentsserver.md, good, task 33320134 +# +# multiplayer_activity_c +xblmultiplayeractivityaddinvitehandler.md, good +xblmultiplayeractivityencountertype.md, good +xblmultiplayeractivityflushrecentplayersasync.md, good +xblmultiplayeractivitygetactivityasync.md, good +xblmultiplayeractivitygetactivityresultsize.md, good +xblmultiplayeractivityinfo.md, good +xblmultiplayeractivityinvitedata.md, good +xblmultiplayeractivityinvitehandler.md, good +xblmultiplayeractivityjoinrestriction.md, good +xblmultiplayeractivityplatform.md, good +xblmultiplayeractivityrecentplayerupdate.md, good +xblmultiplayeractivityremoveinvitehandler.md, good +xblmultiplayeractivityupdaterecentplayers.md, good +multiplayer_activity_c\enums\xblmultiplayeractivityencountertype.md, good, 5/7 doc review +multiplayer_activity_c\enums\xblmultiplayeractivityjoinrestriction.md, good, 5/7 doc review +multiplayer_activity_c\enums\xblmultiplayeractivityplatform.md, good, 5/7 doc review +# +# multiplayer_manager_c +multiplayer_manager_c\enums\xblmultiplayerjoinability.md, good, 5/7 doc review +multiplayer_manager_c\enums\xblmultiplayermatchstatus.md, good, 5/7 doc review +multiplayer_manager_c\enums\xblmultiplayersessiontype.md, good, 5/7 doc review +# +# achievements_c +achievements_c\enums\xblachievementmediaassettype.md, good, 5/7 doc review +achievements_c\enums\xblachievementorderby.md, good, 5/7 doc review +achievements_c\enums\xblachievementparticipationtype.md, good, 5/7 doc review +achievements_c\enums\xblachievementprogressstate.md, good, 5/7 doc review +achievements_c\enums\xblachievementraritycategory.md, good, 5/7 doc review +achievements_c\enums\xblachievementrewardtype.md, good, 5/7 doc review +achievements_c\enums\xblachievementtype.md, good, 5/7 doc review +# +# achievements_manager_c +achievements_manager_c\enums\xblachievementsmanagereventtype.md, good, 5/7 doc review +# +# http_call_c +http_call_c\enums\xblhttpcallresponsebodytype.md, good, 5/7 doc review +# +# leaderboard_c +leaderboard_c\enums\xblleaderboardsortorder.md, good, 5/7 doc review +leaderboard_c\enums\xblsocialgrouptype.md, good, 5/7 doc review +# +# matchmaking_c +matchmaking_c\enums\xblpreservesessionmode.md, good, 5/7 doc review +# +# platform_c +platform_c\enums\xblclientoperationresult.md, good, 5/7 doc review +platform_c\enums\xbllocalstoragewritemode.md, good, 5/7 doc review +# +# presence_c +presence_c\enums\xblpresencebroadcastprovider.md, good, 5/7 doc review +presence_c\enums\xblpresencedetaillevel.md, good, 5/7 doc review +presence_c\enums\xblpresencedevicetype.md, good, 5/7 doc review +presence_c\enums\xblpresencemediaidtype.md, good, 5/7 doc review +presence_c\enums\xblpresencetitlestate.md, good, 5/7 doc review +presence_c\enums\xblpresencetitleviewstate.md, good, 5/7 doc review +presence_c\enums\xblpresenceuserstate.md, good, 5/7 doc review + +xblachievementsresulthandle.md,good, TOCDesigner 5/17/2021 +xblachievementsmanagerresulthandle.md,good, TOCDesigner 5/17/2021 +xblhttpcallhandle.md,good, TOCDesigner 5/17/2021 +xblmultiplayersearchhandle.md,good, TOCDesigner 5/17/2021 +xblmultiplayersessionhandle.md,good, TOCDesigner 5/17/2021 +xblmultiplayereventargshandle.md,good, TOCDesigner 5/17/2021 +xblclientoperationhandle.md,good, TOCDesigner 5/17/2021 +xblpresencerecordhandle.md,good, TOCDesigner 5/17/2021 +xblsocialrelationshipresulthandle.md,good, TOCDesigner 5/17/2021 +xblsocialmanagerusergrouphandle.md,good, TOCDesigner 5/17/2021 +xbltitlestorageblobmetadataresulthandle.md,good, TOCDesigner 5/17/2021 +xblcontexthandle.md,good, TOCDesigner 5/17/2021 +xblpermission.md,good, TOCDesigner 5/18/2021 +xblpermissiondenyreason.md,good, TOCDesigner 5/18/2021 +xblprivacysetting.md,good, TOCDesigner 5/18/2021 +xblprivilege.md,good, TOCDesigner 5/18/2021 +xblreputationfeedbacktype.md,good, TOCDesigner 5/18/2021 +xblsocialnotificationtype.md,good, TOCDesigner 5/18/2021 +xblsocialrelationshipfilter.md,good, TOCDesigner 5/18/2021 +xblpresencefilter.md,good, TOCDesigner 5/18/2021 +xblrelationshipfilter.md,good, TOCDesigner 5/18/2021 +xblsocialmanagereventtype.md,good, TOCDesigner 5/18/2021 +xblsocialmanagerextradetaillevel.md,good, TOCDesigner 5/18/2021 +xblsocialusergrouptype.md,good, TOCDesigner 5/18/2021 +xblverifystringresultcode.md,good, TOCDesigner 5/18/2021 +xbltitlemanagedstattype.md,good, TOCDesigner 5/18/2021 +xblapitype.md,good, TOCDesigner 5/18/2021 +xblpermissioncheckresult.md,good, TOCDesigner 5/18/2021 +xblpermissiondenyreasondetails.md,good, TOCDesigner 5/18/2021 +xblachievement.md,good, TOCDesigner 5/18/2021 +xblachievementmediaasset.md,good, TOCDesigner 5/18/2021 +xblachievementprogression.md,good, TOCDesigner 5/18/2021 +xblachievementrequirement.md,good, TOCDesigner 5/18/2021 +xblachievementreward.md,good, TOCDesigner 5/18/2021 +xblachievementtimewindow.md,good, TOCDesigner 5/18/2021 +xblachievementtitleassociation.md,good, TOCDesigner 5/18/2021 +xblleaderboardcolumn.md,good, TOCDesigner 5/18/2021 +xblleaderboardquery.md,good, TOCDesigner 5/18/2021 +xblleaderboardresult.md,good, TOCDesigner 5/18/2021 +xblleaderboardrow.md,good, TOCDesigner 5/18/2021 +xbluserprofile.md,good, TOCDesigner 5/18/2021 +xblreputationfeedbackitem.md,good, TOCDesigner 5/18/2021 +xblsocialrelationship.md,good, TOCDesigner 5/18/2021 +xblpreferredcolor.md,good, TOCDesigner 5/18/2021 +xblsocialmanagerevent.md,good, TOCDesigner 5/18/2021 +xblsocialmanagerpresencerecord.md,good, TOCDesigner 5/18/2021 +xblsocialmanagerpresencetitlerecord.md,good, TOCDesigner 5/18/2021 +xblsocialmanageruser.md,good, TOCDesigner 5/18/2021 +xbltitlehistory.md,good, TOCDesigner 5/18/2021 +xblverifystringresult.md,good, TOCDesigner 5/18/2021 +xbltitlemanagedstatistic.md,good, TOCDesigner 5/18/2021 +xblrequestedstatistics.md,good, TOCDesigner 5/18/2021 +xblserviceconfigurationstatistic.md,good, TOCDesigner 5/18/2021 +xblstatistic.md,good, TOCDesigner 5/18/2021 +xblstatisticchangeeventargs.md,good, TOCDesigner 5/18/2021 +xbluserstatisticsresult.md,good, TOCDesigner 5/18/2021 +xblachievementunlockevent.md,good, TOCDesigner 5/19/2021 +xblachievementprogresschangeentry.md,good, TOCDesigner 5/19/2021 +xblachievementprogresschangeeventargs.md,good, TOCDesigner 5/19/2021 +xblachievementsmanagersortorder.md,good, TOCDesigner 5/19/2021 +xblachievementsmanagerevent.md,good, TOCDesigner 5/19/2021 +xblerrorcondition.md,good, TOCDesigner 5/19/2021 +xblleaderboardstattype.md,good, TOCDesigner 5/19/2021 +xblleaderboardquerytype.md,good, TOCDesigner 5/19/2021 +xblticketstatus.md,good, TOCDesigner 5/19/2021 +xblcreatematchticketresponse.md,good, TOCDesigner 5/19/2021 +xblhopperstatisticsresponse.md,good, TOCDesigner 5/19/2021 +xblmatchticketdetailsresponse.md,good, TOCDesigner 5/19/2021 +xblmatchmakingstatus.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionmemberstatus.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionrestriction.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionwritemode.md,good, TOCDesigner 5/19/2021 +xblmutablerolesettings.md,good, TOCDesigner 5/19/2021 +xbldevicetoken.md,good, TOCDesigner 5/19/2021 +xblformattedsecuredeviceaddress.md,good, TOCDesigner 5/19/2021 +xblmultiplayeractivitydetails.md,good, TOCDesigner 5/19/2021 +xblmultiplayerinvitehandle.md,good, TOCDesigner 5/19/2021 +xblmultiplayermemberinitialization.md,good, TOCDesigner 5/19/2021 +xblmultiplayerpeertohostrequirements.md,good, TOCDesigner 5/19/2021 +xblmultiplayerpeertopeerrequirements.md,good, TOCDesigner 5/19/2021 +xblmultiplayerrole.md,good, TOCDesigner 5/19/2021 +xblmultiplayerroletype.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessioncapabilities.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionchangeeventargs.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionhandleid.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessioninitargs.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionmember.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionmemberrole.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionnumberattribute.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionquery.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionqueryresult.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionreference.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionreferenceuri.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessionstringattribute.md,good, TOCDesigner 5/19/2021 +xblmultiplayersessiontag.md,good, TOCDesigner 5/19/2021 +xblmultiplayertournamentteam.md,good, TOCDesigner 5/19/2021 +xblmultiplayereventtype.md,good, TOCDesigner 5/19/2021 +xblmultiplayerconnectionaddressdevicetokenpair.md,good, TOCDesigner 5/19/2021 +xblmultiplayermanagermember.md,good, TOCDesigner 5/19/2021 +xblmultiplayerperformqosmeasurementsargs.md,good, TOCDesigner 5/19/2021 +xblpresencebroadcastrecord.md,good, TOCDesigner 5/19/2021 +xblpresencedevicerecord.md,good, TOCDesigner 5/19/2021 +xblpresencequeryfilters.md,good, TOCDesigner 5/19/2021 +xblpresencerichpresenceids.md,good, TOCDesigner 5/19/2021 +xblpresencetitlerecord.md,good, TOCDesigner 5/19/2021 +xblanonymoususertype.md,good, TOCDesigner 5/19/2021 +xblrealtimeactivityconnectionstate.md,good, TOCDesigner 5/19/2021 +xblrealtimeactivitysubscriptionstate.md,good, TOCDesigner 5/19/2021 +xblrealtimeactivitysubscriptionhandle.md,good, TOCDesigner 5/19/2021 +xbltitlestorageblobtype.md,good, TOCDesigner 5/19/2021 +xbltitlestorageetagmatchcondition.md,good, TOCDesigner 5/19/2021 +xbltitlestoragetype.md,good, TOCDesigner 5/19/2021 +xbltitlestorageblobmetadata.md,good, TOCDesigner 5/19/2021 +xblguid.md,good, TOCDesigner 5/19/2021 \ No newline at end of file diff --git a/Utilities/VSOBuildScripts/toolsDownloadRelease.ps1 b/Utilities/VSOBuildScripts/toolsDownloadRelease.ps1 new file mode 100644 index 00000000..eb1c7c6c --- /dev/null +++ b/Utilities/VSOBuildScripts/toolsDownloadRelease.ps1 @@ -0,0 +1,84 @@ +$destRootPath = $args[0] + +function Get-BuildId +{ + param([Parameter(Mandatory)] [string]$url) + + if ($url -is [uri]) + { + $url = $url.ToString() + } + + if ($url.IndexOf('?') -ge 0) + { + $query = ($url -split '\?')[1] + $query = $query.Split('#')[0] + foreach ($q in ($query -split '&')) + { + $kv = $($q + '=') -split '=' + $varName = [uri]::UnescapeDataString($kv[0]).Trim() + $varValue = [uri]::UnescapeDataString($kv[1]) + + if ($varName -eq "buildId") + { + return $varValue + } + } + } +} + +function Get-Tools +{ + param([Parameter(Mandatory)] [string]$destRootPath, + [Parameter(Mandatory)] [string]$Trace_Analyzer_BuildUrl, + [Parameter(Mandatory)] [string]$Xbox_Tools_Packaging_BuildUrl, + [Parameter(Mandatory)] [string]$XBL_DevTools_Rolling_BuildUrl + ) + + $traceAnalyzerBuildId = Get-BuildId $Trace_Analyzer_BuildUrl + $xboxToolsPackagingBuildId = Get-BuildId $Xbox_Tools_Packaging_BuildUrl + $xblDevToolsRollingBuildId = Get-BuildId $XBL_DevTools_Rolling_BuildUrl + + $destPath = Join-Path -Path $destRootPath -ChildPath "\toolsArtifacts" + + Write-Host "" + Write-Host "`$traceAnalyzerBuildId: $traceAnalyzerBuildId" + Write-Host "`$xboxToolsPackagingBuildId: $xboxToolsPackagingBuildId" + Write-Host "`$xblDevToolsRollingBuildId: $xblDevToolsRollingBuildId" + Write-Host "`$destPath: $destPath" + + if (Test-Path $destPath) + { + Remove-Item -LiteralPath $destPath -Force -Recurse + } + + mkdir $destPath + + # az login if needed + az config set extension.use_dynamic_install=yes_without_prompt + $account = az account show + + if( !$account ) + { + [Console]::ResetColor() + az login + } + + az pipelines runs artifact download --run-id $traceAnalyzerBuildId --path $destPath --artifact-name Trace_Analyzer_PipelineArtifacts_Release + az pipelines runs artifact download --run-id $xboxToolsPackagingBuildId --path $destPath --artifact-name Xbox_Tools_Packaging_PipelineArtifacts_Release + az pipelines runs artifact download --run-id $xblDevToolsRollingBuildId --path $destPath --artifact-name XBL_DevTools_Rolling_PipelineArtifacts_Release +} + + +if( $destRootPath ) +{ + Get-Tools $destRootPath +} +else +{ + Write-Warning "toolsVpackUpdate.ps1 `"OSPath`"" + Write-Warning "" + Write-Warning "Example:" + Write-Warning ".\toolsVpackUpdate.ps1 d:\os" +} + diff --git a/Utilities/VSOBuildScripts/toolsVpackUpdate.ps1 b/Utilities/VSOBuildScripts/toolsVpackUpdate.ps1 new file mode 100644 index 00000000..a82c6493 --- /dev/null +++ b/Utilities/VSOBuildScripts/toolsVpackUpdate.ps1 @@ -0,0 +1,112 @@ +$destOSPath = $args[0] + +function Get-BuildId +{ + param([Parameter(Mandatory)] [string]$url) + + if ($url -is [uri]) + { + $url = $url.ToString() + } + + if ($url.IndexOf('?') -ge 0) + { + $query = ($url -split '\?')[1] + $query = $query.Split('#')[0] + foreach ($q in ($query -split '&')) + { + $kv = $($q + '=') -split '=' + $varName = [uri]::UnescapeDataString($kv[0]).Trim() + $varValue = [uri]::UnescapeDataString($kv[1]) + + if ($varName -eq "buildId") + { + return $varValue + } + } + } +} + +function Get-Tools +{ + param([Parameter(Mandatory)] [string]$destOSPath, + [Parameter(Mandatory)] [string]$Trace_Analyzer_BuildUrl, + [Parameter(Mandatory)] [string]$Xbox_Tools_Packaging_BuildUrl, + [Parameter(Mandatory)] [string]$XBL_DevTools_Rolling_BuildUrl + ) + + $traceAnalyzerBuildId = Get-BuildId $Trace_Analyzer_BuildUrl + $xboxToolsPackagingBuildId = Get-BuildId $Xbox_Tools_Packaging_BuildUrl + $xblDevToolsRollingBuildId = Get-BuildId $XBL_DevTools_Rolling_BuildUrl + + $destPathTemp = Join-Path -Path $destOSPath -ChildPath "\obj\tools-vpack-temp" + $destPath = Join-Path -Path $destOSPath -ChildPath "\src\xbox\devex\vs\extensionSdks\xsapi\tools" + + Write-Host "" + Write-Host "`$traceAnalyzerBuildId: $traceAnalyzerBuildId" + Write-Host "`$xboxToolsPackagingBuildId: $xboxToolsPackagingBuildId" + Write-Host "`$xblDevToolsRollingBuildId: $xblDevToolsRollingBuildId" + Write-Host "`$destOSPath: $destOSPath" + Write-Host "`$destPathTemp: $destPathTemp" + Write-Host "`$destPath: $destPath" + + if (Test-Path $destPathTemp) + { + Remove-Item -LiteralPath $destPathTemp -Force -Recurse + } + + mkdir $destPathTemp + + # az login if needed + az config set extension.use_dynamic_install=yes_without_prompt + $account = az account show + + if( !$account ) + { + [Console]::ResetColor() + az login + } + + az pipelines runs artifact download --run-id $traceAnalyzerBuildId --path $destPathTemp --artifact-name Trace_Analyzer_PipelineArtifacts_VPack_Release + az pipelines runs artifact download --run-id $xboxToolsPackagingBuildId --path $destPathTemp --artifact-name Xbox_Tools_Packaging_PipelineArtifacts_VPack_Release + az pipelines runs artifact download --run-id $xblDevToolsRollingBuildId --path $destPathTemp --artifact-name XBL_DevTools_Rolling_PipelineArtifacts_VPack_Release + + $srcPathTraceAnalyzerMan = Join-Path -Path $destPathTemp -ChildPath "\TraceAnalyzer.man" + $srcPathXboxToolsPackagingMan = Join-Path -Path $destPathTemp -ChildPath "\XboxLiveTools.man" + $srcPathXblDevToolsRollingMan = Join-Path -Path $destPathTemp -ChildPath "\XboxLiveDeveloperTools.Release.man" + + $srcPathXblConfig = Join-Path -Path $destPathTemp -ChildPath "\XblConfig.exe" + $srcPathXblPCSandbox = Join-Path -Path $destPathTemp -ChildPath "\XblPCSandbox.exe" + $srcPathXblDevAccount = Join-Path -Path $destPathTemp -ChildPath "\XblDevAccount.exe" + $srcPathXblTestAccountGui = Join-Path -Path $destPathTemp -ChildPath "\XblTestAccountGui.exe" + $srcPathXblPlayerDataReset = Join-Path -Path $destPathTemp -ChildPath "\XblPlayerDataReset.exe" + $srcPathXboxLiveTraceAnalyzer = Join-Path -Path $destPathTemp -ChildPath "\XboxLiveTraceAnalyzer.exe" + + $destPathVPack = Join-Path -Path $destPath -ChildPath "\vpack" + $destPathTools = Join-Path -Path $destPath -ChildPath "\xdkbuild" + + Copy-Item $srcPathTraceAnalyzerMan -Destination $destPathVPack + Copy-Item $srcPathXboxToolsPackagingMan -Destination $destPathVPack + Copy-Item $srcPathXblDevToolsRollingMan -Destination $destPathVPack + + Copy-Item $srcPathXblConfig -Destination $destPathTools + Copy-Item $srcPathXblPCSandbox -Destination $destPathTools + Copy-Item $srcPathXblDevAccount -Destination $destPathTools + Copy-Item $srcPathXblTestAccountGui -Destination $destPathTools + Copy-Item $srcPathXblPlayerDataReset -Destination $destPathTools + Copy-Item $srcPathXboxLiveTraceAnalyzer -Destination $destPathTools +} + + +if( $destOSPath ) +{ + Get-Tools $destOSPath +} +else +{ + Write-Warning "toolsVpackUpdate.ps1 `"OSPath`"" + Write-Warning "" + Write-Warning "Example:" + Write-Warning ".\toolsVpackUpdate.ps1 d:\os" +} + diff --git a/Utilities/VSOBuildScripts/unitTestGetResults.ps1 b/Utilities/VSOBuildScripts/unitTestGetResults.ps1 new file mode 100644 index 00000000..83edd72e --- /dev/null +++ b/Utilities/VSOBuildScripts/unitTestGetResults.ps1 @@ -0,0 +1,106 @@ +$xmlResultFile = $args[0] + +[xml]$xmlContent = Get-Content -Path $xmlResultFile + +Write-Host "Parsing: $xmlResultFile" + +# Relevant sections in the .trx +$results = $xmlContent.TestRun.Results +$aggregate = $xmlContent.TestRun.ResultSummary +$definitions = $xmlContent.TestRun.TestDefinitions + +# Get full run info +$aggregateId = (Get-Date).ticks +$aggregateDuration = New-TimeSpan +$aggregateTestsRan = [int]$aggregate.Counters.executed +$aggregateTimestamp = $aggregate.RunInfos.RunInfo.timestamp +$aggregateTestsFailed = $aggregateTestsRan - $aggregate.Counters.passed + +$recordId = $aggregateId + 1 + +[System.Collections.ArrayList]$aggregateRecord = @() +[System.Collections.ArrayList]$records = @() + +$replaceList = @("\t", "\r", "\n") + +# Set up test entries and add TestName and ClassName (TestArea) +$definitions.UnitTest | ForEach-Object { + $testId = $_.id + $testName = $_.name + $testArea = ($_.TestMethod.className -split "\.")[-1] + + $jsonItem = "{}" | ConvertFrom-Json + $jsonItem | Add-Member -Name "id" -Value $testId -MemberType NoteProperty + $jsonItem | Add-Member -Name "filename" -Value $testArea -MemberType NoteProperty + $jsonItem | Add-Member -Name "testname" -Value $testName -MemberType NoteProperty + $jsonItem | Add-Member -Name "testsuite" -Value "UnitTests" -MemberType NoteProperty + [void]$records.Add($jsonItem) +} + +# Add Timestamp, Duration, and Outcome to each entry and Error Logs for failed tests +$results.UnitTestResult | ForEach-Object { + $log = $_.Output.ErrorInfo.Message + $_.Output.ErrorInfo.StackTrace + $testId = $_.testId + $outcome = $_.outcome + $duration = $_.duration + $startTime = $_.startTime + + $passed = $False + + # Possible outcomes that aren't failures (this list is flexible and can change based on team sentiment) + if ($outcome -eq "passed" -or ` + $outcome -eq "passedButRunAborted" -or ` + $outcome -eq "notExecuted" -or ` + $outcome -eq "completed") + { + $passed = $True + } + + # Find corresponding test entry and add remaining fields (and alter the id to a unique id instead of the test's guid) + $record = $records.Where({ $_.id -eq $testId }) + $record | Add-Member -Name "id" -Value ($recordId++) -MemberType NoteProperty -Force + $record | Add-Member -Name "passed" -Value $passed -MemberType NoteProperty + $record | Add-Member -Name "outcome" -Value $outcome -MemberType NoteProperty + $record | Add-Member -Name "duration" -Value $duration -MemberType NoteProperty + $record | Add-Member -Name "timestamp" -Value $startTime -MemberType NoteProperty + $record | Add-Member -Name "aggregateid" -Value $aggregateId -MemberType NoteProperty + + if (-not $passed) + { + # Double escape special whitespace characters to avoid json issues when uploading + foreach ($key in $replaceList) + { + $log = $log -replace $key, $key + } + + $record | Add-Member -Name "log" -Value $log -MemberType NoteProperty + } + + $aggregateDuration += [timespan]$duration +} + +$count = $records.count +Write-Host "Processed $count tests" + +# Create the aggregate entry +$jsonItem = "{}" | ConvertFrom-Json +$jsonItem | Add-Member -Name "id" -Value $aggregateId -MemberType NoteProperty +$jsonItem | Add-Member -Name "duration" -Value $aggregateDuration -MemberType NoteProperty +$jsonItem | Add-Member -Name "testsran" -Value $aggregateTestsRan -MemberType NoteProperty +$jsonItem | Add-Member -Name "timestamp" -Value $aggregateTimestamp -MemberType NoteProperty +$jsonItem | Add-Member -Name "testsuite" -Value "UnitTests" -MemberType NoteProperty +$jsonItem | Add-Member -Name "testsfailed" -Value $aggregateTestsFailed -MemberType NoteProperty +[void]$aggregateRecord.Add($jsonItem) + + +# Create result files used for data ingestion +$outputDirectory = (Get-Item $xmlResultFile).directory.fullname +$outputFile = Join-Path -Path $outputDirectory -ChildPath "UnitTestResults.json" +$outputJson = "{}" | ConvertFrom-Json +$outputJson | Add-Member -Name "records" -Value $records -MemberType NoteProperty +$outputJson | ConvertTo-Json | Set-Content $outputFile + +$outputFile = Join-Path -Path $outputDirectory -ChildPath "UnitTestAggregateResult.json" +$outputJson = "{}" | ConvertFrom-Json +$outputJson | Add-Member -Name "records" -Value $aggregateRecord -MemberType NoteProperty +$outputJson | ConvertTo-Json | Set-Content $outputFile \ No newline at end of file diff --git a/xsapi.staticlib.props b/xsapi.staticlib.props index a6d65bd9..d4e0c5f8 100644 --- a/xsapi.staticlib.props +++ b/xsapi.staticlib.props @@ -7,7 +7,7 @@ - + $(HCPlatform) @@ -93,10 +93,10 @@ {8F96710E-5169-4917-8874-7DE248F4D243} - {4F107DE4-98B1-42B7-8767-0B5102C88E4F} + {4F107DE4-98B1-42B7-8767-0B5102C88E4F} {4F107DE4-98B1-42B7-8767-0B5102C88E4F} {AB77D282-496D-413F-9A51-F78DF740A82A} - {8A112040-CDA1-4490-B518-62DFCC451FA7} + {8A112040-CDA1-4490-B518-62DFCC451FA7} {60139f62-bf37-4f11-bd93-5fbf4e92100c} {5fa18992-3e85-4090-b21e-6ef7fb613a44} {B0D02E4C-DB36-416C-8F1E-8666B3FAF876}