Plasma Engine  2.0
Loading...
Searching...
No Matches
AudioTranslationLayerData.h
1#pragma once
2
3#include <AudioSystemPlugin/AudioSystemPluginDLL.h>
4
5#include <AudioSystemPlugin/Core/AudioSystemAllocator.h>
6#include <AudioSystemPlugin/Core/AudioSystemData.h>
7
8
9template <typename T>
11
20
22{
23public:
24 explicit plATLControl(const plAudioSystemDataID uiId)
25 : m_uiId(uiId)
26 {
27 }
28
29 virtual ~plATLControl() = default;
30
31 [[nodiscard]] virtual plAudioSystemDataID GetId() const { return m_uiId; }
32
33private:
34 const plAudioSystemDataID m_uiId;
35};
36
38 : public plATLControl
39{
40public:
41 explicit plATLListener(const ::plAudioSystemDataID uiId, plAudioSystemListenerData* const pListenerData = nullptr)
42 : plATLControl(uiId)
43 , m_pListenerData(pListenerData)
44 {
45 }
46
47 ~plATLListener() override = default;
48
49 plAudioSystemListenerData* const m_pListenerData;
50};
51
52class plATLEntity final
53 : public plATLControl
54{
55public:
56 explicit plATLEntity(const ::plAudioSystemDataID uiId, plAudioSystemEntityData* const pEntityData = nullptr)
57 : plATLControl(uiId)
58 , m_pEntityData(pEntityData)
59 {
60 }
61
62 ~plATLEntity() override = default;
63
64 plAudioSystemEntityData* const m_pEntityData;
65};
66
67class plATLTrigger final
68 : public plATLControl
69{
70public:
71 explicit plATLTrigger(const ::plAudioSystemDataID uiId, plAudioSystemTriggerData* const pTriggerData = nullptr)
72 : plATLControl(uiId)
73 , m_pTriggerData(pTriggerData)
74 {
75 }
76
77 ~plATLTrigger() override;
78
81 void AttachEvent(::plAudioSystemDataID uiEventId, plAudioSystemEventData* pEventData);
82
84 void DetachEvent(::plAudioSystemDataID uiEventId);
85
88 [[nodiscard]] plResult GetEvent(::plAudioSystemDataID uiEventId, plAudioSystemEventData*& out_pEventData) const;
89
90 plAudioSystemTriggerData* const m_pTriggerData;
91
92private:
93 plATLEventLookup m_mEvents;
94};
95
96class plATLEvent final
97 : public plATLControl
98{
99public:
100 explicit plATLEvent(const ::plAudioSystemDataID uiId, plAudioSystemEventData* const pEventData = nullptr)
101 : plATLControl(uiId)
102 , m_pEventData(pEventData)
103 {
104 }
105
106 ~plATLEvent() override = default;
107
108 plAudioSystemEventData* const m_pEventData;
109};
110
111class plATLRtpc final
112 : public plATLControl
113{
114public:
115 explicit plATLRtpc(const ::plAudioSystemDataID uiId, plAudioSystemRtpcData* const pRtpcData = nullptr)
116 : plATLControl(uiId)
117 , m_pRtpcData(pRtpcData)
118 {
119 }
120
121 ~plATLRtpc() override = default;
122
123 plAudioSystemRtpcData* const m_pRtpcData;
124};
125
127 : public plATLControl
128{
129public:
130 explicit plATLSwitchState(const ::plAudioSystemDataID uiId, plAudioSystemSwitchStateData* const pSwitchStateData = nullptr)
131 : plATLControl(uiId)
132 , m_pSwitchStateData(pSwitchStateData)
133 {
134 }
135
136 ~plATLSwitchState() override = default;
137
138 plAudioSystemSwitchStateData* const m_pSwitchStateData;
139};
140
142 : public plATLControl
143{
144public:
145 explicit plATLEnvironment(const ::plAudioSystemDataID uiId, plAudioSystemEnvironmentData* const pEnvironmentData = nullptr)
146 : plATLControl(uiId)
147 , m_pEnvironmentData(pEnvironmentData)
148 {
149 }
150
151 ~plATLEnvironment() override = default;
152
153 plAudioSystemEnvironmentData* const m_pEnvironmentData;
154};
155
156class plATLSoundBank final
157 : public plATLControl
158{
159public:
160 explicit plATLSoundBank(const ::plAudioSystemDataID uiId, plAudioSystemBankData* const pSoundBankData = nullptr)
161 : plATLControl(uiId)
162 , m_pSoundBankData(pSoundBankData)
163 {
164 }
165
166 ~plATLSoundBank() override = default;
167
168 plAudioSystemBankData* const m_pSoundBankData;
169};
Definition AudioTranslationLayerData.h:22
Definition AudioTranslationLayerData.h:54
Definition AudioTranslationLayerData.h:143
Definition AudioTranslationLayerData.h:98
Definition AudioTranslationLayerData.h:39
Definition AudioTranslationLayerData.h:113
Definition AudioTranslationLayerData.h:158
Definition AudioTranslationLayerData.h:128
Definition AudioTranslationLayerData.h:69
void DetachEvent(::plAudioSystemDataID uiEventId)
Detach an event to this trigger. This will also destroy the event.
Definition AudioTranslationLayerData.cpp:33
plResult GetEvent(::plAudioSystemDataID uiEventId, plAudioSystemEventData *&out_pEventData) const
Get an attached event. This will fail and return nullptr if an event with the given ID is not attache...
Definition AudioTranslationLayerData.cpp:39
void AttachEvent(::plAudioSystemDataID uiEventId, plAudioSystemEventData *pEventData)
Attach an event to this trigger. This means the attached event has been triggered by this trigger....
Definition AudioTranslationLayerData.cpp:28
Base class for an audio middleware bank file.
Definition AudioSystemData.h:224
Base class for an audio middleware entity.
Definition AudioSystemData.h:153
Base class for an audio middleware environment.
Definition AudioSystemData.h:198
Base class for an audio middleware event.
Definition AudioSystemData.h:207
Base class for an audio middleware listener.
Definition AudioSystemData.h:162
Base class for an audio middleware RTPC.
Definition AudioSystemData.h:180
Base class for an audio middleware switch state.
Definition AudioSystemData.h:189
Base class for an audio middleware trigger.
Definition AudioSystemData.h:171
Definition Map.h:408
Definition AudioSystemAllocator.h:36
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54