117 template <
typename ParameterOrGroup>
137 template <
typename ParameterOrGroup,
typename... Args>
208 template <typename ParameterOrGroup>
214 append (std::move (child));
222 template <
typename ParameterOrGroup,
typename... Args>
230 [[deprecated (
"This class now has a move operator, so if you're trying to move them around, you "
231 "should use that, or if you really need to swap two groups, just call std::swap. "
232 "However, remember that swapping a group that's already owned by an AudioProcessor "
233 "will most likely crash the host, so don't do that.")]]
239 void getSubgroups (Array<const AudioProcessorParameterGroup*>&,
bool recursive)
const;
240 void getParameters (Array<AudioProcessorParameter*>&,
bool recursive)
const;
242 void updateChildParentage();
247 String identifier, name, separator;
248 OwnedArray<AudioProcessorParameterNode> children;
Holds a resizable array of primitive or copy-by-value objects.
A child of an AudioProcessorParameterGroup.
AudioProcessorParameterGroup * getGroup() const
Returns a pointer to a group if this node contains a group, nullptr otherwise.
AudioProcessorParameter * getParameter() const
Returns a pointer to a parameter if this node contains a parameter, nullptr otherwise.
AudioProcessorParameterGroup * getParent() const
Returns the parent group or nullptr if this is a top-level group.
A class encapsulating a group of AudioProcessorParameters and nested AudioProcessorParameterGroups.
AudioProcessorParameterGroup(String groupID, String groupName, String subgroupSeparator, std::unique_ptr< ParameterOrGroup > firstChild, Args &&... remainingChildren)
Creates an AudioProcessorParameterGroup with multiple children.
AudioProcessorParameterGroup(String groupID, String groupName, String subgroupSeparator, std::unique_ptr< ParameterOrGroup > child)
Creates an AudioProcessorParameterGroup with a single child.
String getSeparator() const
Returns the group's separator string.
void setName(String newName)
Changes the name of the group.
String getName() const
Returns the group's name.
void addChild(std::unique_ptr< ParameterOrGroup > child)
Adds a child to the group.
Array< const AudioProcessorParameterGroup * > getGroupsForParameter(AudioProcessorParameter *) const
Searches this group recursively for a parameter and returns a depth ordered list of the groups it bel...
Array< AudioProcessorParameter * > getParameters(bool recursive) const
Returns all the parameters in this group.
const AudioProcessorParameterGroup * getParent() const noexcept
Returns the parent of the group, or nullptr if this is a top-level group.
void addChild(std::unique_ptr< ParameterOrGroup > firstChild, Args &&... remainingChildren)
Adds multiple parameters or sub-groups to this group.
~AudioProcessorParameterGroup()
Destructor.
Array< const AudioProcessorParameterGroup * > getSubgroups(bool recursive) const
Returns all subgroups of this group.
AudioProcessorParameterGroup & operator=(AudioProcessorParameterGroup &&)
Once a group has been added to an AudioProcessor don't try to mutate it by moving or swapping it - th...
String getID() const
Returns the group's ID.
AudioProcessorParameterGroup()
Creates an empty AudioProcessorParameterGroup with no name or ID.
An abstract base class for parameter objects that can be added to an AudioProcessor.