Vital
|
The main GUI container for the entire synthesizer interface. More...
#include <full_interface.h>
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 () |
![]() | |
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 |
![]() | |
virtual | ~ButtonListener () |
Virtual destructor. | |
![]() | |
virtual | ~Listener ()=default |
![]() | |
virtual | ~Listener () |
![]() | |
virtual | ~Listener ()=default |
![]() | |
virtual | ~Listener () |
![]() | |
virtual | ~Listener () |
![]() | |
virtual | ~Listener ()=default |
Static Public Attributes | |
static constexpr double | kMinOpenGlVersion = 1.4 |
Minimum required OpenGL version for the interface to function properly. | |
![]() | |
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 | |
![]() | |
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 |
![]() | |
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 SynthSection * | parent_ |
SynthButton * | activator_ |
PresetSelector * | preset_selector_ |
bool | preset_selector_half_width_ |
std::unique_ptr< OffOverlay > | off_overlay_ |
Skin::SectionOverride | skin_override_ |
float | size_ratio_ |
bool | active_ |
bool | sideways_heading_ |
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:
FullInterface::FullInterface | ( | SynthGuiData * | synth_gui_data | ) |
Constructs the full interface with the given synth GUI data.
synth_gui_data | A pointer to a SynthGuiData structure that provides access to the synthesizer's data and state. |
FullInterface::FullInterface | ( | ) |
Constructs a minimal, empty full interface.
Primarily used in scenarios where the full interface cannot be fully initialized.
|
virtual |
Destructor.
|
overridevirtual |
Enables or disables animations (like continuous OpenGL repainting).
animate | True to enable animations, false to disable. |
Reimplemented from SynthSection.
|
overridevirtual |
Called when a new bank of presets has been imported, to refresh lists.
Implements HeaderSection::Listener.
void FullInterface::checkShouldReposition | ( | bool | resize = true | ) |
Checks if the interface should be repositioned or resized based on scaling or display changes.
resize | If true, forces a resize to adjust layout. |
|
overridevirtual |
Clears temporary overlay tabs such as the preset browser.
current_tab | The currently selected main tab index. |
Implements HeaderSection::Listener.
void FullInterface::copySkinValues | ( | const Skin & | skin | ) |
Copies skin values from a Skin instance into the interface and look-and-feel.
skin | The skin object containing color and style values. |
void FullInterface::createModulationSliders | ( | const vital::output_map & | mono_modulations, |
const vital::output_map & | poly_modulations ) |
Creates modulation sliders for both mono and poly modulations.
mono_modulations | A map of mono modulation outputs. |
poly_modulations | A map of poly modulation outputs. |
|
overridevirtual |
Called when the data directory changes.
Refreshes preset listings or other assets that depend on the data directory.
Implements DownloadSection::Listener.
|
overridevirtual |
Handles a request to delete a preset file.
preset | The file to be deleted. |
Implements HeaderSection::Listener.
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.
source | The component from which the popup position is derived. |
position | The position (relative to source) to place the popup. |
width | The width of the popup. |
options | The PopupItems to display. |
callback | Function called with the selected item index upon selection. |
|
overridevirtual |
Called when the effects interface is moved, to update meter positions.
Implements EffectsInterface::Listener.
|
inline |
Enables or disables redrawing of the background when resized.
enable | True to enable, false to disable. |
void FullInterface::externalPresetLoaded | ( | const File & | preset | ) |
Handles loading an external preset file into the interface.
preset | The preset File being loaded. |
std::string FullInterface::getLastBrowsedWavetable | ( | int | index | ) |
Gets the last browsed wavetable file path for a given oscillator.
index | The oscillator index. |
|
inlineoverridevirtual |
Returns the pixel multiple used for scaling pixel-perfect rendering.
Reimplemented from SynthSection.
|
inlineoverride |
Returns the current pixel scaling factor based on display scale.
|
inline |
Returns the scale factor for resizing operations.
std::string FullInterface::getSignedInName | ( | ) |
Gets the name of the currently signed-in user, if any.
json FullInterface::getWavetableJson | ( | int | index | ) |
Retrieves the JSON data representing the current wavetable for an oscillator.
index | The oscillator index. |
std::string FullInterface::getWavetableName | ( | int | index | ) |
Gets the current wavetable name for a given oscillator.
index | The oscillator index. |
void FullInterface::hideDisplay | ( | bool | primary | ) |
Hides a previously shown popup display.
primary | True if hiding the primary popup, false if the secondary popup. |
void FullInterface::hideWavetableEditSection | ( | ) |
Hides any open wavetable editing section, returning to the normal view.
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.
index | The oscillator index. |
name | The name of the wavetable. |
audio_stream | A pointer to an InputStream representing the audio file. |
style | The loading style (e.g., how to map audio data to wavetable frames). |
void FullInterface::loadDefaultWavetable | ( | int | index | ) |
Loads a default wavetable into the given oscillator editor.
index | The oscillator index. |
void FullInterface::loadWavetable | ( | int | index, |
json & | wavetable_data ) |
Loads a wavetable from a JSON object into the given oscillator editor.
index | The oscillator index. |
wavetable_data | The JSON data representing the wavetable. |
void FullInterface::loadWavetableFile | ( | int | index, |
const File & | wavetable ) |
Loads a wavetable from a file into the given oscillator editor.
index | The oscillator index. |
wavetable | The File containing the wavetable data. |
|
overridevirtual |
Called when the user has successfully logged in.
Implements AuthenticationSection::Listener.
void FullInterface::modulationChanged | ( | ) |
Called when modulations have changed, updating the modulation matrix and related components.
|
overridevirtual |
Called when modulations are scrolled, to update meter positions.
Implements ModulationMatrix::Listener.
void FullInterface::modulationValueChanged | ( | int | index | ) |
Called when a particular modulation value changes.
index | The index of the changed modulation. |
|
overridevirtual |
Indicates that a software update is available and needs action.
Implements UpdateCheckSection::Listener.
|
override |
Called when a new OpenGL context is created.
|
overridevirtual |
Indicates that no download is needed after checking updates.
Implements DownloadSection::Listener.
void FullInterface::notifyChange | ( | ) |
Notifies that a parameter or state has changed.
void FullInterface::notifyFresh | ( | ) |
Notifies that the interface is in a fresh state (no unsaved changes).
|
override |
Called when the OpenGL context is closing, allowing cleanup of resources.
|
inline |
|
overridevirtual |
Paints the background of the entire interface.
g | The graphics context used for drawing. |
Reimplemented from SynthSection.
|
inlineoverride |
Called when this component is added to a new parent.
Performs a check to ensure correct positioning and scaling.
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.
owner | The SynthSection that owns the browser. |
bounds | The bounds relative to the owner where the popup should appear. |
directories | A vector of directories to browse. |
extensions | The file extensions to filter by. |
passthrough_name | A name for passthrough directories. |
additional_folders_name | A name for additional folder groups. |
void FullInterface::popupBrowserUpdate | ( | SynthSection * | owner | ) |
Updates the popup browser's ownership, useful if the owner changed.
owner | The new owner SynthSection. |
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.
source | The component that the popup should point to. |
text | The text to display inside the popup. |
placement | The placement of the bubble relative to the component. |
primary | True if this is the primary popup, false if secondary. |
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.
source | The component from which the popup position is derived. |
position | The position (relative to source) to place the popup. |
options | The PopupItems to display as choices. |
callback | Function called with the selected item index upon selection. |
cancel | Function called if the user cancels or closes the selector without choosing. |
void FullInterface::redoBackground | ( | ) |
Redraws the entire background image for the interface.
Useful when skin changes or layout adjustments occur.
void FullInterface::reloadSkin | ( | const Skin & | skin | ) |
Reloads and applies a new skin, then adjusts layout accordingly.
skin | The skin object containing color and style values. |
|
override |
Renders the GUI using OpenGL.
void FullInterface::repaintChildBackground | ( | SynthSection * | child | ) |
Repaints the background of a child section.
child | The child SynthSection whose background needs repainting. |
void FullInterface::repaintOpenGlBackground | ( | OpenGlComponent * | component | ) |
Repaints the background that shows behind OpenGL components.
component | The OpenGlComponent to repaint the background for. |
void FullInterface::repaintSynthesisSection | ( | ) |
Repaints only the synthesis (oscillator/filter) section background.
|
overridevirtual |
Resets the entire interface to a default state.
Reimplemented from SynthSection.
|
overridevirtual |
Adjusts layout and sizes of child components after the interface is resized.
Reimplemented from SynthSection.
void FullInterface::resynthesizeToWavetable | ( | int | index | ) |
Performs resynthesis of the current wavetable for the given oscillator.
index | The oscillator index. |
void FullInterface::saveLfo | ( | const json & | data | ) |
Opens a save dialog to save a given LFO shape.
data | The JSON data representing the LFO. |
void FullInterface::saveWavetable | ( | int | index | ) |
Opens a save dialog to save the current wavetable of an oscillator.
index | The oscillator index. |
|
overridevirtual |
Sets all parameter values on the interface.
controls | A map of control names to their associated parameters and values. |
Reimplemented from SynthSection.
void FullInterface::setAudioMemory | ( | const vital::StereoMemory * | memory | ) |
Assigns stereo audio memory for visualization.
memory | A pointer to StereoMemory holding audio samples for display. |
|
overridevirtual |
Toggles the visibility of the bank exporter.
visible | True to show, false to hide. |
current_tab | The currently selected main tab index. |
Implements HeaderSection::Listener.
void FullInterface::setFocus | ( | ) |
Sets keyboard focus to a relevant component (e.g., authentication).
void FullInterface::setOscilloscopeMemory | ( | const vital::poly_float * | memory | ) |
Assigns memory for oscilloscope visualization.
memory | A pointer to poly_float memory holding oscilloscope data. |
|
overridevirtual |
Toggles the visibility of the preset browser.
visible | True to show, false to hide. |
current_tab | The currently selected main tab index. |
Implements HeaderSection::Listener.
void FullInterface::setWavetableNames | ( | ) |
Updates displayed wavetable names from the current wavetable data.
|
overridevirtual |
Shows the "About" section overlay.
Implements HeaderSection::Listener.
void FullInterface::showFullScreenSection | ( | SynthSection * | full_screen | ) |
Displays a full-screen section overlay, hiding other sections.
full_screen | Pointer to the SynthSection to show full-screen, or nullptr to restore normal view. |
void FullInterface::showWavetableEditSection | ( | int | index | ) |
Shows the wavetable edit section for a given oscillator index.
index | The oscillator index, or -1 to hide all wavetable editors. |
void FullInterface::signIn | ( | ) |
Opens the sign-in interface, if available.
void FullInterface::signOut | ( | ) |
Signs out the current user, if signed in.
void FullInterface::startDownload | ( | ) |
Starts a download of additional content if needed.
|
overridevirtual |
Handles user selecting a main tab (e.g., Synthesis, Effects, etc.)
index | The index of the selected tab. |
Implements HeaderSection::Listener.
void FullInterface::toggleFilter1Zoom | ( | ) |
void FullInterface::toggleFilter2Zoom | ( | ) |
void FullInterface::toggleOscillatorZoom | ( | int | index | ) |
|
staticconstexpr |
Minimum required OpenGL version for the interface to function properly.