// 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(); AssetTools.RegisterAssetTypeActions(AssetActions.ToSharedRef()); if (ISettingsModule* SettingsModule = FModuleManager::Get().GetModulePtr("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()); } } } ~FFMODAudioLinkEditorModule() { if (FAssetToolsModule::IsModuleLoaded()) { IAssetTools& AssetTools = FAssetToolsModule::GetModule().Get(); AssetTools.UnregisterAssetTypeActions(AssetActions.ToSharedRef()); } AssetActions.Reset(); } private: TSharedPtr AssetActions; };