48 for (
Listener* listener : listeners_)
49 listener->effectsScrolled(visible_area.getY());
51 Viewport::visibleAreaChanged(visible_area);
55 std::vector<Listener*> listeners_;
129 void scrollBarMoved(ScrollBar* scroll_bar,
double range_start)
override;
142 scroll_bar_->setCurrentRange(position, viewport_.getHeight());
144 for (
Listener* listener : listeners_)
145 listener->effectsMoved();
149 std::vector<Listener*> listeners_;
151 std::unique_ptr<EffectsContainer> container_;
153 CriticalSection open_gl_critical_section_;
155 std::unique_ptr<ChorusSection> chorus_section_;
156 std::unique_ptr<CompressorSection> compressor_section_;
157 std::unique_ptr<DelaySection> delay_section_;
158 std::unique_ptr<DistortionSection> distortion_section_;
159 std::unique_ptr<EqualizerSection> equalizer_section_;
160 std::unique_ptr<FlangerSection> flanger_section_;
161 std::unique_ptr<PhaserSection> phaser_section_;
162 std::unique_ptr<ReverbSection> reverb_section_;
163 std::unique_ptr<FilterSection> filter_section_;
164 std::unique_ptr<DragDropEffectOrder> effect_order_;
165 std::unique_ptr<OpenGlScrollBar> scroll_bar_;
A UI section for editing chorus effect parameters.
Definition chorus_section.h:21
A UI section for configuring a multiband compressor effect.
Definition compressor_section.h:21
A UI section providing controls for a delay effect, including tempo-synced delays,...
Definition delay_section.h:197
A UI section for configuring a distortion effect, including type, drive, mix, and filtering.
Definition distortion_section.h:149
Listener interface for responding to changes in the drag/drop order or effect states.
Definition drag_drop_effect_order.h:129
A container managing multiple DraggableEffect components, allowing reordering via drag and drop.
Definition drag_drop_effect_order.h:120
A container holding all the effect sections, painting their background and shadows.
Definition effects_interface.cpp:19
Interface for objects that need to respond when effects are moved or scrolled.
Definition effects_interface.h:69
virtual void effectsMoved()=0
Called when effects are moved due to scrolling or reordering.
virtual ~Listener()
Definition effects_interface.h:71
A UI component that displays and manages all effects sections and their ordering.
Definition effects_interface.h:65
void setFocus()
Sets the keyboard focus to this component.
Definition effects_interface.h:108
void renderOpenGlComponents(OpenGlWrapper &open_gl, bool animate) override
Definition effects_interface.cpp:208
void redoBackgroundImage()
Updates the background image when needed, e.g., after reordering.
Definition effects_interface.cpp:115
void setEffectPositions()
Positions the effect sections based on their order and enabled states.
Definition effects_interface.cpp:167
void paintBackground(Graphics &g) override
Definition effects_interface.cpp:106
void addListener(Listener *listener)
Definition effects_interface.h:136
void effectsScrolled(int position) override
Definition effects_interface.h:140
void paintChildrenShadows(Graphics &g) override
Definition effects_interface.h:90
void scrollBarMoved(ScrollBar *scroll_bar, double range_start) override
Definition effects_interface.cpp:235
void orderChanged(DragDropEffectOrder *order) override
Definition effects_interface.cpp:150
void setScrollBarRange()
Updates the scrollbar range after changes.
Definition effects_interface.cpp:239
EffectsInterface(const vital::output_map &mono_modulations)
Definition effects_interface.cpp:33
void resized() override
Resizes and lays out the effects sections and the viewport.
Definition effects_interface.cpp:129
virtual ~EffectsInterface()
Destructor.
Definition effects_interface.cpp:94
void effectEnabledChanged(int order_index, bool enabled) override
Definition effects_interface.cpp:157
void initOpenGlComponents(OpenGlWrapper &open_gl) override
Definition effects_interface.cpp:203
void destroyOpenGlComponents(OpenGlWrapper &open_gl) override
Definition effects_interface.cpp:230
Interface for objects that need to respond when the effects viewport is scrolled.
Definition effects_interface.h:32
virtual void effectsScrolled(int position)=0
virtual ~Listener()
Definition effects_interface.h:34
A specialized Viewport that notifies listeners when the visible area changes (i.e....
Definition effects_interface.h:28
void addListener(Listener *listener)
Definition effects_interface.h:43
void visibleAreaChanged(const Rectangle< int > &visible_area) override
Definition effects_interface.h:47
A UI section for configuring a 3-band equalizer with selectable modes (Low, Band, High).
Definition equalizer_section.h:20
A graphical user interface component representing a filter section in the synthesizer.
Definition filter_section.h:25
A GUI section representing the flanger effect in the synthesizer.
Definition flanger_section.h:207
A utility class for rendering a single image using OpenGL.
Definition open_gl_image.h:16
A UI section for controlling a phaser effect in the synthesizer.
Definition phaser_section.h:219
A UI section for controlling and visualizing reverb parameters.
Definition reverb_section.h:17
Base class for all synthesizer sections, providing UI layout, painting, and interaction logic.
Definition synth_section.h:193
virtual void animate(bool animate)
Triggers animation state change in sub-sections if needed.
Definition synth_section.cpp:822
@ kNumEffects
Definition synth_constants.h:187
std::map< std::string, Output * > output_map
Maps parameter names to Output pointers, representing output signals from various modules.
Definition synth_types.h:229
A helper struct containing references to OpenGL context, shaders, and display scale.
Definition shaders.h:174