23#include <juce_audio_processors/juce_audio_processors.h>
24#include <spdlog/spdlog.h>
48 using Params = juce::AudioProcessorValueTreeState::ParameterLayout;
59 void setState(
const juce::XmlElement& xml);
74 const auto*
const param = getRawParameterValue(
id.getParamID());
78 spdlog::critical(
"PluginStateBase: trying to access parameter '{}' which does not exist",
79 id.getParamID().toStdString());
85 if constexpr (std::is_same<T, bool>::value)
86 return juce::exactlyEqual(param->load(), 0.0f);
88 return static_cast<T
>(param->load());
Base class for storing plugin state.
Definition StateManager.h:39
juce::AudioProcessorValueTreeState::SliderAttachment SliderAttachment
Helper alias for juce::AudioProcessorValueTreeState::SliderAttachment.
Definition StateManager.h:42
auto getState() -> juce::XmlElement
Called by the PluginBase class to save the plugin state.
Definition StateManager.cpp:31
juce::AudioProcessorValueTreeState::ButtonAttachment ButtonAttachment
Helper alias for juce::AudioProcessorValueTreeState::SliderAttachment.
Definition StateManager.h:45
juce::AudioProcessorValueTreeState::ParameterLayout Params
Helper alias for juce::AudioProcessorValueTreeState::ParameterLayout.
Definition StateManager.h:48
auto getParameter(const juce::ParameterID &id) const -> T
Get a parameter by its ID string.
Definition StateManager.h:72
StateManager(juce::AudioProcessor &parent, Params &¶ms)
Construct a PluginStateBase object.
Definition StateManager.cpp:26
void setState(const juce::XmlElement &xml)
Called by the PluginBase class to restore the plugin state.
Definition StateManager.cpp:40
auto getReferenceToBaseClass() -> juce::AudioProcessorValueTreeState &
Can be used by GUI objects, e.g.
Definition StateManager.cpp:48