Plasma Engine  2.0
Loading...
Searching...
No Matches
AudioSystemActions.h
1#pragma once
2
3#include <EditorPluginAudioSystem/EditorPluginAudioSystemDLL.h>
4
5#include <Foundation/Configuration/CVar.h>
6
7#include <GuiFoundation/Action/BaseActions.h>
8#include <GuiFoundation/GuiFoundationDLL.h>
9
10class plPreferences;
11
12class PL_EDITORPLUGINAUDIOSYSTEM_DLL plAudioSystemActions
13{
14public:
15 static void RegisterActions();
16 static void UnregisterActions();
17
18 static void MapMenuActions(const char* szMapping);
19 static void MapToolbarActions(const char* szMapping);
20
21 static plActionDescriptorHandle s_hCategoryAudioSystem;
22 static plActionDescriptorHandle s_hMuteSound;
23 static plActionDescriptorHandle s_hMasterVolume;
24};
25
26
27class PL_EDITORPLUGINAUDIOSYSTEM_DLL plAudioSystemAction : public plButtonAction
28{
29 PL_ADD_DYNAMIC_REFLECTION(plAudioSystemAction, plButtonAction);
30
31public:
32 enum class ActionType
33 {
34 MuteSound,
35 };
36
37 plAudioSystemAction(const plActionContext& context, const char* szName, ActionType type);
38 ~plAudioSystemAction() override;
39
40 virtual void Execute(const plVariant& value) override;
41
42private:
43 void OnPreferenceChange(plPreferences* pref);
44
45 ActionType m_Type;
46};
47
48class PL_EDITORPLUGINAUDIOSYSTEM_DLL plAudioSystemSliderAction : public plSliderAction
49{
50 PL_ADD_DYNAMIC_REFLECTION(plAudioSystemSliderAction, plSliderAction);
51
52public:
53 enum class ActionType
54 {
55 MasterVolume,
56 };
57
58 plAudioSystemSliderAction(const plActionContext& context, const char* szName, ActionType type);
60
61 virtual void Execute(const plVariant& value) override;
62
63private:
64 void OnPreferenceChange(plPreferences* pref);
65 void UpdateState();
66
67 ActionType m_Type;
68};
Handle for a plAction.
Definition Action.h:27
Definition AudioSystemActions.h:28
Definition AudioSystemActions.h:13
Definition AudioSystemActions.h:49
Definition BaseActions.h:159
Base class for all preferences.
Definition Preferences.h:17
Definition BaseActions.h:206
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition Action.h:67