Krotos Modules 3
Loading...
Searching...
No Matches
Kwidget_ConvolutionReverb.cpp
Go to the documentation of this file.
1namespace krotos
2{
3 const String Kwidget_ConvolutionReverb::Parameters::Mix = "Mix";
4 const String Kwidget_ConvolutionReverb::Parameters::Predelay = "Predelay";
5 const String Kwidget_ConvolutionReverb::Parameters::WetGain = "WetGain";
6 const String Kwidget_ConvolutionReverb::Parameters::ImpulsePath = "ImpulsePath";
7 const String Kwidget_ConvolutionReverb::Parameters::Bypass = "Bypass";
8
9 Kwidget_ConvolutionReverb::Kwidget_ConvolutionReverb(const String& id) : Kwidget("ConvolutionReverb", id)
10 {
11 createAndAddCustomParameter(Parameters::ImpulsePath, "");
12
13 init();
14
15 addParameterCallback(Parameters::Bypass, [this](float newValue) { byPassChange(newValue); });
16 }
17
18 std::vector<Kwidget::ParameterInfo> Kwidget_ConvolutionReverb::createParameters()
19 {
20 using P = Parameters;
21
22 return {{P::Mix, P::Mix, {0.0f, 1.0f}, 0.0f},
23 {P::Predelay, P::Predelay, {0.0f, 500.0f, 1.0f, 0.5f}, 0.0f},
24 {P::WetGain, P::WetGain, {-30.0f, 30.0f}, 0.0f},
25 {P::Bypass, P::Bypass, {0.0f, 1.0f, 1.0f}, 0.0f}};
26 }
27
28 std::unique_ptr<KwidgetProcessor> Kwidget_ConvolutionReverb::createProcessor()
29 {
30 return std::make_unique<KwidgetProcessor_ConvolutionReverb>(*this);
31 }
32
33 std::unique_ptr<KwidgetGUI> Kwidget_ConvolutionReverb::createGUI()
34 {
35 return std::make_unique<KwidgetGUI_ConvolutionReverb>(*this);
36 }
37
38 void Kwidget_ConvolutionReverb::addListener(Listener* listenerToAdd) { m_listeners.add(listenerToAdd); }
39
41 {
42 jassert(m_listeners.contains(listenerToRemove));
43 m_listeners.remove(listenerToRemove);
44 }
45
47 {
48 m_listeners.call([newValue](Listener& l) { l.bypassReverbChanged(newValue); });
49 }
50
55
56 Result Kwidget_ConvolutionReverb::rewriteImpulseParameterPath(ValueTree& reverb, const String& newPath)
57 {
58 ValueTree impulseCustomParameter =
59 reverb.getChildWithName(XmlType::Tag::customParams)
60 .getChildWithProperty(XmlType::Property::id,
61 Kwidget_ConvolutionReverb::Parameters::ImpulsePath);
62 String impulsePath = impulseCustomParameter.getProperty(XmlType::Property::value).toString();
63
64 if (!impulseCustomParameter.isValid() || impulsePath.isEmpty())
65 {
66 jassertfalse;
67 return Result::fail("Could not find impulse path parameter to rewrite");
68 }
69
70 impulseCustomParameter.setProperty(XmlType::Property::value,
72 nullptr);
73
74 return Result::ok();
75 }
76} // namespace krotos
static File getAssetDirectory()
Definition AssetManager.cpp:383
Definition Kwidget_ConvolutionReverb.h:10
virtual void bypassReverbChanged(float newVal)=0
static Result rewriteImpulseParameterPath(ValueTree &kwidgetTree, const String &newAbsolutePath)
Static helper function that rewrites the value of the impulse custom parameter to make it relative to...
Definition Kwidget_ConvolutionReverb.cpp:56
Kwidget_ConvolutionReverb(const String &id)
Kwidget_ConvolutionReverb constructor.
Definition Kwidget_ConvolutionReverb.cpp:9
ListenerList< Listener > m_listeners
Definition Kwidget_ConvolutionReverb.h:54
void addListener(Listener *listenerToAdd)
Definition Kwidget_ConvolutionReverb.cpp:38
void removeListener(Listener *listenerToRemove)
Definition Kwidget_ConvolutionReverb.cpp:40
static String getDefaultImpulsePath()
Definition Kwidget_ConvolutionReverb.cpp:51
void byPassChange(float newValue)
Definition Kwidget_ConvolutionReverb.cpp:46
std::unique_ptr< KwidgetGUI > createGUI() override
Definition Kwidget_ConvolutionReverb.cpp:33
std::vector< ParameterInfo > createParameters() override
Definition Kwidget_ConvolutionReverb.cpp:18
std::unique_ptr< KwidgetProcessor > createProcessor() override
Definition Kwidget_ConvolutionReverb.cpp:28
Definition Kwidget.h:8
void init()
Definition Kwidget.cpp:27
CustomParameter * createAndAddCustomParameter(const String &paramID, const var &value)
Definition Kwidget.cpp:419
void addParameterCallback(const String &paramID, std::function< void(float)> callback)
Definition Kwidget.cpp:458
String convertFilePathString(const String &inputPath)
Converts a file path passed as a raw string, to the current platform. Has no effect if the path is al...
Definition helpers.cpp:129
String StringsIntoPath(Args... args)
Joins multiple string arguments into a path string.
Definition helpers.h:25
Definition AirAbsorptionFilter.cpp:2
Kwidget_CoreEngine::Parameters Parameters
Definition KwidgetGUI_CoreEngine.cpp:42
static const Identifier id
Definition XmlType.h:41
static const Identifier value
Definition XmlType.h:42
static const Identifier customParams
Definition XmlType.h:20