53 lines
2.1 KiB
C++
53 lines
2.1 KiB
C++
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
|
|
#include "OculusXRColocation.h"
|
|
#include "OculusXRColocationModule.h"
|
|
#include "OculusXRColocationTypes.h"
|
|
#include "OculusXRColocationUtil.h"
|
|
#include "OculusXRAsyncRequestSystem.h"
|
|
#include "OculusXRHMDModule.h"
|
|
|
|
namespace OculusXRColocation
|
|
{
|
|
TSharedPtr<FDiscoverSessionsRequest> FColocation::DiscoverSessionsAsync(const FDiscoverSessionsRequest::FCompleteDelegate& OnComplete, const FOculusXRColocationSessionFoundDelegate& OnSessionFound)
|
|
{
|
|
auto request = OculusXR::FAsyncRequestSystem::CreateRequest<FDiscoverSessionsRequest>();
|
|
request->BindOnComplete(OnComplete);
|
|
request->BindOnSessionFound(OnSessionFound);
|
|
request->Execute();
|
|
|
|
return request;
|
|
}
|
|
|
|
EColocationResult FColocation::StopDiscoverSessions(TSharedPtr<FDiscoverSessionsRequest> Request)
|
|
{
|
|
uint64 requestId = Request->GetRequestId().Id;
|
|
ovrpResult result = FOculusXRHMDModule::GetPluginWrapper().StopColocationDiscovery(&requestId);
|
|
UE_LOG(LogOculusXRColocation, Log, TEXT("Stopping colocation session discovery. RequestID: %llu, Launch async result: %d"), Request->GetRequestId().Id, result);
|
|
|
|
EColocationResult colocationResult = GetResult(result);
|
|
if (colocationResult != EColocationResult::Success)
|
|
{
|
|
UE_LOG(LogOculusXRColocation, Warning, TEXT("Failed to stop local group discovery."));
|
|
}
|
|
|
|
return colocationResult;
|
|
}
|
|
|
|
TSharedPtr<FStartSessionAdvertisementRequest> FColocation::StartSessionAdvertisementAsync(const TArray<uint8>& SessionData, const FStartSessionAdvertisementRequest::FCompleteDelegate& OnComplete)
|
|
{
|
|
auto request = OculusXR::FAsyncRequestSystem::CreateRequest<FStartSessionAdvertisementRequest>(SessionData);
|
|
request->BindOnComplete(OnComplete);
|
|
request->Execute();
|
|
return request;
|
|
}
|
|
|
|
TSharedPtr<FStopSessionAdvertisementRequest> FColocation::StopSessionAdvertisementAsync(const FStopSessionAdvertisementRequest::FCompleteDelegate& OnComplete)
|
|
{
|
|
auto request = OculusXR::FAsyncRequestSystem::CreateRequest<FStopSessionAdvertisementRequest>();
|
|
request->BindOnComplete(OnComplete);
|
|
request->Execute();
|
|
return request;
|
|
}
|
|
} // namespace OculusXRColocation
|