7#include "CoreMinimal.h"
8#include "Delegates/Delegate.h"
9#include "OnlineFriendsInterfacePico.h"
10#include "OnlineIdentityPico.h"
11#include "RTCPicoUserInterface.h"
12#include "OnlineSessionSettings.h"
13#include "OnlineSessionInterfacePico.h"
14#include "OnlineLeaderboardInterfacePico.h"
15#include "UObject/Object.h"
16#include "PicoPresenceInterface.h"
17#include "PicoApplicationInterface.h"
18#include "ApplicationLifecycleInterface.h"
19#include "Pico_Leaderboard.h"
20#include "OnlineSubsystemPicoManager.generated.h"
29DECLARE_DYNAMIC_DELEGATE_FourParams(FOnlineManagerLoginCompleteDelegate,
int, LocalUserNum,
const FString, UserId,
bool, bIsSuccessed,
const FString, ErrorMessage);
32DECLARE_DYNAMIC_DELEGATE_FourParams(FOnlineManagerReadFriendListDelegate,
int, LocalUserNum,
bool, bWasSuccessful,
const FString, ListName,
const FString, ErrorStr);
35DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FiveParams(FRtcJoinRoomResultDelegate, UOnlineSubsystemPicoManager, OnRtcJoinRoomResultDelegate,
const FString&, RoomId,
const FString&, UserId,
int, ErrorCode,
int, Elapsed, ERtcJoinRoomType, InJoinRoomType);
36DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcLeaveRoomResultDelegate, UOnlineSubsystemPicoManager, OnRtcLeaveRoomResultDelegate,
const FString&, RoomId);
37DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_ThreeParams(FRtcRoomStateDelegate, UOnlineSubsystemPicoManager, OnRtcRoomStateDelegate,
int, TotalDuration,
int, UserCount,
const FString&, RoomId);
38DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FourParams(FRtcUserJoinInfoDelegate, UOnlineSubsystemPicoManager, OnRtcUserJoinInfoDelegate,
const FString&, UserId,
const FString&, UserExtra,
int, Elapsed,
const FString&, RoomId);
39DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_ThreeParams(FRtcUserLeaveInfoDelegate, UOnlineSubsystemPicoManager, OnRtcUserLeaveInfoDelegate,
const FString&, UserId, ERtcUserLeaveReasonType, RtcUserLeaveReasonType,
const FString&, RoomId);
40DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FRtcRoomWarnDelegate, UOnlineSubsystemPicoManager, OnRtcRoomWarnDelegate,
int, Code,
const FString&, RoomId);
41DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FRtcRoomErrorDelegate, UOnlineSubsystemPicoManager, OnRtcRoomErrorDelegate,
int, Code,
const FString&, RoomId);
42DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FRtcRoomMuteStateDelegate, UOnlineSubsystemPicoManager, OnRtcRoomMuteStateDelegate,
const FString&, UserId, ERtcMuteState, RtcMuteState);
43DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcAudioChangePlaybackDeviceDelegate, UOnlineSubsystemPicoManager, OnRtcAudioChangePlaybackDelegate, ERtcAudioPlaybackDevice, RtcAudioPlaybackDevice);
44DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FourParams(FRtcMediaDeviceChangeInfoDelegate, UOnlineSubsystemPicoManager, OnRtcMediaDeviceChangeInfoDelegate,
const FString&, DeviceId, ERtcMediaDeviceType, MediaDeciveType, ERtcMediaDeviceState, MediaDeviceState, ERtcMediaDeviceError, MediaDeviceError);
45DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FRtcLocalAudioPropertiesReportDelegate, UOnlineSubsystemPicoManager, OnRtcLocalAudioPropertiesReportDelegate,
const TArray<ERtcStreamIndex>&, StreamIndexs,
const TArray<int32>&, Volumes);
46DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FiveParams(FRtcRemoteAudioPropertiesReportDelegate, UOnlineSubsystemPicoManager, OnRtcRemoteAudioPropertiesReportDelegate,
int, TotalRemoteVolume,
const TArray<int32>&, Volumes,
const TArray<FString>&, RoomIds,
const TArray<FString>&, UserIds,
const TArray<ERtcStreamIndex>&, StreamIndexs);
48DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcWarnDelegate, UOnlineSubsystemPicoManager, OnRtcWarnDelegate,
int, MessageCode);
49DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcErrorDelegate, UOnlineSubsystemPicoManager, OnRtcErrorDelegate,
int, MessageCode);
50DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcConnectStateChangedDelegate, UOnlineSubsystemPicoManager, OnRtcConnectStateChangedDelegate,
const FString&, StringMessage);
51DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcUserStartAudioCaptureDelegate, UOnlineSubsystemPicoManager, OnRtcUserStartAudioCaptureDelegate,
const FString&, StringMessage);
52DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FRtcUserStopAudioCaptureDelegate, UOnlineSubsystemPicoManager, OnRtcUserStopAudioCaptureDelegate,
const FString&, StringMessage);
54DECLARE_DYNAMIC_DELEGATE_ThreeParams(FOnlineManagerRtcGetTokenDelegate, FString, Token,
bool, IsSuccessed, FString, ErrorMessage);
57DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceClearDelegate,
bool, IsSuccessed, FString, ErrorMessage);
58DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceReadInvitableUserDelegate,
bool, IsSuccessed, FString, ErrorMessage);
59DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSetDelegate,
bool, IsSuccessed, FString, ErrorMessage);
60DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSetDestinationDelegate,
bool, IsSuccessed, FString, ErrorMessage);
61DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSetIsJoinableDelegate,
bool, IsSuccessed, FString, ErrorMessage);
62DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSetLobbySessionDelegate,
bool, IsSuccessed, FString, ErrorMessage);
63DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSetMatchSessionDelegate,
bool, IsSuccessed, FString, ErrorMessage);
64DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSetExtraDelegate,
bool, IsSuccessed, FString, ErrorMessage);
65DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceReadSentInvitesDelegate,
bool, IsSuccessed, FString, ErrorMessage);
66DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceSentInvitesDelegate,
bool, IsSuccessed, FString, ErrorMessage);
67DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerPresenceGetDestinationsDelegate,
bool, IsSuccessed, FString, ErrorMessage);
69DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FourParams(FPresenceJoinIntentReceivedDelegate, UOnlineSubsystemPicoManager, OnPresenceJoinIntentReceivedDelegate,
const FString&, DeeplinkMessage,
const FString&, DestinationApiName,
const FString&, LobbySessionId,
const FString&, MatchSessionId);
70DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_ThreeParams(FPresenceLeaveIntentReceivedDelegate, UOnlineSubsystemPicoManager, OnPresenceLeaveIntentReceivedDelegate,
const FString&, DestinationApiName,
const FString&, LobbySessionId,
const FString&, MatchSessionId);
73DECLARE_DYNAMIC_DELEGATE_ThreeParams(FOnlineManagerLaunchOtherAppDelegate, FString, StringMessage,
bool, IsSuccessed, FString, ErrorMessage);
74DECLARE_DYNAMIC_DELEGATE_ThreeParams(FOnlineManagerLaunchOtherAppByPresenceDelegate, FString, StringMessage,
bool, IsSuccessed, FString, ErrorMessage);
75DECLARE_DYNAMIC_DELEGATE_ThreeParams(FOnlineManagerGetVersionDelegate, FString, StringMessage,
bool, IsSuccessed, FString, ErrorMessage);
78DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnlineManagerApplicationLifecycleReadDetailsDelegate,
bool, IsSuccessed, FString, ErrorMessage);
81DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FApplicationLifecycleStringResultDelegate, UOnlineSubsystemPicoManager, OnApplicationLifecycleStringResultDelegate,
const FString&, MessageString);
85DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnCreateSessionCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
86DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnStartSessionCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
87DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnUpdateSessionCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
88DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnEndSessionCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
89DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnDestroySessionCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
90DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnCancelMatchmakingCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
91DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnMatchmakingCompleteDelegate, FName, SessionName,
bool, bWasSuccessful);
94DECLARE_DYNAMIC_DELEGATE_OneParam(FPicoManagerOnFindSessionCompleteDelegate,
bool, bWasSuccessful);
95DECLARE_DYNAMIC_DELEGATE_ThreeParams(FPicoManagerOnSingleSessionResultCompleteDelegate, int32, LocalUserNum,
bool, bWasSuccessful,
const FPicoOnlineSessionSearchResult&, SearchResult);
96DECLARE_DYNAMIC_DELEGATE_TwoParams(FPicoManagerOnJoinSessionCompleteDelegate, FName, SessionName, EOnJoinSessionCompleteResultPicoType, Type);
98DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnGameConnectionNotifyDelegate, UOnlineSubsystemPicoManager, OnGameConnectionNotifyDelegate,
int, Result,
bool, bWasSuccessful);
99DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnGameRequestFailedNotifyDelegate, UOnlineSubsystemPicoManager, OnGameRequestFailedNotifyDelegate,
int, Result,
bool, bWasSuccessful);
100DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FOnGameStateResetNotifyDelegate, UOnlineSubsystemPicoManager, OnGameStateResetNotifyDelegate,
bool, bWasSuccessful);
101DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FOnMatchmakingCancel2NotifyDelegate, UOnlineSubsystemPicoManager, OnMatchmakingCancel2NotifyDelegate,
bool, bWasSuccessful);
102DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomLeaveNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomLeaveNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
103DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomJoin2NotifyDelegate, UOnlineSubsystemPicoManager, OnRoomJoin2NotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
104DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomSetDescriptionNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomSetDescriptionNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
105DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomKickUserNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomKickUserNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
106DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam(FOnRoomUpdateOwnerNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomUpdateOwnerNotifyDelegate,
bool, bWasSuccessful);
107DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomUpdateDataStoreNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomUpdateDataStoreNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
108DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomUpdateMembershipLockStatusNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomUpdateMembershipLockStatusNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
109DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomUpdateNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomUpdateNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
110DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnRoomInviteAcceptedNotifyDelegate, UOnlineSubsystemPicoManager, OnRoomInviteAcceptedNotifyDelegate,
const FString&, RoomID,
bool, bWasSuccessful);
113DECLARE_DYNAMIC_DELEGATE_OneParam(FPicoManagerOnReadLeaderboardsCompleteDelegate,
bool, bWasSuccessful);
117class UOnlineSubsystemPicoManager : public UObject
122 UOnlineSubsystemPicoManager();
123 ~UOnlineSubsystemPicoManager();
125 FOnReadFriendsListComplete ReadCompleteDelegate;
129 FOnGetTokenComplete RtcGetTokenCompleteDelegate;
131 FOnPresenceClearComplete PresenceClearCompleteDelegate;
132 FOnReadInvitableUserComplete PresenceReadInvitableUserCompleteDelegate;
133 FOnPresenceSetComplete PresenceSetCompleteDelegate;
134 FOnPresenceSetDestinationComplete PresenceSetDestinationCompleteDelegate;
135 FOnPresenceSetIsJoinableComplete PresenceSetIsJoinableCompleteDelegate;
136 FOnPresenceSetLobbySessionComplete PresenceSetLobbySessionCompleteDelegate;
137 FOnPresenceSetMatchSessionComplete PresenceSetMatchSessionCompleteDelegate;
138 FOnPresenceSetPresenceExtraComplete PresenceSetExtraComleteDelegate;
139 FOnReadSentInvitesComplete PresenceReadSentInvitesCompleteDelegate;
140 FOnSentInvitesComplete PresenceSentInvitesCompleteDelegate;
141 FOnGetDestinationsComplete PresenceGetDestinationsCompleteDelegate;
144 FOnLaunchOtherAppComplete LaunchOtherAppCompleteDelegate;
145 FOnLaunchOtherAppByPresenceComplete LaunchOtherAppByPresenceCompleteDelegate;
146 FOnGetVersion GetVersionCompleteDelegate;
151 FOnlineSessionPicoPtr GameInterface;
154 static FOnlineManagerReadFriendListDelegate ReadFrendListDelegate;
156 void PicoReadFriendList(UObject* WorldContextObject, int32 LocalUserNum, const FString& ListName, FOnlineManagerReadFriendListDelegate InReadFriendListDelegate);
157 void OnReadListComplete(int32 InLocalUserNum,
bool bWasSuccessful, const FString& ListName, const FString& ErrorStr);
158 void PicoGetFriendList(UObject* WorldContextObject, int32 InLocalUserNum, const FString& ListName, TArray<FPicoUserInfo>& OutFriendList);
159 FPicoUserInfo PicoGetFriend(UObject* WorldContextObject, int32 LocalUserNum, const FString& FriendId, const FString& ListName);
160 FPicoUserInfo GetBPPicoFriend(const TSharedRef<
FOnlinePicoFriend> InOnlinePicoFriend);
163 static FOnlineManagerLoginCompleteDelegate LoginCompleteDelegate;
165 void PicoLogin(UObject* WorldContextObject, int32 LocalUserNum, const FString& InUserId, const FString& InType, const FString& InToken, FOnlineManagerLoginCompleteDelegate InLoginCompleteDelegate);
166 FString PicoGetNickName(UObject* WorldContextObject, int32 LocalUserNum);
167 UPico_User* GetLoginPicoUser(UObject* WorldContextObject, int32 LocalUserNum);
168 void OnLoginComplete(
int LocalUserNum,
bool bWasSuccessful,const FUniqueNetId& UserId, const FString& ErrorString);
172 static FOnlineManagerRtcGetTokenDelegate RtcGetTokenDelegate;
174 void PicoRtcGetToken(UObject* WorldContextObject, const FString& UserId, const FString& RoomId,
int Ttl,
int InValue, FOnlineManagerRtcGetTokenDelegate InRtcGetTokenDelegate);
175 void OnGetTokenComplete(const FString& Token,
bool bIsSuccessed, const FString& ErrorMessage);
177 ERtcEngineInitResult PicoRtcEngineInit(UObject* WorldContextObject);
178 int RtcJoinRoom(UObject* WorldContextObject, const FString& RoomId, const FString& UserId, const FString& Token, const FString& UserExtra, ERtcRoomProfileType InRoomProfileType,
bool bIsAutoSubscribeAudio);
179 int RtcDestroyRoom(UObject* WorldContextObject, const FString& RoomId);
180 void RtcEnableAudioPropertiesReport(UObject* WorldContextObject,
int Interval);
181 int RtcLeaveRoom(UObject* WorldContextObject, const FString& RoomId);
182 void RtcMuteLocalAudio(UObject* WorldContextObject, ERtcMuteState InRtcMuteState);
183 void RtcPublishRoom(UObject* WorldContextObject, const FString& RoomId);
184 void RtcRoomPauseAllSubscribedStream(UObject* WorldContextObject, const FString& RoomId, ERtcPauseResumeMediaType InPauseResumeMediaType);
185 void RtcRoomResumeAllSubscribedStream(UObject* WorldContextObject, const FString& RoomId, ERtcPauseResumeMediaType InPauseResumeMediaType);
186 void RtcSetAudioPlaybackDevice(UObject* WorldContextObject, ERtcAudioPlaybackDevice InRtcAudioPlaybackDevice);
187 void RtcSetAudioScenario(UObject* WorldContextObject, ERtcAudioScenarioType InRtcAudioScenarioType);
188 void RtcSetCaptureVolume(UObject* WorldContextObject, ERtcStreamIndex InRtcStreamIndex,
int InVolume);
189 void RtcSetEarMonitorMode(UObject* WorldContextObject, ERtcEarMonitorMode InRtcEarMonitorMode);
190 void RtcSetEarMonitorVolume(UObject* WorldContextObject,
int InVolume);
191 void RtcSetPlaybackVolume(UObject* WorldContextObject,
int InVolume);
192 void RtcStartAudioCapture(UObject* WorldContextObject);
193 void RtcStopAudioCapture(UObject* WorldContextObject);
194 void RtcUnPublishRoom(UObject* WorldContextObject, const FString& RoomId);
195 void RtcUpdateToken(UObject* WorldContextObject, const FString& RoomId, const FString& Token);
198 void OnRtcJoinRoomResult(const FString& RoomId, const FString& UserId,
int ErrorCode,
int Elapsed, ERtcJoinRoomType InJoinRoomType);
199 void OnRtcLeaveRoomResult(const FString& RoomId);
200 void OnRtcRoomState(
int TotalDuration,
int UserCount, const FString& RoomId);
201 void OnRtcUserJoinInfo(const FString& UserId, const FString& UserExtra,
int Elapsed, const FString& RoomId);
202 void OnRtcUserLeaveInfo(const FString& UserId, ERtcUserLeaveReasonType RtcUserLeaveReasonType, const FString& RoomId);
203 void OnRtcRoomWarn(
int Code, const FString& RoomId);
204 void OnRtcRoomError(
int Code, const FString& RoomId);
205 void OnRtcMuteState(const FString& UserId, ERtcMuteState RtcMuteState);
206 void OnRtcAudioChangePlaybackDevice(ERtcAudioPlaybackDevice RtcAudioPlaybackDevice);
207 void OnRtcMediaDeviceChangeInfo(const FString& DeviceId, ERtcMediaDeviceType MediaDeciveType, ERtcMediaDeviceState MediaDeviceState, ERtcMediaDeviceError MediaDeviceError);
208 void OnRtcLocalAudioPropertiesReport(TArray<ERtcStreamIndex> StreamIndexs, TArray<
int> Volumes);
209 void OnRtcRemoteAudioPropertiesReport(
int TotalRemoteVolume, TArray<
int> Volumes, const TArray<FString>& RoomIds, const TArray<FString>& UserIds, TArray<ERtcStreamIndex> StreamIndexs);
210 void OnRtcWarn(
int MessageCode);
211 void OnRtcError(
int MessageCode);
212 void OnRtcConnectStateChanged(const FString& StringMessage);
213 void OnRtcUserStartAudioCapture(const FString& StringMessage);
214 void OnRtcUserStopAudioCapture(const FString& StringMessage);
217 void OnPresenceJoinIntentReceivedResult(const FString& DeeplinkMessage, const FString& DestinationApiName, const FString& LobbySessionId, const FString& MatchSessionId);
218 void OnPresenceLeavententReceivedResult(const FString& DestinationApiName, const FString& LobbySessionId, const FString& MatchSessionId);
221 void OnLaunchIntentChangedResult(const FString& MessageString);
225 UPROPERTY(BlueprintAssignable, Category = "Rtc")
226 FRtcJoinRoomResultDelegate OnRtcJoinRoomResultDelegate;
228 UPROPERTY(BlueprintAssignable, Category = "Rtc")
229 FRtcLeaveRoomResultDelegate OnRtcLeaveRoomResultDelegate;
231 UPROPERTY(BlueprintAssignable, Category = "Rtc")
232 FRtcRoomStateDelegate OnRtcRoomStateDelegate;
234 UPROPERTY(BlueprintAssignable, Category = "Rtc")
235 FRtcUserJoinInfoDelegate OnRtcUserJoinInfoDelegate;
237 UPROPERTY(BlueprintAssignable, Category = "Rtc")
238 FRtcUserLeaveInfoDelegate OnRtcUserLeaveInfoDelegate;
240 UPROPERTY(BlueprintAssignable, Category = "Rtc")
241 FRtcRoomWarnDelegate OnRtcRoomWarnDelegate;
243 UPROPERTY(BlueprintAssignable, Category = "Rtc")
244 FRtcRoomErrorDelegate OnRtcRoomErrorDelegate;
246 UPROPERTY(BlueprintAssignable, Category = "Rtc")
247 FRtcRoomMuteStateDelegate OnRtcRoomMuteStateDelegate;
249 UPROPERTY(BlueprintAssignable, Category = "Rtc")
250 FRtcAudioChangePlaybackDeviceDelegate OnRtcAudioChangePlaybackDelegate;
252 UPROPERTY(BlueprintAssignable, Category = "Rtc")
253 FRtcMediaDeviceChangeInfoDelegate OnRtcMediaDeviceChangeInfoDelegate;
255 UPROPERTY(BlueprintAssignable, Category = "Rtc")
256 FRtcLocalAudioPropertiesReportDelegate OnRtcLocalAudioPropertiesReportDelegate;
258 UPROPERTY(BlueprintAssignable, Category = "Rtc")
259 FRtcRemoteAudioPropertiesReportDelegate OnRtcRemoteAudioPropertiesReportDelegate;
261 UPROPERTY(BlueprintAssignable, Category = "Rtc")
262 FRtcWarnDelegate OnRtcWarnDelegate;
264 UPROPERTY(BlueprintAssignable, Category = "Rtc")
265 FRtcErrorDelegate OnRtcErrorDelegate;
267 UPROPERTY(BlueprintAssignable, Category = "Rtc")
268 FRtcConnectStateChangedDelegate OnRtcConnectStateChangedDelegate;
270 UPROPERTY(BlueprintAssignable, Category = "Rtc")
271 FRtcUserStartAudioCaptureDelegate OnRtcUserStartAudioCaptureDelegate;
273 UPROPERTY(BlueprintAssignable, Category = "Rtc")
274 FRtcUserStopAudioCaptureDelegate OnRtcUserStopAudioCaptureDelegate;
278 UPROPERTY(BlueprintAssignable, Category = "Game")
279 FOnGameConnectionNotifyDelegate OnGameConnectionNotifyDelegate;
280 UPROPERTY(BlueprintAssignable, Category = "Game")
281 FOnGameRequestFailedNotifyDelegate OnGameRequestFailedNotifyDelegate;
282 UPROPERTY(BlueprintAssignable, Category = "Game")
283 FOnGameStateResetNotifyDelegate OnGameStateResetNotifyDelegate;
284 UPROPERTY(BlueprintAssignable, Category = "Game")
285 FOnMatchmakingCancel2NotifyDelegate OnMatchmakingCancel2NotifyDelegate;
286 UPROPERTY(BlueprintAssignable, Category = "Game")
287 FOnRoomLeaveNotifyDelegate OnRoomLeaveNotifyDelegate;
288 UPROPERTY(BlueprintAssignable, Category = "Game")
289 FOnRoomJoin2NotifyDelegate OnRoomJoin2NotifyDelegate;
290 UPROPERTY(BlueprintAssignable, Category = "Game")
291 FOnRoomSetDescriptionNotifyDelegate OnRoomSetDescriptionNotifyDelegate;
292 UPROPERTY(BlueprintAssignable, Category = "Game")
293 FOnRoomKickUserNotifyDelegate OnRoomKickUserNotifyDelegate;
294 UPROPERTY(BlueprintAssignable, Category = "Game")
295 FOnRoomUpdateOwnerNotifyDelegate OnRoomUpdateOwnerNotifyDelegate;
296 UPROPERTY(BlueprintAssignable, Category = "Game")
297 FOnRoomUpdateDataStoreNotifyDelegate OnRoomUpdateDataStoreNotifyDelegate;
298 UPROPERTY(BlueprintAssignable, Category = "Game")
299 FOnRoomUpdateMembershipLockStatusNotifyDelegate OnRoomUpdateMembershipLockStatusNotifyDelegate;
300 UPROPERTY(BlueprintAssignable, Category = "Game")
301 FOnRoomUpdateNotifyDelegate OnRoomUpdateNotifyDelegate;
302 UPROPERTY(BlueprintAssignable, Category = "Game")
303 FOnRoomInviteAcceptedNotifyDelegate OnRoomInviteAcceptedNotifyDelegate;
305 void OnGameConnectionNotification(
int Result,
bool bWasSuccessful);
306 void OnGameRequestFailedNotification(
int Result,
bool bWasSuccessful);
307 void OnGameStateResetNotification(
bool bWasSuccessful);
308 void OnMatchmakingCancel2Notification(
bool bWasSuccessful);
309 void OnRoomLeaveNotification(const FString& RoomID,
bool bWasSuccessful);
310 void OnRoomJoin2Notification(const FString& RoomID,
bool bWasSuccessful);
311 void OnRoomSetDescriptionNotification(const FString& RoomID,
bool bWasSuccessful);
312 void OnRoomKickUserNotification(const FString& RoomID,
bool bWasSuccessful);
313 void OnRoomUpdateOwnerNotification(
bool bWasSuccessful);
314 void OnRoomUpdateDataStoreNotification(const FString& RoomID,
bool bWasSuccessful);
315 void OnRoomUpdateMembershipLockStatusNotification(const FString& RoomID,
bool bWasSuccessful);
316 void OnRoomUpdateComplete(const FString& RoomID,
bool bWasSuccessful);
317 void OnRoomInviteAcceptedComplete(const FString& RoomID,
bool bWasSuccessful);
320 static FPicoManagerOnCreateSessionCompleteDelegate OnCreateSessionCompleteDelegate;
321 static FPicoManagerOnStartSessionCompleteDelegate OnStartSessionCompleteDelegate;
322 static FPicoManagerOnUpdateSessionCompleteDelegate OnUpdateSessionCompleteDelegate;
323 static FPicoManagerOnEndSessionCompleteDelegate OnEndSessionCompleteDelegate;
324 static FPicoManagerOnDestroySessionCompleteDelegate OnDestroySessionCompleteDelegate;
325 static FPicoManagerOnMatchmakingCompleteDelegate OnMatchmakingCompleteDelegate;
326 static FPicoManagerOnCancelMatchmakingCompleteDelegate OnCancelMatchmakingCompleteDelegate;
327 static FPicoManagerOnFindSessionCompleteDelegate OnFindSessionCompleteDelegate;
328 static FPicoManagerOnSingleSessionResultCompleteDelegate OnSingleSessionResultCompleteDelegate;
329 static FPicoManagerOnJoinSessionCompleteDelegate OnJoinSessionCompleteDelegate;
336 static FPicoManagerOnReadLeaderboardsCompleteDelegate OnReadLeaderboardsCompleteDelegate;
339 UPROPERTY(BlueprintAssignable, Category = "Presence")
340 FPresenceJoinIntentReceivedDelegate OnPresenceJoinIntentReceivedDelegate;
342 UPROPERTY(BlueprintAssignable, Category = "Presence")
343 FPresenceLeaveIntentReceivedDelegate OnPresenceLeaveIntentReceivedDelegate;
346 UPROPERTY(BlueprintAssignable, Category = "ApplicationLifecycle")
347 FApplicationLifecycleStringResultDelegate OnApplicationLifecycleStringResultDelegate;
351 bool CreateSession(UObject* WorldContextObject,
int HostingPlayerNum, FName SessionName, const FOnlineSessionSettings& NewSessionSettings, FPicoManagerOnCreateSessionCompleteDelegate OnCreateSessionCompleteDelegate);
352 bool StartSession(UObject* WorldContextObject, FName SessionName, FPicoManagerOnStartSessionCompleteDelegate OnStartSessionCompleteDelegate);
353 bool UpdateSession(UObject* WorldContextObject, FName SessionName, FOnlineSessionSettings& UpdatedSessionSettings, FPicoManagerOnUpdateSessionCompleteDelegate OnUpdateSessionCompleteDelegate,
bool bShouldRefreshOnlineData = true);
354 bool EndSession(UObject* WorldContextObject, FName SessionName, FPicoManagerOnEndSessionCompleteDelegate OnEndSessionCompleteDelegate);
355 bool DestroySession(UObject* WorldContextObject, FName SessionName, FPicoManagerOnDestroySessionCompleteDelegate OnDestroySessionCompleteDelegate);
356 bool IsPlayerInSession(UObject* WorldContextObject, FName SessionName, const FUniqueNetId& UniqueId);
357#if ENGINE_MAJOR_VERSION > 4
358 bool StartMatchmaking(UObject* WorldContextObject,
const TArray< FUniqueNetIdRef >& LocalPlayers, FName SessionName,
const FPicoOnlineSessionSettings& NewSessionSettings, FPicoOnlineSessionSearch& SearchSettings, FPicoManagerOnMatchmakingCompleteDelegate OnMatchmakingCompleteDelegate);
359#elif ENGINE_MINOR_VERSION > 26
360 bool StartMatchmaking(UObject* WorldContextObject,
const TArray< FUniqueNetIdRef >& LocalPlayers, FName SessionName,
const FPicoOnlineSessionSettings& NewSessionSettings, FPicoOnlineSessionSearch& SearchSettings, FPicoManagerOnMatchmakingCompleteDelegate OnMatchmakingCompleteDelegate);
361#elif ENGINE_MINOR_VERSION > 24
362 bool StartMatchmaking(UObject* WorldContextObject,
const TArray< TSharedRef<const FUniqueNetId> >& LocalPlayers, FName SessionName,
const FPicoOnlineSessionSettings& NewSessionSettings, FPicoOnlineSessionSearch& SearchSettings, FPicoManagerOnMatchmakingCompleteDelegate OnMatchmakingCompleteDelegate);
364 bool CancelMatchmaking(UObject* WorldContextObject, int32 SearchingPlayerNum, FName SessionName, FPicoManagerOnCancelMatchmakingCompleteDelegate OnCancelMatchmakingCompleteDelegate);
365 bool FindSessions(UObject* WorldContextObject, int32 SearchingPlayerNum, FPicoOnlineSessionSearch& NewSessionSearch, FPicoManagerOnFindSessionCompleteDelegate OnFindSessionCompleteDelegate);
366 bool FindSessionById(UObject* WorldContextObject,
const FUniqueNetId& SearchingUserId,
const FUniqueNetId& SessionId,
const FUniqueNetId& FriendId,
const FPicoManagerOnSingleSessionResultCompleteDelegate& CompletionDelegate);
367 bool JoinSession(UObject* WorldContextObject, int32 PlayerNum, FName SessionName,
const FOnlineSessionSearchResult& DesiredSession,
const FPicoManagerOnJoinSessionCompleteDelegate& OnJoinSessionCompleteDelegate);
368 void DumpSessionState(UObject* WorldContextObject);
369 EOnlineSessionState::Type GetSessionState(UObject* WorldContextObject, FName SessionName);
370 FNamedOnlineSession* GetNamedSession(UObject* WorldContextObject, FName SessionName);
371 FNamedOnlineSession* AddNamedSession(UObject* WorldContextObject, FName SessionName,
const FOnlineSessionSettings& SessionSettings);
372 FNamedOnlineSession* AddNamedSession(UObject* WorldContextObject, FName SessionName,
const FOnlineSession& Session);
373 FOnlineSessionSettings* GetSessionSettings(UObject* WorldContextObject, FName SessionName);
374 bool SendSessionInviteToFriend(UObject* WorldContextObject, int32 LocalUserNum, FName SessionName,
const FUniqueNetId& Friend);
377 FPicoOnlineSessionSearch* PicoSessionSearchPtr;
378 TSharedPtr<FOnlineSessionSearch> SessionSearchPtr;
379 FOnlineSessionSettings SessionSettings;
382 bool IsInputSessionSearchQueryDataValid(
const FPicoOnlineSessionSearch& InputSessionSearch);
383 bool IsInputSessionSettingsDataStoreValid(
const FPicoOnlineSessionSettings& UpdatedSessionSettings);
384 void SetOnlineSessionSearch(
const FPicoOnlineSessionSearch& InputSessionSearch);
385 FPicoOnlineSessionSettings GetPicoOnlineSessionSettings(
const FOnlineSessionSettings& UpdatedSessionSettings);
386 void SetOnlineSessionSettings(
const FPicoOnlineSessionSettings& UpdatedSessionSettings);
387 void SetPicoOnlineSessionSearch();
388 FOnlineSessionSettings GetOnlineSessionSettings(
const FPicoOnlineSessionSettings& UpdatedSessionSettings);
389 TSharedPtr<FOnlineSessionSearch> GetOnlineSessionSearch(
const FPicoOnlineSessionSearch& SessionSearch);
392 void OnCreateSessionComplete(FName SessionName,
bool bWasSuccessful);
393 void OnStartSessionComplete(FName SessionName,
bool bWasSuccessful);
394 void OnUpdateSessionComplete(FName SessionName,
bool bWasSuccessful);
395 void OnEndSessionComplete(FName SessionName,
bool bWasSuccessful);
396 void OnDestroySessionComplete(FName SessionName,
bool bWasSuccessful);
397 void OnMatchmakingComplete(FName SessionName,
bool bWasSuccessful);
398 void OnCancelMatchmakingComplete(FName SessionName,
bool bWasSuccessful);
399 void OnFindSessionComplete(
bool Result);
400 void OnFindSessionByIdComplete(int32 LocalUserNum,
bool bWasSuccessful,
const FOnlineSessionSearchResult& SearchResult);
401 void OnJoinSessionComplete(FName SessionName, EOnJoinSessionCompleteResult::Type Type);
405#if ENGINE_MAJOR_VERSION > 4
406 bool ReadLeaderboards(UObject* WorldContextObject,
const TArray< FUniqueNetIdRef >& Players, FPicoOnlineLeaderboardRead& PicoReadObject, FPicoManagerOnReadLeaderboardsCompleteDelegate OnReadLeaderboardsCompleteDelegate);
407#elif ENGINE_MINOR_VERSION > 26
408 bool ReadLeaderboards(UObject* WorldContextObject,
const TArray< FUniqueNetIdRef >& Players, FPicoOnlineLeaderboardRead& PicoReadObject, FPicoManagerOnReadLeaderboardsCompleteDelegate OnReadLeaderboardsCompleteDelegate);
409#elif ENGINE_MINOR_VERSION > 24
410 bool ReadLeaderboards(UObject* WorldContextObject,
const TArray< TSharedRef<const FUniqueNetId> >& Players, FPicoOnlineLeaderboardRead& PicoReadObject, FPicoManagerOnReadLeaderboardsCompleteDelegate OnReadLeaderboardsCompleteDelegate);
413 bool ReadLeaderboardsForFriends(UObject* WorldContextObject, int32 LocalUserNum, FPicoOnlineLeaderboardRead& PicoReadObject, FPicoManagerOnReadLeaderboardsCompleteDelegate OnReadLeaderboardsCompleteDelegate);
414 bool WriteLeaderboards(UObject* WorldContextObject,
const FName& SessionName,
const FUniqueNetId& Player, FOnlineLeaderboardWrite& WriteObject);
415 void SetOnlineLeaderboardRead(
const FPicoOnlineLeaderboardRead& PicoLeaderboardRead);
416 void RefreshPicoOnlineLeaderboardRead();
420 void OnReadLeaderboardsComplete(
bool bWasSuccessful);
422 FPicoOnlineLeaderboardRead* PicoLeaderboardReadPtr;
423 FOnlineLeaderboardReadPtr LeaderboardReadPtr;
427 static FOnlineManagerPresenceClearDelegate PresenceClearDelegate;
428 static FOnlineManagerPresenceReadInvitableUserDelegate PresenceReadInvitableUserDelegate;
429 static FOnlineManagerPresenceSetDelegate PresenceSetDelegate;
430 static FOnlineManagerPresenceSetDestinationDelegate PresenceSetDestinationDelegate;
431 static FOnlineManagerPresenceSetIsJoinableDelegate PresenceSetIsJoinableDelegate;
432 static FOnlineManagerPresenceSetLobbySessionDelegate PresenceSetLobbySessionDelegate;
433 static FOnlineManagerPresenceSetMatchSessionDelegate PresenceSetMatchSessionDelegate;
434 static FOnlineManagerPresenceSetExtraDelegate PresenceSetExtraDelegate;
435 static FOnlineManagerPresenceReadSentInvitesDelegate PresenceReadSentInvitesDelegate;
436 static FOnlineManagerPresenceSentInvitesDelegate PresenceSentInvitesDelegate;
437 static FOnlineManagerPresenceGetDestinationsDelegate PresenceGetDestinationsDelegate;
441 bool PresenceClear(UObject* WorldContextObject, FOnlineManagerPresenceClearDelegate InPresenceClearDelegate);
442 void OnPresenceClearComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
444 void ReadInvitableUser(UObject* WorldContextObject, TArray<FString> SuggestedUserList, FOnlineManagerPresenceReadInvitableUserDelegate InReadInvitableUserDelegate);
445 void OnReadInvitableUserComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
447 bool GetInvitableFriendList(UObject* WorldContextObject, TArray<FPicoUserInfo>& OutFriendsList);
449 bool PresenceSet(UObject* WorldContextObject,
const FString& ApiName,
const FString& LobbySessionId,
const FString& MatchSessionId,
bool bIsJoinable,
const FString& Extra, FOnlineManagerPresenceSetDelegate InPresenceSetDelegate);
450 void OnPresenceSetComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
452 bool PresenceSetDestination(UObject* WorldContextObject,
const FString& ApiName, FOnlineManagerPresenceSetDestinationDelegate InPresenceSetDestinationDelegate);
453 void OnPresenceSetDestinationComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
455 bool PresenceSetIsJoinable(UObject* WorldContextObject,
bool bIsJoinable, FOnlineManagerPresenceSetIsJoinableDelegate InPresenceSetIsJoinableDelegate);
456 void OnPresenceSetIsJoinableComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
458 bool PresenceSetLobbySession(UObject* WorldContextObject,
const FString& LobbySession, FOnlineManagerPresenceSetLobbySessionDelegate InPresenceSetLobbySessionDelegate);
459 void OnPresenceSetLobbySessionComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
461 bool PresenceSetMatchSession(UObject* WorldContextObject,
const FString& MatchSession, FOnlineManagerPresenceSetMatchSessionDelegate InPresenceSetMatchSessionDelegate);
462 void OnPresenceSetMatchSessionComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
464 bool PresenceSetExtra(UObject* WorldContextObject,
const FString& Extra, FOnlineManagerPresenceSetExtraDelegate InPresenceSetExtraDelegate);
465 void OnPresenceSetExtraComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
467 bool PresenceReadSendInvites(UObject* WorldContextObject, FOnlineManagerPresenceReadSentInvitesDelegate InPresenceReadSendInvitesDelegate);
468 void OnPresenceReadSendInvitesComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
471 bool PresenceSendInvites(UObject* WorldContextObject, TArray<FString> UserIdArray, FOnlineManagerPresenceSentInvitesDelegate InPresenceSentInvitesDelegate);
472 void OnSendInvitesComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
474 bool GetSendInvitesList(UObject* WorldContextObject, TArray<FPicoApplicationInvite>& OutList);
476 bool PresenceGetDestinations(UObject* WorldContextObject, FOnlineManagerPresenceGetDestinationsDelegate InPresenceGetDestinationsDelegate);
477 void OnGetDestinationsComplete(
bool bIsSuccessed,
const FString& ErrorMessage);
479 bool PresenceGetDestinationsList(UObject* WorldContextObject, TArray<FPicoDestination>& OutList);
482 static FOnlineManagerLaunchOtherAppDelegate LaunchOtherAppDelegate;
483 static FOnlineManagerLaunchOtherAppByPresenceDelegate LaunchOtherAppByPresenceDelegate;
484 static FOnlineManagerGetVersionDelegate GetVersionDelegate;
486 bool LaunchOtherApp(UObject* WorldContextObject,
const FString& AppID,
const FString& Message, FOnlineManagerLaunchOtherAppDelegate InLaunchOtherAppDelegate);
487 void OnLaunchOtherAppComplete(
const FString& Message,
bool bIsSuccessed,
const FString& ErrorMessage);
489 bool GetVersion(UObject* WorldContextObject, FOnlineManagerGetVersionDelegate InGetVersionDelegate);
490 void OnGetVersionComplete(
const FString& Message,
bool bIsSuccessed,
const FString& ErrorMessage);
492 bool LaunchOtherAppByPresence(UObject* WorldContextObject,
const FString& AppID,
const FString& PackageName,
const FString& Message,
const FString& ApiName,
const FString& LobbySessionId,
const FString& MatchSessionId,
const FString& TrackId,
const FString& Extra, FOnlineManagerLaunchOtherAppByPresenceDelegate InLaunchOtherAppByPresenceDelegate);
493 void OnLaunchOtherAppByPresenceComplete(
const FString& Message,
bool bIsSuccessed,
const FString& ErrorMessage);
496 static FOnlineManagerApplicationLifecycleReadDetailsDelegate ApplicationLifecycleReadDetailsDelegate;
501 bool GetLaunchDetails(UObject* WorldContextObject, FLaunchDetails& OutLaunchDetails);
503 bool LogDeeplinkResult(UObject* WorldContextObject,
const FString& TrackingID, ELaunchResult LaunchResult);
OnlinePicoFriend class inherited from FOnlineFriend(Unreal Engine).
Definition: OnlineFriendsInterfacePico.h:20
Pico Presence interface class.
Definition: PicoPresenceInterface.h:45
Pico RTC interface class.
Definition: RTCPicoUserInterface.h:198