// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Interfaces/ITurnkeySupportModule.h" #if UE_WITH_TURNKEY_SUPPORT #if WITH_EDITOR #include "Misc/CoreMisc.h" #endif /** * Editor main frame module */ class FTurnkeySupportModule : public ITurnkeySupportModule #if WITH_EDITOR , public FSelfRegisteringExec #endif { public: virtual void MakeTurnkeyMenu(struct FToolMenuSection& MenuSection) const override; virtual void MakeQuickLaunchItems(class UToolMenu* Menu, FOnQuickLaunchSelected ExternalOnClickDelegate) const override; virtual void MakeSimulatorItems(class UToolMenu* Menu, FOnQuickLaunchSelected ExternalOnClickDelegate) const override; virtual void RepeatQuickLaunch(FString DeviceId) override; virtual void UpdateSdkInfo() override; void UpdateSdkInfoForAllDevices(); void UpdateSdkInfoForProxy(const TSharedRef& AddedProxy); virtual void UpdateSdkInfoForDevices(TArray DeviceIds) override; virtual FTurnkeySdkInfo GetSdkInfo(FName PlatformName, bool bBlockIfQuerying = true) const override; virtual FTurnkeySdkInfo GetSdkInfoForDeviceId(const FString& DeviceId) const override; virtual void ClearDeviceStatus(FName PlatformName=NAME_None) override; public: // IModuleInterface interface virtual void StartupModule( ) override; virtual void ShutdownModule( ) override; virtual bool SupportsDynamicReloading( ) override { return true; // @todo: Eventually, this should probably not be allowed. } private: // Information about the validity of using a platform, discovered via Turnkey TMap PerPlatformSdkInfo; // Information about the validity of each connected device (by string, discovered by Turnkey) TMap PerDeviceSdkInfo; // menu helpers TSharedRef MakeTurnkeyMenuWidget() const; #if WITH_EDITOR // FSelfRegisteringExec interface virtual bool Exec_Editor( class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar ) override; #endif }; #endif // UE_WITH_TURNKEY_SUPPORT