Illusion-UE5/hwanyoung2/Plugins/FMODStudio/Source/FMODAudioLinkEditor/Public/FMODAudioLinkEditorModule.h

39 lines
1.4 KiB
C
Raw Normal View History

// Copyright (c), Firelight Technologies Pty, Ltd. 2024-2024.
#include "Modules/ModuleInterface.h"
#include "FMODAudioLinkSettingsFactory.h"
#include "FMODAudioLinkSettings.h"
#include "ISettingsModule.h"
class FAssetTypeActions_FMODAudioLinkSettings;
class FFMODAudioLinkEditorModule
{
public:
FFMODAudioLinkEditorModule()
{
// Register asset types
IAssetTools& AssetTools = FAssetToolsModule::GetModule().Get();
{
AssetActions = MakeShared<FAssetTypeActions_FMODAudioLinkSettings>();
AssetTools.RegisterAssetTypeActions(AssetActions.ToSharedRef());
if (ISettingsModule* SettingsModule = FModuleManager::Get().GetModulePtr<ISettingsModule>("Settings"))
{
SettingsModule->RegisterSettings("Project", "Plugins", "FMOD AudioLink", NSLOCTEXT("FMODAudioLink", "FMOD AudioLink", "FMOD AudioLink"),
NSLOCTEXT("FMODAudioLink", "Configure AudioLink for FMOD Settings", "Configure AudioLink for FMOD Settings"), GetMutableDefault<UFMODAudioLinkSettings>());
}
}
}
~FFMODAudioLinkEditorModule()
{
if (FAssetToolsModule::IsModuleLoaded())
{
IAssetTools& AssetTools = FAssetToolsModule::GetModule().Get();
AssetTools.UnregisterAssetTypeActions(AssetActions.ToSharedRef());
}
AssetActions.Reset();
}
private:
TSharedPtr<FAssetTypeActions_FMODAudioLinkSettings> AssetActions;
};