A graphical user interface component representing a filter section in the synthesizer.
More...
|
| FilterSection (String suffix, const vital::output_map &mono_modulations) |
| Constructs a FilterSection with a given suffix for parameter naming, using only mono modulations.
|
|
| FilterSection (int index, const vital::output_map &mono_modulations, const vital::output_map &poly_modulations) |
| Constructs a FilterSection for a given index, using both mono and poly modulations.
|
|
| ~FilterSection () |
| Destructor.
|
|
void | setFilterResponseSliders () |
| Connects the filter's sliders to the filter response display.
|
|
void | paintBackground (Graphics &g) override |
| Paints the background of the filter section.
|
|
void | paintBackgroundShadow (Graphics &g) override |
| Paints a background shadow for the filter section, if active.
|
|
void | positionTopBottom () |
| Positions UI elements in a top-bottom orientation.
|
|
void | positionLeftRight () |
| Positions UI elements in a left-right orientation.
|
|
void | resized () override |
| Called when the component is resized.
|
|
void | buttonClicked (Button *clicked_button) override |
| Called when a button is clicked.
|
|
void | setAllValues (vital::control_map &controls) override |
| Sets all parameter values for this filter section.
|
|
void | prevClicked () override |
| Called when the previous button on the preset selector is clicked.
|
|
void | nextClicked () override |
| Called when the next button on the preset selector is clicked.
|
|
void | textMouseDown (const MouseEvent &e) override |
| Called when the user interacts with the text component of the preset selector.
|
|
Path | getLeftMorphPath () |
| Returns a path that represents the left morph shape icon based on the current model/style.
|
|
Path | getRightMorphPath () |
| Returns a path that represents the right morph shape icon based on the current model/style.
|
|
void | setActive (bool active) override |
| Sets the active state of this filter section.
|
|
void | addListener (Listener *listener) |
| Adds a listener to be notified of filter section events.
|
|
void | setFilterSelected (int menu_id) |
| Sets the filter model and style based on a given menu ID.
|
|
void | clearFilterInput () |
| Clears the internal filter input toggle state.
|
|
void | setOscillatorInput (int oscillator_index, bool input) |
| Sets the oscillator input state for a given oscillator index.
|
|
void | setSampleInput (bool input) |
| Sets the sample input state.
|
|
| SynthSection (const String &name) |
| Constructs a SynthSection with a given name.
|
|
virtual | ~SynthSection ()=default |
|
void | setParent (const SynthSection *parent) |
| Sets the parent SynthSection.
|
|
float | findValue (Skin::ValueId value_id) const |
| Finds a value in the skin overrides or from the parent if not found locally.
|
|
virtual void | reset () |
| Resets the section and all sub-sections.
|
|
virtual void | paint (Graphics &g) override |
| Called when the component should paint itself.
|
|
virtual void | paintSidewaysHeadingText (Graphics &g) |
| Paints the section name heading text vertically if sideways_heading_ is true.
|
|
virtual void | paintHeadingText (Graphics &g) |
| Paints the heading text for this section, either sideways or horizontally.
|
|
virtual void | setSkinValues (const Skin &skin, bool top_level) |
| Sets skin values (colors, sizes) and applies them to sub-sections.
|
|
void | setSkinOverride (Skin::SectionOverride skin_override) |
|
virtual void | repaintBackground () |
| Requests a repaint of the background.
|
|
void | showPopupBrowser (SynthSection *owner, Rectangle< int > bounds, std::vector< File > directories, String extensions, std::string passthrough_name, std::string additional_folders_name) |
| Shows a file browser popup (e.g., for loading samples or wavetables).
|
|
void | updatePopupBrowser (SynthSection *owner) |
| Updates the currently visible popup browser if any.
|
|
void | showPopupSelector (Component *source, Point< int > position, const PopupItems &options, std::function< void(int)> callback, std::function< void()> cancel={ }) |
| Shows a popup selector with options.
|
|
void | showDualPopupSelector (Component *source, Point< int > position, int width, const PopupItems &options, std::function< void(int)> callback) |
| Shows a dual popup selector for hierarchical selection.
|
|
void | showPopupDisplay (Component *source, const std::string &text, BubbleComponent::BubblePlacement placement, bool primary) |
| Shows a brief popup display (like a tooltip).
|
|
void | hidePopupDisplay (bool primary) |
| Hides the currently shown popup display.
|
|
virtual void | loadFile (const File &file) |
| Loads a file (e.g., a sample or wavetable). Overridden by subclasses.
|
|
virtual File | getCurrentFile () |
| Gets the currently loaded file. Overridden by subclasses.
|
|
virtual std::string | getFileName () |
| Gets the name of the currently loaded file. Overridden by subclasses.
|
|
virtual std::string | getFileAuthor () |
| Gets the author metadata of the currently loaded file. Overridden by subclasses.
|
|
virtual void | paintContainer (Graphics &g) |
| Paints the container background, body, heading, etc.
|
|
virtual void | paintBody (Graphics &g, Rectangle< int > bounds) |
| Paints the body background within given bounds.
|
|
virtual void | paintBorder (Graphics &g, Rectangle< int > bounds) |
| Paints the border around given bounds.
|
|
virtual void | paintBody (Graphics &g) |
| Paints the section body background using the entire component area.
|
|
virtual void | paintBorder (Graphics &g) |
| Paints the border around the entire component.
|
|
int | getComponentShadowWidth () |
| Gets the width of shadow around components.
|
|
virtual void | paintTabShadow (Graphics &g) |
| Paints a tab-like shadow effect around the component.
|
|
void | paintTabShadow (Graphics &g, Rectangle< int > bounds) |
| Paints a tab shadow effect within specified bounds.
|
|
virtual void | setSizeRatio (float ratio) |
| Sets the size ratio for scaling UI elements.
|
|
void | paintKnobShadows (Graphics &g) |
| Paints knob shadows for all sliders.
|
|
Font | getLabelFont () |
| Gets a suitable font for label text.
|
|
void | setLabelFont (Graphics &g) |
| Sets the Graphics context font and color for labels.
|
|
void | drawLabelConnectionForComponents (Graphics &g, Component *left, Component *right) |
| Draws a rectangular connection between labels of two components.
|
|
void | drawLabelBackground (Graphics &g, Rectangle< int > bounds, bool text_component=false) |
| Draws a background for a label area.
|
|
void | drawLabelBackgroundForComponent (Graphics &g, Component *component) |
| Draws label background for a specific component.
|
|
Rectangle< int > | getDividedAreaBuffered (Rectangle< int > full_area, int num_sections, int section, int buffer) |
| Divides an area into equal sections with buffering, returns the specified section.
|
|
Rectangle< int > | getDividedAreaUnbuffered (Rectangle< int > full_area, int num_sections, int section, int buffer) |
| Divides an area into equal sections without extra buffering, returns the specified section.
|
|
Rectangle< int > | getLabelBackgroundBounds (Rectangle< int > bounds, bool text_component=false) |
| Gets the background bounds for a label.
|
|
Rectangle< int > | getLabelBackgroundBounds (Component *component, bool text_component=false) |
| Gets the label background bounds for a component.
|
|
void | drawLabel (Graphics &g, String text, Rectangle< int > component_bounds, bool text_component=false) |
| Draws a label text below a component.
|
|
void | drawLabelForComponent (Graphics &g, String text, Component *component, bool text_component=false) |
| Draws a label for a given component.
|
|
void | drawTextBelowComponent (Graphics &g, String text, Component *component, int space, int padding=0) |
| Draws text below a component with optional padding.
|
|
virtual void | paintChildrenShadows (Graphics &g) |
| Paints shadows for child sections.
|
|
void | paintChildrenBackgrounds (Graphics &g) |
| Paints the backgrounds for all child sections.
|
|
void | paintOpenGlChildrenBackgrounds (Graphics &g) |
| Paints the backgrounds for all OpenGL child components.
|
|
void | paintChildBackground (Graphics &g, SynthSection *child) |
| Paints a child's background specifically.
|
|
void | paintChildShadow (Graphics &g, SynthSection *child) |
| Paints a child's shadow specifically.
|
|
void | paintOpenGlBackground (Graphics &g, OpenGlComponent *child) |
| Paints the background of an OpenGlComponent child.
|
|
void | drawTextComponentBackground (Graphics &g, Rectangle< int > bounds, bool extend_to_label) |
| Draws a background for a text component area.
|
|
void | drawTempoDivider (Graphics &g, Component *sync) |
| Draws a divider line for tempo-related controls.
|
|
virtual void | initOpenGlComponents (OpenGlWrapper &open_gl) |
| Initializes all OpenGL components in this section and sub-sections.
|
|
virtual void | renderOpenGlComponents (OpenGlWrapper &open_gl, bool animate) |
| Renders all OpenGL components in this section and sub-sections.
|
|
virtual void | destroyOpenGlComponents (OpenGlWrapper &open_gl) |
| Destroys all OpenGL components in this section and sub-sections.
|
|
virtual void | sliderValueChanged (Slider *moved_slider) override |
| Called when a slider value changes. Updates the synth parameter accordingly.
|
|
virtual void | guiChanged (SynthButton *button) override |
| Called when a SynthButton state changes (GUI interaction).
|
|
std::map< std::string, SynthSlider * > | getAllSliders () |
| Gets all sliders registered in this section.
|
|
std::map< std::string, ToggleButton * > | getAllButtons () |
| Gets all toggle buttons registered in this section.
|
|
std::map< std::string, ModulationButton * > | getAllModulationButtons () |
| Gets all modulation buttons registered in this section.
|
|
bool | isActive () const |
| Checks if the section is currently active.
|
|
virtual void | animate (bool animate) |
| Triggers animation state change in sub-sections if needed.
|
|
virtual void | setValue (const std::string &name, vital::mono_float value, NotificationType notification) |
| Sets a single parameter value for a known control.
|
|
void | addModulationButton (ModulationButton *button, bool show=true) |
| Adds a modulation button to this section.
|
|
void | addSubSection (SynthSection *section, bool show=true) |
| Adds a subsection (another SynthSection) as a child.
|
|
void | removeSubSection (SynthSection *section) |
| Removes a previously added subsection.
|
|
virtual void | setScrollWheelEnabled (bool enabled) |
| Enables or disables scroll wheel support for this section and sub-sections.
|
|
ToggleButton * | activator () const |
| Gets the activator toggle button if any.
|
|
void | setSkinValues (std::map< Skin::ValueId, float > values) |
| Sets custom skin values for this section.
|
|
void | setSkinValue (Skin::ValueId id, float value) |
| Sets a single skin value override.
|
|
float | getTitleWidth () |
|
float | getPadding () |
|
float | getPowerButtonOffset () const |
|
float | getKnobSectionHeight () |
|
float | getSliderWidth () |
|
float | getSliderOverlap () |
|
float | getSliderOverlapWithSpace () |
|
float | getTextComponentHeight () |
|
float | getStandardKnobSize () |
|
float | getTotalKnobHeight () |
|
float | getTextSectionYOffset () |
|
float | getModButtonWidth () |
|
float | getModFontSize () |
|
float | getWidgetMargin () |
|
float | getWidgetRounding () |
|
float | getSizeRatio () const |
|
int | getPopupWidth () const |
|
int | getDualPopupWidth () const |
|
virtual | ~ButtonListener () |
| Virtual destructor.
|
|
virtual | ~Listener () |
| Virtual destructor for proper cleanup.
|
|
virtual void | textMouseUp (const MouseEvent &e) |
|
A graphical user interface component representing a filter section in the synthesizer.
The FilterSection displays and manages a variety of filter parameters, including filter models, styles, cutoff, resonance, and other filter-related controls. It can show different filter types (analog, ladder, digital, formant, comb, etc.) and dynamically adapts its UI to the selected filter model and style.
This class also manages input routing controls (oscillator inputs, sample input, serial filtering input) when necessary, and integrates with the preset selector for choosing different filter models and styles.