117 template <
typename ParameterOrGroup>
214 append (std::move (child));
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.")]]
242 void updateChildParentage();
247 String identifier, name, separator;
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.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...