Plasma Engine  2.0
Loading...
Searching...
No Matches
AudioControlCollectionResource.h
1#pragma once
2
3#include <AmplitudeAudioPlugin/AmplitudeAudioPluginDLL.h>
4
5#include <AmplitudeAudioPlugin/Core/AmplitudeAudioData.h>
6
7#include <Core/ResourceManager/Resource.h>
8
10
19
22{
24
25 void Save(plStreamWriter& stream) const;
26 void Load(plStreamReader& stream);
27};
28
33class PL_AMPLITUDEAUDIOPLUGIN_DLL plAmplitudeAudioControlCollectionResource : public plResource
34{
35 PL_ADD_DYNAMIC_REFLECTION(plAmplitudeAudioControlCollectionResource, plResource);
36 PL_RESOURCE_DECLARE_COMMON_CODE(plAmplitudeAudioControlCollectionResource);
37 PL_RESOURCE_DECLARE_CREATEABLE(plAudioControlCollectionResource, plAmplitudeAudioControlCollectionResourceDescriptor);
38
39public:
41
48 void Register();
49
53 void Unregister();
54
56 [[nodiscard]] const plAmplitudeAudioControlCollectionResourceDescriptor& GetDescriptor() const;
57
58private:
59 void RegisterTrigger(const char* szTriggerName, const char* szControlFile);
60 void RegisterTrigger(const char* szTriggerName, plStreamReader* pStreamReader);
61 void UnregisterTrigger(const char* szTriggerName);
62
63 void RegisterRtpc(const char* szRtpcName, const char* szControlFile);
64 void RegisterRtpc(const char* szRtpcName, plStreamReader* pStreamReader);
65 void UnregisterRtpc(const char* szRtpcName);
66
67 void RegisterSwitchState(const char* szSwitchStateName, const char* szControlFile);
68 void RegisterSwitchState(const char* szSwitchStateName, plStreamReader* pStreamReader);
69 void UnregisterSwitchState(const char* szSwitchStateName);
70
71 void RegisterEnvironment(const char* szEnvironmentName, const char* szControlFile);
72 void RegisterEnvironment(const char* szEnvironmentName, plStreamReader* pStreamReader);
73 void UnregisterEnvironment(const char* szEnvironmentName);
74
75 void RegisterSoundBank(const char* szBankName, const char* szControlFile);
76 void RegisterSoundBank(const char* szBankName, plStreamReader* pStreamReader);
77 void UnregisterSoundBank(const char* szBankName);
78
79 plResourceLoadDesc UnloadData(Unload WhatToUnload) override;
80 plResourceLoadDesc UpdateContent(plStreamReader* pStream) override;
81 void UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) override;
82
83 bool m_bRegistered = false;
85};
An plAmplitudeAudioControlCollectionResource is used by the audio system to map a collection of audio...
Definition AudioControlCollectionResource.h:34
The default implementation for memory stream storage.
Definition MemoryStream.h:161
Definition DynamicArray.h:81
The base class for all resources.
Definition Resource.h:10
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
Represents one audio control, used by a single audio middleware.
Definition AudioControlCollectionResource.h:13
plString m_sControlFile
The path to the audio system control.
Definition AudioControlCollectionResource.h:15
plEnum< plAmplitudeAudioControlType > m_Type
The type of the control.
Definition AudioControlCollectionResource.h:17
plString m_sName
Optional, can be used to lookup the resource at runtime with a nice name. E.g. "SkyTexture" instead o...
Definition AudioControlCollectionResource.h:14
Describes a full plAmplitudeAudioControlCollectionResource, ie. lists all the controls that the colle...
Definition AudioControlCollectionResource.h:22
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition Resource.h:34
Describes in which loading state a resource currently is, and how many different quality levels there...
Definition Declarations.h:102