// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "CoreGlobals.h" #include "MetasoundFrontendPages.h" #include "MetasoundSettings.h" namespace Metasound::Engine { // UMetaSoundSettings::GetPageOrder() is only available on GT. This ThreadSafe // version is available for use in the builder when things are not on the GT. template const ElementType* FindPreferredPage_ThreadSafe(const TArray& InElements) { if (IsInGameThread() || IsInAudioThread()) { return Frontend::FindPreferredPage(InElements, UMetaSoundSettings::GetPageOrder()); } else { TArray PageOrder; if (const UMetaSoundSettings* Settings = GetDefault()) { PageOrder = Settings->GeneratePageOrder(); } return Frontend::FindPreferredPage(InElements, PageOrder); } } }