Files
UnrealEngineUWP/Engine/Plugins/Runtime/Metasound/Source/MetasoundEngine/Private/MetasoundEngineModule.cpp
rob gay 753d3eb20a Ensure registration of engine-level parameter interfaces by MetaSoundEngine Module and split out from loading default settings call in AudioSettings (can happen on app load if cooking and AudioDeviceManager isn't loaded).
#rb aaron.mcleran
#jira UE-137597
#rnx
[FYI] sondra.moyls
#preflight 61ba4f9823741afd576c1e0f

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18470944 in //UE5/Release-5.0/... via CL 18470970
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18470975 by rob gay in ue5-release-engine-test branch]
2021-12-15 16:05:33 -05:00

46 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MetasoundEngineModule.h"
#include "Metasound.h"
#include "MetasoundDataReference.h"
#include "MetasoundDataTypeRegistrationMacro.h"
#include "MetasoundEngineArchetypes.h"
#include "MetasoundInterface.h"
#include "MetasoundSource.h"
#include "MetasoundUObjectRegistry.h"
#include "MetasoundWave.h"
#include "Modules/ModuleManager.h"
#include "Sound/AudioSettings.h"
DEFINE_LOG_CATEGORY(LogMetasoundEngine);
REGISTER_METASOUND_DATATYPE(Metasound::FWaveAsset, "WaveAsset", Metasound::ELiteralType::UObjectProxy, USoundWave);
class FMetasoundEngineModule : public IMetasoundEngineModule
{
virtual void StartupModule() override
{
FModuleManager::Get().LoadModuleChecked("MetasoundGraphCore");
FModuleManager::Get().LoadModuleChecked("MetasoundFrontend");
FModuleManager::Get().LoadModuleChecked("MetasoundStandardNodes");
FModuleManager::Get().LoadModuleChecked("MetasoundGenerator");
FModuleManager::Get().LoadModuleChecked("AudioCodecEngine");
// Register engine-level parameter interfaces if not done already.
// (Potentially not already called if plugin is loaded while cooking.)
UAudioSettings* AudioSettings = GetMutableDefault<UAudioSettings>();
check(AudioSettings);
AudioSettings->RegisterParameterInterfaces();
// Register interfaces
Metasound::Engine::RegisterInterfaces();
// Flush node registration queue
FMetasoundFrontendRegistryContainer::Get()->RegisterPendingNodes();
UE_LOG(LogMetasoundEngine, Log, TEXT("MetaSound Engine Initialized"));
}
};
IMPLEMENT_MODULE(FMetasoundEngineModule, MetasoundEngine);