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

The main GUI container for the entire synthesizer interface. More...

#include <full_interface.h>

Inheritance diagram for FullInterface:
ModulationMatrix::Listener EffectsInterface::Listener UpdateCheckSection::Listener DownloadSection::Listener HeaderSection::Listener AuthenticationSection::Listener SynthSection

Public Member Functions

 FullInterface (SynthGuiData *synth_gui_data)
 Constructs the full interface with the given synth GUI data.
 
 FullInterface ()
 Constructs a minimal, empty full interface.
 
virtual ~FullInterface ()
 Destructor.
 
void setOscilloscopeMemory (const vital::poly_float *memory)
 Assigns memory for oscilloscope visualization.
 
void setAudioMemory (const vital::StereoMemory *memory)
 Assigns stereo audio memory for visualization.
 
void createModulationSliders (const vital::output_map &mono_modulations, const vital::output_map &poly_modulations)
 Creates modulation sliders for both mono and poly modulations.
 
virtual void paintBackground (Graphics &g) override
 Paints the background of the entire interface.
 
void copySkinValues (const Skin &skin)
 Copies skin values from a Skin instance into the interface and look-and-feel.
 
void reloadSkin (const Skin &skin)
 Reloads and applies a new skin, then adjusts layout accordingly.
 
void repaintChildBackground (SynthSection *child)
 Repaints the background of a child section.
 
void repaintSynthesisSection ()
 Repaints only the synthesis (oscillator/filter) section background.
 
void repaintOpenGlBackground (OpenGlComponent *component)
 Repaints the background that shows behind OpenGL components.
 
void redoBackground ()
 Redraws the entire background image for the interface.
 
void checkShouldReposition (bool resize=true)
 Checks if the interface should be repositioned or resized based on scaling or display changes.
 
void parentHierarchyChanged () override
 Called when this component is added to a new parent.
 
virtual void resized () override
 Adjusts layout and sizes of child components after the interface is resized.
 
void animate (bool animate) override
 Enables or disables animations (like continuous OpenGL repainting).
 
void reset () override
 Resets the entire interface to a default state.
 
void setAllValues (vital::control_map &controls) override
 Sets all parameter values on the interface.
 
void dataDirectoryChanged () override
 Called when the data directory changes.
 
void noDownloadNeeded () override
 Indicates that no download is needed after checking updates.
 
void needsUpdate () override
 Indicates that a software update is available and needs action.
 
void loggedIn () override
 Called when the user has successfully logged in.
 
void setWavetableNames ()
 Updates displayed wavetable names from the current wavetable data.
 
void startDownload ()
 Starts a download of additional content if needed.
 
void newOpenGLContextCreated () override
 Called when a new OpenGL context is created.
 
void renderOpenGL () override
 Renders the GUI using OpenGL.
 
void openGLContextClosing () override
 Called when the OpenGL context is closing, allowing cleanup of resources.
 
void showAboutSection () override
 Shows the "About" section overlay.
 
void deleteRequested (File preset) override
 Handles a request to delete a preset file.
 
void tabSelected (int index) override
 Handles user selecting a main tab (e.g., Synthesis, Effects, etc.)
 
void clearTemporaryTab (int current_tab) override
 Clears temporary overlay tabs such as the preset browser.
 
void setPresetBrowserVisibility (bool visible, int current_tab) override
 Toggles the visibility of the preset browser.
 
void setBankExporterVisibility (bool visible, int current_tab) override
 Toggles the visibility of the bank exporter.
 
void bankImported () override
 Called when a new bank of presets has been imported, to refresh lists.
 
void effectsMoved () override
 Called when the effects interface is moved, to update meter positions.
 
void modulationsScrolled () override
 Called when modulations are scrolled, to update meter positions.
 
void setFocus ()
 Sets keyboard focus to a relevant component (e.g., authentication).
 
void notifyChange ()
 Notifies that a parameter or state has changed.
 
void notifyFresh ()
 Notifies that the interface is in a fresh state (no unsaved changes).
 
void externalPresetLoaded (const File &preset)
 Handles loading an external preset file into the interface.
 
void showFullScreenSection (SynthSection *full_screen)
 Displays a full-screen section overlay, hiding other sections.
 
void showWavetableEditSection (int index)
 Shows the wavetable edit section for a given oscillator index.
 
std::string getLastBrowsedWavetable (int index)
 Gets the last browsed wavetable file path for a given oscillator.
 
std::string getWavetableName (int index)
 Gets the current wavetable name for a given oscillator.
 
std::string getSignedInName ()
 Gets the name of the currently signed-in user, if any.
 
void signOut ()
 Signs out the current user, if signed in.
 
void signIn ()
 Opens the sign-in interface, if available.
 
void hideWavetableEditSection ()
 Hides any open wavetable editing section, returning to the normal view.
 
void loadWavetableFile (int index, const File &wavetable)
 Loads a wavetable from a file into the given oscillator editor.
 
void loadWavetable (int index, json &wavetable_data)
 Loads a wavetable from a JSON object into the given oscillator editor.
 
void loadDefaultWavetable (int index)
 Loads a default wavetable into the given oscillator editor.
 
void resynthesizeToWavetable (int index)
 Performs resynthesis of the current wavetable for the given oscillator.
 
void saveWavetable (int index)
 Opens a save dialog to save the current wavetable of an oscillator.
 
void saveLfo (const json &data)
 Opens a save dialog to save a given LFO shape.
 
json getWavetableJson (int index)
 Retrieves the JSON data representing the current wavetable for an oscillator.
 
bool loadAudioAsWavetable (int index, const String &name, InputStream *audio_stream, WavetableCreator::AudioFileLoadStyle style)
 Loads an audio file as a wavetable into the given oscillator editor.
 
void popupBrowser (SynthSection *owner, Rectangle< int > bounds, std::vector< File > directories, String extensions, std::string passthrough_name, std::string additional_folders_name)
 Opens a popup browser for file browsing.
 
void popupBrowserUpdate (SynthSection *owner)
 Updates the popup browser's ownership, useful if the owner changed.
 
void popupSelector (Component *source, Point< int > position, const PopupItems &options, std::function< void(int)> callback, std::function< void()> cancel)
 Opens a popup selector for choosing from a list of items.
 
void dualPopupSelector (Component *source, Point< int > position, int width, const PopupItems &options, std::function< void(int)> callback)
 Opens a dual popup selector for choosing from a hierarchical list of items.
 
void popupDisplay (Component *source, const std::string &text, BubbleComponent::BubblePlacement placement, bool primary)
 Shows a popup display (a tooltip-like bubble) with provided text.
 
void hideDisplay (bool primary)
 Hides a previously shown popup display.
 
void modulationChanged ()
 Called when modulations have changed, updating the modulation matrix and related components.
 
void modulationValueChanged (int index)
 Called when a particular modulation value changes.
 
void openSaveDialog ()
 
void enableRedoBackground (bool enable)
 Enables or disables redrawing of the background when resized.
 
float getResizingScale () const
 Returns the scale factor for resizing operations.
 
float getPixelScaling () const override
 Returns the current pixel scaling factor based on display scale.
 
int getPixelMultiple () const override
 Returns the pixel multiple used for scaling pixel-perfect rendering.
 
void toggleOscillatorZoom (int index)
 
void toggleFilter1Zoom ()
 
void toggleFilter2Zoom ()
 
- 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 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 buttonClicked (Button *clicked_button) override
 Called when a button is clicked. 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.
 
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 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 AuthenticationSection::Listener
virtual ~Listener ()=default
 
- Public Member Functions inherited from HeaderSection::Listener
virtual ~Listener ()
 
- Public Member Functions inherited from DownloadSection::Listener
virtual ~Listener ()=default
 
- Public Member Functions inherited from UpdateCheckSection::Listener
virtual ~Listener ()
 
- Public Member Functions inherited from EffectsInterface::Listener
virtual ~Listener ()
 
- Public Member Functions inherited from ModulationMatrix::Listener
virtual ~Listener ()=default
 

Static Public Attributes

static constexpr double kMinOpenGlVersion = 1.4
 Minimum required OpenGL version for the interface to function properly.
 
- 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
 
- 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

The main GUI container for the entire synthesizer interface.

This class encapsulates all sections of the synthesizer's graphical user interface (GUI). It handles layout, OpenGL rendering, event coordination between different GUI sections, and interaction with backend data and states.

The FullInterface organizes and manages child components such as the header, synthesis view, effects, modulation matrix, master controls, keyboard interface, and various popup and overlay sections. It also responds to authentication events, update checks, preset browsing, and rendering updates.

As the main container, FullInterface provides methods to:

  • Attach and manage multiple subsections (e.g., effects, modulation, wavetable editing).
  • Handle resizing and scaling of the interface.
  • Interact with OpenGL for advanced rendering and real-time animations.
  • Manage layout for different display scales and DPI settings.
  • Display and hide overlay sections like preset browsers, authentication dialogs, and updates.

Constructor & Destructor Documentation

◆ FullInterface() [1/2]

FullInterface::FullInterface ( SynthGuiData * synth_gui_data)

Constructs the full interface with the given synth GUI data.

Parameters
synth_gui_dataA pointer to a SynthGuiData structure that provides access to the synthesizer's data and state.

◆ FullInterface() [2/2]

FullInterface::FullInterface ( )

Constructs a minimal, empty full interface.

Primarily used in scenarios where the full interface cannot be fully initialized.

◆ ~FullInterface()

FullInterface::~FullInterface ( )
virtual

Destructor.

Member Function Documentation

◆ animate()

void FullInterface::animate ( bool animate)
overridevirtual

Enables or disables animations (like continuous OpenGL repainting).

Parameters
animateTrue to enable animations, false to disable.

Reimplemented from SynthSection.

◆ bankImported()

void FullInterface::bankImported ( )
overridevirtual

Called when a new bank of presets has been imported, to refresh lists.

Implements HeaderSection::Listener.

◆ checkShouldReposition()

void FullInterface::checkShouldReposition ( bool resize = true)

Checks if the interface should be repositioned or resized based on scaling or display changes.

Parameters
resizeIf true, forces a resize to adjust layout.

◆ clearTemporaryTab()

void FullInterface::clearTemporaryTab ( int current_tab)
overridevirtual

Clears temporary overlay tabs such as the preset browser.

Parameters
current_tabThe currently selected main tab index.

Implements HeaderSection::Listener.

◆ copySkinValues()

void FullInterface::copySkinValues ( const Skin & skin)

Copies skin values from a Skin instance into the interface and look-and-feel.

Parameters
skinThe skin object containing color and style values.

◆ createModulationSliders()

void FullInterface::createModulationSliders ( const vital::output_map & mono_modulations,
const vital::output_map & poly_modulations )

Creates modulation sliders for both mono and poly modulations.

Parameters
mono_modulationsA map of mono modulation outputs.
poly_modulationsA map of poly modulation outputs.

◆ dataDirectoryChanged()

void FullInterface::dataDirectoryChanged ( )
overridevirtual

Called when the data directory changes.

Refreshes preset listings or other assets that depend on the data directory.

Implements DownloadSection::Listener.

◆ deleteRequested()

void FullInterface::deleteRequested ( File preset)
overridevirtual

Handles a request to delete a preset file.

Parameters
presetThe file to be deleted.

Implements HeaderSection::Listener.

◆ dualPopupSelector()

void FullInterface::dualPopupSelector ( Component * source,
Point< int > position,
int width,
const PopupItems & options,
std::function< void(int)> callback )

Opens a dual popup selector for choosing from a hierarchical list of items.

Parameters
sourceThe component from which the popup position is derived.
positionThe position (relative to source) to place the popup.
widthThe width of the popup.
optionsThe PopupItems to display.
callbackFunction called with the selected item index upon selection.

◆ effectsMoved()

void FullInterface::effectsMoved ( )
overridevirtual

Called when the effects interface is moved, to update meter positions.

Implements EffectsInterface::Listener.

◆ enableRedoBackground()

void FullInterface::enableRedoBackground ( bool enable)
inline

Enables or disables redrawing of the background when resized.

Parameters
enableTrue to enable, false to disable.

◆ externalPresetLoaded()

void FullInterface::externalPresetLoaded ( const File & preset)

Handles loading an external preset file into the interface.

Parameters
presetThe preset File being loaded.

◆ getLastBrowsedWavetable()

std::string FullInterface::getLastBrowsedWavetable ( int index)

Gets the last browsed wavetable file path for a given oscillator.

Parameters
indexThe oscillator index.
Returns
A string containing the last browsed wavetable path.

◆ getPixelMultiple()

int FullInterface::getPixelMultiple ( ) const
inlineoverridevirtual

Returns the pixel multiple used for scaling pixel-perfect rendering.

Returns
The pixel multiple.

Reimplemented from SynthSection.

◆ getPixelScaling()

float FullInterface::getPixelScaling ( ) const
inlineoverride

Returns the current pixel scaling factor based on display scale.

Returns
The pixel scaling factor.

◆ getResizingScale()

float FullInterface::getResizingScale ( ) const
inline

Returns the scale factor for resizing operations.

Returns
The resizing scale factor.

◆ getSignedInName()

std::string FullInterface::getSignedInName ( )

Gets the name of the currently signed-in user, if any.

Returns
A string with the signed-in user's name, or empty if not signed in.

◆ getWavetableJson()

json FullInterface::getWavetableJson ( int index)

Retrieves the JSON data representing the current wavetable for an oscillator.

Parameters
indexThe oscillator index.
Returns
The JSON object representing the wavetable.

◆ getWavetableName()

std::string FullInterface::getWavetableName ( int index)

Gets the current wavetable name for a given oscillator.

Parameters
indexThe oscillator index.
Returns
A string containing the wavetable name.

◆ hideDisplay()

void FullInterface::hideDisplay ( bool primary)

Hides a previously shown popup display.

Parameters
primaryTrue if hiding the primary popup, false if the secondary popup.

◆ hideWavetableEditSection()

void FullInterface::hideWavetableEditSection ( )

Hides any open wavetable editing section, returning to the normal view.

◆ loadAudioAsWavetable()

bool FullInterface::loadAudioAsWavetable ( int index,
const String & name,
InputStream * audio_stream,
WavetableCreator::AudioFileLoadStyle style )

Loads an audio file as a wavetable into the given oscillator editor.

Parameters
indexThe oscillator index.
nameThe name of the wavetable.
audio_streamA pointer to an InputStream representing the audio file.
styleThe loading style (e.g., how to map audio data to wavetable frames).
Returns
True if successful, false otherwise.

◆ loadDefaultWavetable()

void FullInterface::loadDefaultWavetable ( int index)

Loads a default wavetable into the given oscillator editor.

Parameters
indexThe oscillator index.

◆ loadWavetable()

void FullInterface::loadWavetable ( int index,
json & wavetable_data )

Loads a wavetable from a JSON object into the given oscillator editor.

Parameters
indexThe oscillator index.
wavetable_dataThe JSON data representing the wavetable.

◆ loadWavetableFile()

void FullInterface::loadWavetableFile ( int index,
const File & wavetable )

Loads a wavetable from a file into the given oscillator editor.

Parameters
indexThe oscillator index.
wavetableThe File containing the wavetable data.

◆ loggedIn()

void FullInterface::loggedIn ( )
overridevirtual

Called when the user has successfully logged in.

Implements AuthenticationSection::Listener.

◆ modulationChanged()

void FullInterface::modulationChanged ( )

Called when modulations have changed, updating the modulation matrix and related components.

◆ modulationsScrolled()

void FullInterface::modulationsScrolled ( )
overridevirtual

Called when modulations are scrolled, to update meter positions.

Implements ModulationMatrix::Listener.

◆ modulationValueChanged()

void FullInterface::modulationValueChanged ( int index)

Called when a particular modulation value changes.

Parameters
indexThe index of the changed modulation.

◆ needsUpdate()

void FullInterface::needsUpdate ( )
overridevirtual

Indicates that a software update is available and needs action.

Implements UpdateCheckSection::Listener.

◆ newOpenGLContextCreated()

void FullInterface::newOpenGLContextCreated ( )
override

Called when a new OpenGL context is created.

◆ noDownloadNeeded()

void FullInterface::noDownloadNeeded ( )
overridevirtual

Indicates that no download is needed after checking updates.

Implements DownloadSection::Listener.

◆ notifyChange()

void FullInterface::notifyChange ( )

Notifies that a parameter or state has changed.

◆ notifyFresh()

void FullInterface::notifyFresh ( )

Notifies that the interface is in a fresh state (no unsaved changes).

◆ openGLContextClosing()

void FullInterface::openGLContextClosing ( )
override

Called when the OpenGL context is closing, allowing cleanup of resources.

◆ openSaveDialog()

void FullInterface::openSaveDialog ( )
inline

◆ paintBackground()

void FullInterface::paintBackground ( Graphics & g)
overridevirtual

Paints the background of the entire interface.

Parameters
gThe graphics context used for drawing.

Reimplemented from SynthSection.

◆ parentHierarchyChanged()

void FullInterface::parentHierarchyChanged ( )
inlineoverride

Called when this component is added to a new parent.

Performs a check to ensure correct positioning and scaling.

◆ popupBrowser()

void FullInterface::popupBrowser ( SynthSection * owner,
Rectangle< int > bounds,
std::vector< File > directories,
String extensions,
std::string passthrough_name,
std::string additional_folders_name )

Opens a popup browser for file browsing.

Parameters
ownerThe SynthSection that owns the browser.
boundsThe bounds relative to the owner where the popup should appear.
directoriesA vector of directories to browse.
extensionsThe file extensions to filter by.
passthrough_nameA name for passthrough directories.
additional_folders_nameA name for additional folder groups.

◆ popupBrowserUpdate()

void FullInterface::popupBrowserUpdate ( SynthSection * owner)

Updates the popup browser's ownership, useful if the owner changed.

Parameters
ownerThe new owner SynthSection.

◆ popupDisplay()

void FullInterface::popupDisplay ( Component * source,
const std::string & text,
BubbleComponent::BubblePlacement placement,
bool primary )

Shows a popup display (a tooltip-like bubble) with provided text.

Parameters
sourceThe component that the popup should point to.
textThe text to display inside the popup.
placementThe placement of the bubble relative to the component.
primaryTrue if this is the primary popup, false if secondary.

◆ popupSelector()

void FullInterface::popupSelector ( Component * source,
Point< int > position,
const PopupItems & options,
std::function< void(int)> callback,
std::function< void()> cancel )

Opens a popup selector for choosing from a list of items.

Parameters
sourceThe component from which the popup position is derived.
positionThe position (relative to source) to place the popup.
optionsThe PopupItems to display as choices.
callbackFunction called with the selected item index upon selection.
cancelFunction called if the user cancels or closes the selector without choosing.

◆ redoBackground()

void FullInterface::redoBackground ( )

Redraws the entire background image for the interface.

Useful when skin changes or layout adjustments occur.

◆ reloadSkin()

void FullInterface::reloadSkin ( const Skin & skin)

Reloads and applies a new skin, then adjusts layout accordingly.

Parameters
skinThe skin object containing color and style values.

◆ renderOpenGL()

void FullInterface::renderOpenGL ( )
override

Renders the GUI using OpenGL.

◆ repaintChildBackground()

void FullInterface::repaintChildBackground ( SynthSection * child)

Repaints the background of a child section.

Parameters
childThe child SynthSection whose background needs repainting.

◆ repaintOpenGlBackground()

void FullInterface::repaintOpenGlBackground ( OpenGlComponent * component)

Repaints the background that shows behind OpenGL components.

Parameters
componentThe OpenGlComponent to repaint the background for.

◆ repaintSynthesisSection()

void FullInterface::repaintSynthesisSection ( )

Repaints only the synthesis (oscillator/filter) section background.

◆ reset()

void FullInterface::reset ( )
overridevirtual

Resets the entire interface to a default state.

Reimplemented from SynthSection.

◆ resized()

void FullInterface::resized ( )
overridevirtual

Adjusts layout and sizes of child components after the interface is resized.

Reimplemented from SynthSection.

◆ resynthesizeToWavetable()

void FullInterface::resynthesizeToWavetable ( int index)

Performs resynthesis of the current wavetable for the given oscillator.

Parameters
indexThe oscillator index.

◆ saveLfo()

void FullInterface::saveLfo ( const json & data)

Opens a save dialog to save a given LFO shape.

Parameters
dataThe JSON data representing the LFO.

◆ saveWavetable()

void FullInterface::saveWavetable ( int index)

Opens a save dialog to save the current wavetable of an oscillator.

Parameters
indexThe oscillator index.

◆ setAllValues()

void FullInterface::setAllValues ( vital::control_map & controls)
overridevirtual

Sets all parameter values on the interface.

Parameters
controlsA map of control names to their associated parameters and values.

Reimplemented from SynthSection.

◆ setAudioMemory()

void FullInterface::setAudioMemory ( const vital::StereoMemory * memory)

Assigns stereo audio memory for visualization.

Parameters
memoryA pointer to StereoMemory holding audio samples for display.

◆ setBankExporterVisibility()

void FullInterface::setBankExporterVisibility ( bool visible,
int current_tab )
overridevirtual

Toggles the visibility of the bank exporter.

Parameters
visibleTrue to show, false to hide.
current_tabThe currently selected main tab index.

Implements HeaderSection::Listener.

◆ setFocus()

void FullInterface::setFocus ( )

Sets keyboard focus to a relevant component (e.g., authentication).

◆ setOscilloscopeMemory()

void FullInterface::setOscilloscopeMemory ( const vital::poly_float * memory)

Assigns memory for oscilloscope visualization.

Parameters
memoryA pointer to poly_float memory holding oscilloscope data.

◆ setPresetBrowserVisibility()

void FullInterface::setPresetBrowserVisibility ( bool visible,
int current_tab )
overridevirtual

Toggles the visibility of the preset browser.

Parameters
visibleTrue to show, false to hide.
current_tabThe currently selected main tab index.

Implements HeaderSection::Listener.

◆ setWavetableNames()

void FullInterface::setWavetableNames ( )

Updates displayed wavetable names from the current wavetable data.

◆ showAboutSection()

void FullInterface::showAboutSection ( )
overridevirtual

Shows the "About" section overlay.

Implements HeaderSection::Listener.

◆ showFullScreenSection()

void FullInterface::showFullScreenSection ( SynthSection * full_screen)

Displays a full-screen section overlay, hiding other sections.

Parameters
full_screenPointer to the SynthSection to show full-screen, or nullptr to restore normal view.

◆ showWavetableEditSection()

void FullInterface::showWavetableEditSection ( int index)

Shows the wavetable edit section for a given oscillator index.

Parameters
indexThe oscillator index, or -1 to hide all wavetable editors.

◆ signIn()

void FullInterface::signIn ( )

Opens the sign-in interface, if available.

◆ signOut()

void FullInterface::signOut ( )

Signs out the current user, if signed in.

◆ startDownload()

void FullInterface::startDownload ( )

Starts a download of additional content if needed.

◆ tabSelected()

void FullInterface::tabSelected ( int index)
overridevirtual

Handles user selecting a main tab (e.g., Synthesis, Effects, etc.)

Parameters
indexThe index of the selected tab.

Implements HeaderSection::Listener.

◆ toggleFilter1Zoom()

void FullInterface::toggleFilter1Zoom ( )

◆ toggleFilter2Zoom()

void FullInterface::toggleFilter2Zoom ( )

◆ toggleOscillatorZoom()

void FullInterface::toggleOscillatorZoom ( int index)

Member Data Documentation

◆ kMinOpenGlVersion

double FullInterface::kMinOpenGlVersion = 1.4
staticconstexpr

Minimum required OpenGL version for the interface to function properly.


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