77 lines
2.8 KiB
C++
77 lines
2.8 KiB
C++
// @lint-ignore-every LICENSELINT
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
#include "IInputDevice.h"
|
|
#include "IOculusXRInputModule.h"
|
|
#include "OculusXRInputExtensionPlugin.h"
|
|
#include "OculusXRInputHapticsExtensionPlugin.h"
|
|
#include "OculusXRInputHandTrackingExtensionPlugin.h"
|
|
#include "OculusXRTouchPlusInputExtensionPlugin.h"
|
|
#include "OculusXRTouchProInputExtensionPlugin.h"
|
|
#include "Templates/SharedPointer.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "OculusXRInput"
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
// FOculusXRInputModule
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
#if OCULUS_INPUT_SUPPORTED_PLATFORMS
|
|
|
|
namespace OculusXRInput
|
|
{
|
|
class FOculusXRInput;
|
|
}
|
|
|
|
class FOculusXRInputModule : public IOculusXRInputModule
|
|
{
|
|
public:
|
|
OculusXRInput::FInputExtensionPlugin* GetInputOpenXRExtension() const;
|
|
OculusXRInput::FHandTrackingExtensionPlugin* GetHandTrackingOpenXRExtension() const;
|
|
OculusXRInput::FInputHapticsExtensionPlugin* GetHapticsOpenXRExtension() const;
|
|
|
|
TWeakPtr<OculusXRInput::FOculusXRInput> OculusXRInputDevice;
|
|
|
|
// IInputDeviceModule overrides
|
|
virtual void StartupModule() override;
|
|
virtual void ShutdownModule() override;
|
|
virtual TSharedPtr<class IInputDevice> CreateInputDevice(const TSharedRef<FGenericApplicationMessageHandler>& InMessageHandler) override;
|
|
|
|
// IOculusXRInputModule overrides
|
|
virtual uint32 GetNumberOfTouchControllers() const override;
|
|
virtual uint32 GetNumberOfHandControllers() const override;
|
|
virtual TSharedPtr<IInputDevice> GetInputDevice() const override;
|
|
|
|
private:
|
|
typedef TSharedPtr<OculusXRInput::FInputHapticsExtensionPlugin, ESPMode::ThreadSafe> FHapticsExtensionPluginPtr;
|
|
FHapticsExtensionPluginPtr HapticsExtensionPlugin;
|
|
typedef TSharedPtr<OculusXRInput::FHandTrackingExtensionPlugin, ESPMode::ThreadSafe> FHandTrackingExtensionPluginPtr;
|
|
FHandTrackingExtensionPluginPtr HandTrackingExtensionPlugin;
|
|
typedef TSharedPtr<OculusXRInput::FInputExtensionPlugin, ESPMode::ThreadSafe> FInputExtensionPluginPtr;
|
|
FInputExtensionPluginPtr InputExtensionPlugin;
|
|
typedef TSharedPtr<OculusXRInput::FTouchProInputExtensionPlugin, ESPMode::ThreadSafe> FTouchProInputExtensionPluginPtr;
|
|
FTouchProInputExtensionPluginPtr TouchProInputExtensionPlugin;
|
|
typedef TSharedPtr<OculusXRInput::FTouchPlusInputExtensionPlugin, ESPMode::ThreadSafe> FTouchPlusInputExtensionPluginPtr;
|
|
FTouchPlusInputExtensionPluginPtr TouchPlusInputExtensionPlugin;
|
|
};
|
|
|
|
#else // OCULUS_INPUT_SUPPORTED_PLATFORMS
|
|
|
|
class FOculusXRInputModule : public FDefaultModuleImpl
|
|
{
|
|
virtual uint32 GetNumberOfTouchControllers() const
|
|
{
|
|
return 0;
|
|
};
|
|
|
|
virtual uint32 GetNumberOfHandControllers() const
|
|
{
|
|
return 0;
|
|
};
|
|
};
|
|
|
|
#endif // OCULUS_INPUT_SUPPORTED_PLATFORMS
|
|
|
|
#undef LOCTEXT_NAMESPACE
|