/* * Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include #include #include #include #include #include #include namespace Audio { struct IAudioProxy; } // namespace Audio class CImplementationManager; //-------------------------------------------------------------------------------------------// class CAudioControlsEditorPlugin : public IPlugin , public ISystemEventListener { public: explicit CAudioControlsEditorPlugin(IEditor* editor); ~CAudioControlsEditorPlugin() override; void Release() override; void ShowAbout() override {} const char* GetPluginGUID() override { return "{DDD96BF3-892E-4A75-ABF7-BBAE446972DA}"; } DWORD GetPluginVersion() override { return 2; } const char* GetPluginName() override { return "AudioControlsEditor"; } bool CanExitNow() override { return true; } void OnEditorNotify([[maybe_unused]] EEditorNotifyEvent aEventId) override {} static void SaveModels(); static void ReloadModels(); static void ReloadScopes(); static AudioControls::CATLControlsModel* GetATLModel(); static AudioControls::QATLTreeModel* GetControlsTree(); static CImplementationManager* GetImplementationManager(); static AudioControls::IAudioSystemEditor* GetAudioSystemEditorImpl(); static void ExecuteTrigger(const AZStd::string_view sTriggerName); static void StopTriggerExecution(); /////////////////////////////////////////////////////////////////////////// // ISystemEventListener void OnSystemEvent(ESystemEvent event, UINT_PTR wparam, UINT_PTR lparam) override; /////////////////////////////////////////////////////////////////////////// private: static AudioControls::CATLControlsModel ms_ATLModel; static AudioControls::QATLTreeModel ms_layoutModel; static AudioControls::FilepathSet ms_currentFilenames; static Audio::IAudioProxy* ms_pIAudioProxy; static Audio::TAudioControlID ms_nAudioTriggerID; static CImplementationManager ms_implementationManager; };