50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
|
|
||
|
#include "OculusXRTelemetry.h"
|
||
|
#include "OculusXRHMDModule.h"
|
||
|
#include "OculusXRTelemetryPrivacySettings.h"
|
||
|
#include "Async/Async.h"
|
||
|
|
||
|
namespace OculusXRTelemetry
|
||
|
{
|
||
|
bool IsActive()
|
||
|
{
|
||
|
#if OCULUS_HMD_SUPPORTED_PLATFORMS
|
||
|
if constexpr (FTelemetryBackend::IsNullBackend())
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
if (FOculusXRHMDModule::Get().IsOVRPluginAvailable() && FOculusXRHMDModule::GetPluginWrapper().IsInitialized())
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
#endif // OCULUS_HMD_SUPPORTED_PLATFORMS
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
void IfActiveThen(TUniqueFunction<void()> Function)
|
||
|
{
|
||
|
AsyncTask(ENamedThreads::GameThread, [F = MoveTemp(Function)]() {
|
||
|
if (IsActive())
|
||
|
{
|
||
|
F();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
void PropagateTelemetryConsent()
|
||
|
{
|
||
|
bool HasConsent = true;
|
||
|
#ifdef WITH_EDITOR
|
||
|
if (const auto EditorPrivacySettings = GetDefault<UOculusXRTelemetryPrivacySettings>())
|
||
|
{
|
||
|
HasConsent = EditorPrivacySettings->bIsEnabled;
|
||
|
}
|
||
|
#endif
|
||
|
if (FOculusXRHMDModule::Get().IsOVRPluginAvailable() && FOculusXRHMDModule::GetPluginWrapper().IsInitialized())
|
||
|
{
|
||
|
FOculusXRHMDModule::GetPluginWrapper().QplSetConsent(HasConsent);
|
||
|
}
|
||
|
}
|
||
|
} // namespace OculusXRTelemetry
|