You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/AudioSystem/Code/Source/Editor/AudioControlsEditorPlugin.h

76 lines
2.5 KiB
C++

/*
* 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 <AzCore/std/containers/set.h>
#include <AzCore/std/string/string_view.h>
#include <ATLControlsModel.h>
#include <AudioResourceSelectors.h>
#include <IAudioInterfacesCommonData.h>
#include <IAudioSystemEditor.h>
#include <QATLControlsTreeModel.h>
#include <IEditor.h>
#include <Include/IPlugin.h>
#include <QStandardItem>
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;
AudioControls::AudioControlSelectorHandler m_controlSelector;
};