Sound Bakery  v0.1.0
Open-source audio middleware for games
Loading...
Searching...
No Matches
effect.h
1#pragma once
2
3#include "sound_bakery/core/core_include.h"
4
5namespace SB::Engine
6{
7 class SB_CLASS EffectParameterDescription final
8 {
9 REGISTER_REFLECTION(EffectParameterDescription)
10
11 public:
13
14 EffectParameterDescription(const sc_dsp_parameter* parameter) { m_parameter = *parameter; }
15
16 sc_dsp_parameter m_parameter;
17 };
18
22 class SB_CLASS EffectDescription final : public SB::Core::DatabaseObject
23 {
24 REGISTER_REFLECTION(EffectDescription, DatabaseObject)
25
26 public:
27 EffectDescription() : SB::Core::DatabaseObject(), m_config() { setDSPType(SC_DSP_TYPE_LOWPASS); }
28
29 void setDSPType(sc_dsp_type type)
30 {
31 m_parameterDescriptions.clear();
32
33 m_config = sc_dsp_config_init(type);
34
35 for (int i = 0; i < m_config.vtable->numParams; ++i)
36 {
37 m_parameterDescriptions.emplace_back(m_config.vtable->params[i]);
38 }
39 }
40
41 const std::vector<EffectParameterDescription> getParameters() const { return m_parameterDescriptions; }
42 const sc_dsp_config* getConfig() const { return &m_config; }
43 sc_dsp_type getDSPType() const { return m_config.type; }
44
45 private:
46 sc_dsp_config m_config;
47 std::vector<EffectParameterDescription> m_parameterDescriptions;
48 };
49} // namespace SB::Engine
Base object type for any object that can exist in the editor/database. Holds an ID and name.
Definition database_object.h:22
Wraps a sc_dsp_config.
Definition effect.h:23
sc_dsp_config SC_API sc_dsp_config_init(sc_dsp_type type)
Returns a valid sc_dsp_config object for the DSP type.
Definition sound_chef_dsp.c:192
Definition sound_chef_common.h:140
Definition sound_chef_dsp.h:34