Vital
Loading...
Searching...
No Matches
ModulationManager Class Reference

A top-level section for managing all modulation connections, amounts, and related UI components. More...

#include <modulation_manager.h>

Inheritance diagram for ModulationManager:
SynthSection ModulationButton::Listener ModulationAmountKnob::Listener SynthSlider::SliderListener ModulationExpansionBox::Listener SynthButton::ButtonListener

Public Member Functions

 ModulationManager (std::map< std::string, ModulationButton * > modulation_buttons, std::map< std::string, SynthSlider * > sliders, vital::output_map mono_modulations, vital::output_map poly_modulations)
 Constructs a ModulationManager.
 
 ~ModulationManager ()
 Destructor.
 
void createModulationMeter (const vital::Output *mono_total, const vital::Output *poly_total, SynthSlider *slider, OpenGlMultiQuad *quads, int index)
 Creates a modulation meter for a given slider and places it into an OpenGlMultiQuad for visualization.
 
void createModulationSlider (std::string name, SynthSlider *slider, bool poly)
 Creates internal structures for handling modulation of a given parameter (slider).
 
void connectModulation (std::string source, std::string destination)
 Connects a modulation source to a destination parameter.
 
void removeModulation (std::string source, std::string destination)
 Removes a modulation connection between a source and a destination.
 
void setModulationSliderValue (int index, float value)
 Sets the modulation value for a given modulation index.
 
void setModulationSliderBipolar (int index, bool bipolar)
 Sets the bipolar state for a given modulation index.
 
void setModulationSliderValues (int index, float value)
 Sets the modulation values and updates all connected auxiliary nodes.
 
void setModulationSliderScale (int index)
 Adjusts the displayed range of a modulation slider based on parameter scaling.
 
void setModulationValues (std::string source, std::string destination, vital::mono_float amount, bool bipolar, bool stereo, bool bypass)
 Sets multiple modulation properties at once.
 
void reset () override
 Resets the section and all sub-sections.
 
void initAuxConnections ()
 
void resized () override
 Called when the component is resized. Arranges layout of child components.
 
void parentHierarchyChanged () override
 
void updateModulationMeterLocations ()
 
void modulationAmountChanged (SynthSlider *slider) override
 
void modulationRemoved (SynthSlider *slider) override
 
void modulationDisconnected (vital::ModulationConnection *connection, bool last) override
 Called when a modulation connection is disconnected.
 
void modulationSelected (ModulationButton *source) override
 Called when this modulation button is selected.
 
void modulationClicked (ModulationButton *source) override
 Called when the modulation button is clicked (mouse up) without dragging out.
 
void modulationCleared () override
 Called when all modulations associated with this button have been cleared.
 
bool hasFreeConnection ()
 
void startModulationMap (ModulationButton *source, const MouseEvent &e) override
 Called when the user begins dragging out to map the modulation (dragging out of the button).
 
void modulationDragged (const MouseEvent &e) override
 Called while modulation is being dragged out (during mouse drag).
 
void modulationWheelMoved (const MouseEvent &e, const MouseWheelDetails &wheel) override
 Called when the mouse wheel moves while interacting with the modulation button.
 
void clearTemporaryModulation ()
 
void clearTemporaryHoverModulation ()
 
void modulationDraggedToHoverSlider (ModulationAmountKnob *hover_slider)
 
void modulationDraggedToComponent (Component *component, bool bipolar)
 
void setTemporaryModulationBipolar (Component *component, bool bipolar)
 
void endModulationMap () override
 Called when the user finishes dragging out modulation connections.
 
void modulationLostFocus (ModulationButton *source) override
 Called when the modulation button loses keyboard focus.
 
void expansionFocusLost () override
 Called when the expansion box loses focus.
 
void clearModulationSource ()
 
void disconnectModulation (ModulationAmountKnob *modulation_knob) override
 Called when the modulation is disconnected.
 
void setModulationSettings (ModulationAmountKnob *modulation_knob)
 
void setModulationBypass (ModulationAmountKnob *modulation_knob, bool bypass) override
 Called when modulation bypass state changes.
 
void setModulationBipolar (ModulationAmountKnob *modulation_knob, bool bipolar) override
 Called when modulation bipolar state changes.
 
void setModulationStereo (ModulationAmountKnob *modulation_knob, bool stereo) override
 Called when modulation stereo state changes.
 
void initOpenGlComponents (OpenGlWrapper &open_gl) override
 Initializes all OpenGL components in this section and sub-sections.
 
void drawModulationDestinations (OpenGlWrapper &open_gl)
 
void drawCurrentModulator (OpenGlWrapper &open_gl)
 
void drawDraggingModulation (OpenGlWrapper &open_gl)
 
void renderOpenGlComponents (OpenGlWrapper &open_gl, bool animate) override
 Renders all OpenGL components in this section and sub-sections.
 
void renderMeters (OpenGlWrapper &open_gl, bool animate)
 
void renderSourceMeters (OpenGlWrapper &open_gl, int index)
 
void updateSmoothModValues ()
 
void destroyOpenGlComponents (OpenGlWrapper &open_gl) override
 Destroys all OpenGL components in this section and sub-sections.
 
void paintBackground (Graphics &g) override
 Paints the background of the section. Calls paintContainer, heading, knobs, children.
 
void setModulationAmounts ()
 
void setVisibleMeterBounds ()
 
void hoverStarted (SynthSlider *slider) override
 
void hoverEnded (SynthSlider *slider) override
 
void menuFinished (SynthSlider *slider) override
 
void modulationsChanged (const std::string &name) override
 
int getIndexForModulationSlider (Slider *slider)
 
int getModulationIndex (std::string source, std::string destination)
 
vital::ModulationConnectiongetConnectionForModulationSlider (Slider *slider)
 
vital::ModulationConnectiongetConnection (int index)
 
vital::ModulationConnectiongetConnection (const std::string &source, const std::string &dest)
 
void mouseDown (SynthSlider *slider) override
 
void mouseUp (SynthSlider *slider) override
 
void doubleClick (SynthSlider *slider) override
 
void beginModulationEdit (SynthSlider *slider) override
 
void endModulationEdit (SynthSlider *slider) override
 
void sliderValueChanged (Slider *slider) override
 Called when a slider value changes. Updates the synth parameter accordingly.
 
void buttonClicked (Button *button) override
 Called when a button is clicked. Updates the synth parameter accordingly.
 
void hideUnusedHoverModulations ()
 
float getAuxMultiplier (int index)
 
void addAuxConnection (int from_index, int to_index)
 
void removeAuxDestinationConnection (int to_index)
 
void removeAuxSourceConnection (int from_index)
 
- Public Member Functions inherited from SynthSection
 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 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 paintBackgroundShadow (Graphics &g)
 Stub for painting background shadows. Overridden by subclasses if needed.
 
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 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.
 
virtual void setActive (bool active)
 Sets the active state of this section and sub-sections.
 
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 setAllValues (vital::control_map &controls)
 Sets values for all known parameters from a control map.
 
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
 
- Public Member Functions inherited from SynthButton::ButtonListener
virtual ~ButtonListener ()
 Virtual destructor.
 
- Public Member Functions inherited from ModulationButton::Listener
virtual ~Listener ()=default
 
virtual void modulationConnectionChanged ()
 Called when a modulation connection is changed (e.g., added or removed).
 
- Public Member Functions inherited from ModulationAmountKnob::Listener
virtual ~Listener ()
 
- Public Member Functions inherited from SynthSlider::SliderListener
virtual ~SliderListener ()
 
virtual void focusLost (SynthSlider *slider)
 
virtual void guiChanged (SynthSlider *slider)
 
- Public Member Functions inherited from ModulationExpansionBox::Listener
virtual ~Listener ()
 

Static Public Attributes

static constexpr int kIndicesPerMeter = 6
 
static constexpr float kDragImageWidthPercent = 0.018f
 
- Static Public Attributes inherited from SynthSection
static constexpr int kDefaultPowerButtonOffset = 0
 
static constexpr float kPowerButtonPaddingPercent = 0.29f
 
static constexpr float kTransposeHeightPercent = 0.5f
 
static constexpr float kTuneHeightPercent = 0.4f
 
static constexpr float kJointModulationRadiusPercent = 0.1f
 
static constexpr float kJointModulationExtensionPercent = 0.6666f
 
static constexpr float kPitchLabelPercent = 0.33f
 
static constexpr float kJointLabelHeightPercent = 0.4f
 
static constexpr double kTransposeMouseSensitivity = 0.2
 
static constexpr float kJointLabelBorderRatioX = 0.05f
 
static constexpr int kDefaultBodyRounding = 4
 
static constexpr int kDefaultLabelHeight = 10
 
static constexpr int kDefaultLabelBackgroundHeight = 16
 
static constexpr int kDefaultLabelBackgroundWidth = 56
 
static constexpr int kDefaultLabelBackgroundRounding = 4
 
static constexpr int kDefaultPadding = 2
 
static constexpr int kDefaultPopupMenuWidth = 150
 
static constexpr int kDefaultDualPopupMenuWidth = 340
 
static constexpr int kDefaultStandardKnobSize = 32
 
static constexpr int kDefaultKnobThickness = 2
 
static constexpr float kDefaultKnobModulationAmountThickness = 2.0f
 
static constexpr int kDefaultKnobModulationMeterSize = 43
 
static constexpr int kDefaultKnobModulationMeterThickness = 4
 
static constexpr int kDefaultModulationButtonWidth = 64
 
static constexpr int kDefaultModFontSize = 10
 
static constexpr int kDefaultKnobSectionHeight = 64
 
static constexpr int kDefaultSliderWidth = 24
 
static constexpr int kDefaultTextWidth = 80
 
static constexpr int kDefaultTextHeight = 24
 
static constexpr int kDefaultWidgetMargin = 6
 
static constexpr float kDefaultWidgetFillFade = 0.3f
 
static constexpr float kDefaultWidgetLineWidth = 4.0f
 
static constexpr float kDefaultWidgetFillCenter = 0.0f
 

Additional Inherited Members

- Protected Member Functions inherited from SynthSection
void setSliderHasHzAlternateDisplay (SynthSlider *slider)
 
void setSidewaysHeading (bool sideways)
 
void addToggleButton (ToggleButton *button, bool show)
 
void addButton (OpenGlToggleButton *button, bool show=true)
 
void addButton (OpenGlShapeButton *button, bool show=true)
 
void addSlider (SynthSlider *slider, bool show=true, bool listen=true)
 
void addOpenGlComponent (OpenGlComponent *open_gl_component, bool to_beginning=false)
 
void setActivator (SynthButton *activator)
 
void createOffOverlay ()
 
void setPresetSelector (PresetSelector *preset_selector, bool half=false)
 
void paintJointControlSliderBackground (Graphics &g, int x, int y, int width, int height)
 
void paintJointControlBackground (Graphics &g, int x, int y, int width, int height)
 
void paintJointControl (Graphics &g, int x, int y, int width, int height, const std::string &name)
 
void placeJointControls (int x, int y, int width, int height, SynthSlider *left, SynthSlider *right, Component *widget=nullptr)
 
void placeTempoControls (int x, int y, int width, int height, SynthSlider *tempo, SynthSlider *sync)
 
void placeRotaryOption (Component *option, SynthSlider *rotary)
 
void placeKnobsInArea (Rectangle< int > area, std::vector< Component * > knobs)
 
void lockCriticalSection ()
 
void unlockCriticalSection ()
 
Rectangle< int > getPresetBrowserBounds ()
 
int getTitleTextRight ()
 
Rectangle< int > getPowerButtonBounds ()
 
Rectangle< int > getTitleBounds ()
 
float getDisplayScale () const
 
virtual int getPixelMultiple () const
 
- Protected Attributes inherited from SynthSection
std::map< Skin::ValueId, float > value_lookup_
 
std::vector< SynthSection * > sub_sections_
 
std::vector< OpenGlComponent * > open_gl_components_
 
std::map< std::string, SynthSlider * > slider_lookup_
 
std::map< std::string, Button * > button_lookup_
 
std::map< std::string, ModulationButton * > modulation_buttons_
 
std::map< std::string, SynthSlider * > all_sliders_
 
std::map< std::string, ToggleButton * > all_buttons_
 
std::map< std::string, ModulationButton * > all_modulation_buttons_
 
const SynthSectionparent_
 
SynthButtonactivator_
 
PresetSelectorpreset_selector_
 
bool preset_selector_half_width_
 
std::unique_ptr< OffOverlayoff_overlay_
 
Skin::SectionOverride skin_override_
 
float size_ratio_
 
bool active_
 
bool sideways_heading_
 

Detailed Description

A top-level section for managing all modulation connections, amounts, and related UI components.

The ModulationManager handles:

  • All modulation connections (adding, removing, and modifying them).
  • Displaying modulation meters on sliders and knobs.
  • Showing and hiding ModulationAmountKnob controls for each modulation connection.
  • Handling dragging and dropping of modulations, including auxiliary (chained) modulations.
  • Managing popup and expansion boxes for complex modulation routings.

It integrates with the synthesizer model (via SynthGuiInterface) to reflect and change modulation states.

Constructor & Destructor Documentation

◆ ModulationManager()

ModulationManager::ModulationManager ( std::map< std::string, ModulationButton * > modulation_buttons,
std::map< std::string, SynthSlider * > sliders,
vital::output_map mono_modulations,
vital::output_map poly_modulations )

Constructs a ModulationManager.

Parameters
modulation_buttonsA map of parameter names to their ModulationButton.
slidersA map of parameter names to their associated SynthSlider.
mono_modulationsThe monophonic modulation output map.
poly_modulationsThe polyphonic modulation output map.

◆ ~ModulationManager()

ModulationManager::~ModulationManager ( )

Destructor.

Member Function Documentation

◆ addAuxConnection()

void ModulationManager::addAuxConnection ( int from_index,
int to_index )

◆ beginModulationEdit()

void ModulationManager::beginModulationEdit ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ buttonClicked()

void ModulationManager::buttonClicked ( Button * clicked_button)
overridevirtual

Called when a button is clicked. Updates the synth parameter accordingly.

Parameters
clicked_buttonThe button clicked.

Reimplemented from SynthSection.

◆ clearModulationSource()

void ModulationManager::clearModulationSource ( )

◆ clearTemporaryHoverModulation()

void ModulationManager::clearTemporaryHoverModulation ( )

◆ clearTemporaryModulation()

void ModulationManager::clearTemporaryModulation ( )

◆ connectModulation()

void ModulationManager::connectModulation ( std::string source,
std::string destination )

Connects a modulation source to a destination parameter.

Parameters
sourceThe modulation source name.
destinationThe parameter name of the destination.

◆ createModulationMeter()

void ModulationManager::createModulationMeter ( const vital::Output * mono_total,
const vital::Output * poly_total,
SynthSlider * slider,
OpenGlMultiQuad * quads,
int index )

Creates a modulation meter for a given slider and places it into an OpenGlMultiQuad for visualization.

Parameters
mono_totalThe monophonic modulation output for this parameter.
poly_totalThe polyphonic modulation output for this parameter (or nullptr if none).
sliderThe associated SynthSlider.
quadsThe OpenGlMultiQuad to draw the meter in.
indexThe index of this meter in the quad.

◆ createModulationSlider()

void ModulationManager::createModulationSlider ( std::string name,
SynthSlider * slider,
bool poly )

Creates internal structures for handling modulation of a given parameter (slider).

Parameters
nameThe parameter name.
sliderThe slider controlling that parameter.
polyTrue if this parameter supports polyphonic modulations.

◆ destroyOpenGlComponents()

void ModulationManager::destroyOpenGlComponents ( OpenGlWrapper & open_gl)
overridevirtual

Destroys all OpenGL components in this section and sub-sections.

Parameters
open_glThe OpenGlWrapper context.

Reimplemented from SynthSection.

◆ disconnectModulation()

void ModulationManager::disconnectModulation ( ModulationAmountKnob * modulation_knob)
overridevirtual

Called when the modulation is disconnected.

Parameters
modulation_knobThe knob that triggered the event.

Implements ModulationAmountKnob::Listener.

◆ doubleClick()

void ModulationManager::doubleClick ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ drawCurrentModulator()

void ModulationManager::drawCurrentModulator ( OpenGlWrapper & open_gl)

◆ drawDraggingModulation()

void ModulationManager::drawDraggingModulation ( OpenGlWrapper & open_gl)

◆ drawModulationDestinations()

void ModulationManager::drawModulationDestinations ( OpenGlWrapper & open_gl)

◆ endModulationEdit()

void ModulationManager::endModulationEdit ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ endModulationMap()

void ModulationManager::endModulationMap ( )
overridevirtual

Called when the user finishes dragging out modulation connections.

Reimplemented from ModulationButton::Listener.

◆ expansionFocusLost()

void ModulationManager::expansionFocusLost ( )
inlineoverridevirtual

Called when the expansion box loses focus.

Implements ModulationExpansionBox::Listener.

◆ getAuxMultiplier()

float ModulationManager::getAuxMultiplier ( int index)

◆ getConnection() [1/2]

vital::ModulationConnection * ModulationManager::getConnection ( const std::string & source,
const std::string & dest )

◆ getConnection() [2/2]

vital::ModulationConnection * ModulationManager::getConnection ( int index)

◆ getConnectionForModulationSlider()

vital::ModulationConnection * ModulationManager::getConnectionForModulationSlider ( Slider * slider)

◆ getIndexForModulationSlider()

int ModulationManager::getIndexForModulationSlider ( Slider * slider)

◆ getModulationIndex()

int ModulationManager::getModulationIndex ( std::string source,
std::string destination )

◆ hasFreeConnection()

bool ModulationManager::hasFreeConnection ( )

◆ hideUnusedHoverModulations()

void ModulationManager::hideUnusedHoverModulations ( )

◆ hoverEnded()

void ModulationManager::hoverEnded ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ hoverStarted()

void ModulationManager::hoverStarted ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ initAuxConnections()

void ModulationManager::initAuxConnections ( )

◆ initOpenGlComponents()

void ModulationManager::initOpenGlComponents ( OpenGlWrapper & open_gl)
overridevirtual

Initializes all OpenGL components in this section and sub-sections.

Parameters
open_glThe OpenGlWrapper context.

Reimplemented from SynthSection.

◆ menuFinished()

void ModulationManager::menuFinished ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ modulationAmountChanged()

void ModulationManager::modulationAmountChanged ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ modulationCleared()

void ModulationManager::modulationCleared ( )
overridevirtual

Called when all modulations associated with this button have been cleared.

Reimplemented from ModulationButton::Listener.

◆ modulationClicked()

void ModulationManager::modulationClicked ( ModulationButton * source)
overridevirtual

Called when the modulation button is clicked (mouse up) without dragging out.

Parameters
sourceThe modulation button that was clicked.

Reimplemented from ModulationButton::Listener.

◆ modulationDisconnected()

void ModulationManager::modulationDisconnected ( vital::ModulationConnection * connection,
bool last )
overridevirtual

Called when a modulation connection is disconnected.

Parameters
connectionThe disconnected modulation connection.
lastTrue if this was the last modulation connection for that destination.

Reimplemented from ModulationButton::Listener.

◆ modulationDragged()

void ModulationManager::modulationDragged ( const MouseEvent & e)
overridevirtual

Called while modulation is being dragged out (during mouse drag).

Parameters
eThe mouse event during the drag.

Reimplemented from ModulationButton::Listener.

◆ modulationDraggedToComponent()

void ModulationManager::modulationDraggedToComponent ( Component * component,
bool bipolar )

◆ modulationDraggedToHoverSlider()

void ModulationManager::modulationDraggedToHoverSlider ( ModulationAmountKnob * hover_slider)

◆ modulationLostFocus()

void ModulationManager::modulationLostFocus ( ModulationButton * source)
overridevirtual

Called when the modulation button loses keyboard focus.

Parameters
sourceThe modulation button that lost focus.

Reimplemented from ModulationButton::Listener.

◆ modulationRemoved()

void ModulationManager::modulationRemoved ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ modulationsChanged()

void ModulationManager::modulationsChanged ( const std::string & name)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ modulationSelected()

void ModulationManager::modulationSelected ( ModulationButton * source)
overridevirtual

Called when this modulation button is selected.

Parameters
sourceThe modulation button that was selected.

Reimplemented from ModulationButton::Listener.

◆ modulationWheelMoved()

void ModulationManager::modulationWheelMoved ( const MouseEvent & e,
const MouseWheelDetails & wheel )
overridevirtual

Called when the mouse wheel moves while interacting with the modulation button.

Parameters
eThe mouse event.
wheelWheel details such as delta.

Reimplemented from ModulationButton::Listener.

◆ mouseDown()

void ModulationManager::mouseDown ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ mouseUp()

void ModulationManager::mouseUp ( SynthSlider * slider)
overridevirtual

Reimplemented from SynthSlider::SliderListener.

◆ paintBackground()

void ModulationManager::paintBackground ( Graphics & g)
inlineoverridevirtual

Paints the background of the section. Calls paintContainer, heading, knobs, children.

Parameters
gThe Graphics context.

Reimplemented from SynthSection.

◆ parentHierarchyChanged()

void ModulationManager::parentHierarchyChanged ( )
override

◆ removeAuxDestinationConnection()

void ModulationManager::removeAuxDestinationConnection ( int to_index)

◆ removeAuxSourceConnection()

void ModulationManager::removeAuxSourceConnection ( int from_index)

◆ removeModulation()

void ModulationManager::removeModulation ( std::string source,
std::string destination )

Removes a modulation connection between a source and a destination.

Parameters
sourceThe modulation source name.
destinationThe parameter name of the destination.

◆ renderMeters()

void ModulationManager::renderMeters ( OpenGlWrapper & open_gl,
bool animate )

◆ renderOpenGlComponents()

void ModulationManager::renderOpenGlComponents ( OpenGlWrapper & open_gl,
bool animate )
overridevirtual

Renders all OpenGL components in this section and sub-sections.

Parameters
open_glThe OpenGlWrapper context.
animateTrue if animation is desired.

Reimplemented from SynthSection.

◆ renderSourceMeters()

void ModulationManager::renderSourceMeters ( OpenGlWrapper & open_gl,
int index )

◆ reset()

void ModulationManager::reset ( )
overridevirtual

Resets the section and all sub-sections.

Reimplemented from SynthSection.

◆ resized()

void ModulationManager::resized ( )
overridevirtual

Called when the component is resized. Arranges layout of child components.

Reimplemented from SynthSection.

◆ setModulationAmounts()

void ModulationManager::setModulationAmounts ( )

◆ setModulationBipolar()

void ModulationManager::setModulationBipolar ( ModulationAmountKnob * modulation_knob,
bool bipolar )
overridevirtual

Called when modulation bipolar state changes.

Parameters
modulation_knobThe knob that triggered the event.
bipolarTrue if bipolar, false otherwise.

Implements ModulationAmountKnob::Listener.

◆ setModulationBypass()

void ModulationManager::setModulationBypass ( ModulationAmountKnob * modulation_knob,
bool bypass )
overridevirtual

Called when modulation bypass state changes.

Parameters
modulation_knobThe knob that triggered the event.
bypassTrue if bypassed, false otherwise.

Implements ModulationAmountKnob::Listener.

◆ setModulationSettings()

void ModulationManager::setModulationSettings ( ModulationAmountKnob * modulation_knob)

◆ setModulationSliderBipolar()

void ModulationManager::setModulationSliderBipolar ( int index,
bool bipolar )

Sets the bipolar state for a given modulation index.

Parameters
indexThe modulation connection index.
bipolarTrue if bipolar, false otherwise.

◆ setModulationSliderScale()

void ModulationManager::setModulationSliderScale ( int index)

Adjusts the displayed range of a modulation slider based on parameter scaling.

Parameters
indexThe modulation connection index.

◆ setModulationSliderValue()

void ModulationManager::setModulationSliderValue ( int index,
float value )

Sets the modulation value for a given modulation index.

Parameters
indexThe modulation connection index.
valueThe new modulation amount.

◆ setModulationSliderValues()

void ModulationManager::setModulationSliderValues ( int index,
float value )

Sets the modulation values and updates all connected auxiliary nodes.

Parameters
indexThe modulation connection index.
valueThe new modulation amount.

◆ setModulationStereo()

void ModulationManager::setModulationStereo ( ModulationAmountKnob * modulation_knob,
bool stereo )
overridevirtual

Called when modulation stereo state changes.

Parameters
modulation_knobThe knob that triggered the event.
stereoTrue if stereo, false otherwise.

Implements ModulationAmountKnob::Listener.

◆ setModulationValues()

void ModulationManager::setModulationValues ( std::string source,
std::string destination,
vital::mono_float amount,
bool bipolar,
bool stereo,
bool bypass )

Sets multiple modulation properties at once.

Parameters
sourceThe modulation source name.
destinationThe destination parameter name.
amountThe modulation amount.
bipolarWhether modulation is bipolar.
stereoWhether modulation is stereo.
bypassWhether modulation is bypassed.

◆ setTemporaryModulationBipolar()

void ModulationManager::setTemporaryModulationBipolar ( Component * component,
bool bipolar )

◆ setVisibleMeterBounds()

void ModulationManager::setVisibleMeterBounds ( )

◆ sliderValueChanged()

void ModulationManager::sliderValueChanged ( Slider * moved_slider)
overridevirtual

Called when a slider value changes. Updates the synth parameter accordingly.

Parameters
moved_sliderThe slider that changed.

Reimplemented from SynthSection.

◆ startModulationMap()

void ModulationManager::startModulationMap ( ModulationButton * source,
const MouseEvent & e )
overridevirtual

Called when the user begins dragging out to map the modulation (dragging out of the button).

Parameters
sourceThe modulation button source.
eThe mouse event triggering this action.

Reimplemented from ModulationButton::Listener.

◆ updateModulationMeterLocations()

void ModulationManager::updateModulationMeterLocations ( )

◆ updateSmoothModValues()

void ModulationManager::updateSmoothModValues ( )

Member Data Documentation

◆ kDragImageWidthPercent

float ModulationManager::kDragImageWidthPercent = 0.018f
staticconstexpr

◆ kIndicesPerMeter

int ModulationManager::kIndicesPerMeter = 6
staticconstexpr

The documentation for this class was generated from the following files: