Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
modulator_inner.h
1// SPDX-FileCopyrightText: © 2020-2021 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_MODULATOR_INNER_H__
5#define __GUI_WIDGETS_MODULATOR_INNER_H__
6
7#include <gtk/gtk.h>
8
9#define MODULATOR_INNER_WIDGET_TYPE (modulator_inner_widget_get_type ())
10G_DECLARE_FINAL_TYPE (
12 modulator_inner_widget,
13 Z,
14 MODULATOR_INNER_WIDGET,
15 GtkBox)
16
17typedef struct _KnobWithNameWidget KnobWithNameWidget;
18typedef struct _LiveWaveformWidget LiveWaveformWidget;
19typedef struct _ModulatorWidget ModulatorWidget;
20typedef struct _PortConnectionsPopoverWidget PortConnectionsPopoverWidget;
21
22typedef struct _ModulatorInnerWidget
23{
24 GtkBox parent_instance;
25
26 GtkBox * toolbar;
27
28 GtkToggleButton * show_hide_ui_btn;
29
30 GtkBox * controls_box;
31 GtkBox * waveforms_box;
32
33 KnobWithNameWidget ** knobs;
34 int num_knobs;
35 size_t knobs_size;
36
38 GtkOverlay * waveform_overlays[16];
39 GtkButton * waveform_automate_buttons[16];
40 LiveWaveformWidget * waveforms[16];
41 int num_waveforms;
42
43 Port * ports[16];
44
46 ModulatorWidget * parent;
47
48 PortConnectionsPopoverWidget * connections_popover;
50
51void
52modulator_inner_widget_refresh (ModulatorInnerWidget * self);
53
58modulator_inner_widget_new (ModulatorWidget * parent);
59
60#endif
A vertical box with a knob at the top and a name at the bottom.
ModulatorWidget * parent
Pointer back to the Modulator.
Must ONLY be created via port_new()
Definition port.h:139