// Copyright Epic Games, Inc. All Rights Reserved. #include "DirectLinkExtensionBlueprintLibrary.h" #include "DirectLinkExtensionModule.h" #include "DirectLinkExternalSource.h" #include "DirectLinkUriResolver.h" #include "IDirectLinkManager.h" #include "SourceUri.h" TArray UDirectLinkExtensionBlueprintLibrary::GetAvailableDirectLinkSourcesUri() { using namespace UE::DatasmithImporter; TArray SourceUris; const IDirectLinkManager& Manager = IDirectLinkExtensionModule::Get().GetManager(); const TArray> ExternalSources = Manager.GetExternalSourceList(); for (const TSharedRef& ExternalSource : ExternalSources) { SourceUris.Add(ExternalSource->GetSourceUri().ToString()); } return SourceUris; } bool UDirectLinkExtensionBlueprintLibrary::ParseDirectLinkSourceUri(const FString& SourceUriString, FString& OutComputerName, FString& OutEndpointName, FString& OutExecutableName, FString& OutSourceName) { using namespace UE::DatasmithImporter; const FSourceUri SourceUri(SourceUriString); if (TOptional SourceDescription = FDirectLinkUriResolver::TryParseDirectLinkUri(SourceUri)) { OutComputerName = SourceDescription->ComputerName; OutEndpointName = SourceDescription->EndpointName; OutExecutableName = SourceDescription->ExecutableName; OutSourceName = SourceDescription->SourceName; return true; } return false; }