Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
ports_expander.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: © 2019-2021 Alexandros Theodotou <alex@zrythm.org>
3 *
4 * SPDX-License-Identifier: LicenseRef-ZrythmLicense
5 */
6
13#ifndef __GUI_WIDGETS_PORTS_EXPANDER_H__
14#define __GUI_WIDGETS_PORTS_EXPANDER_H__
15
16#include "dsp/port.h"
17#include "gui/widgets/two_col_expander_box.h"
18
19#include <gtk/gtk.h>
20
21typedef struct _EditableLabelWidget EditableLabelWidget;
22typedef struct Track Track;
23typedef struct Plugin Plugin;
24
25#define PORTS_EXPANDER_WIDGET_TYPE (ports_expander_widget_get_type ())
26G_DECLARE_FINAL_TYPE (
28 ports_expander_widget,
29 Z,
30 PORTS_EXPANDER_WIDGET,
31 TwoColExpanderBoxWidget);
32
43{
44 PE_TRACK_PORT_TYPE_CONTROLS,
45 PE_TRACK_PORT_TYPE_SENDS,
46 PE_TRACK_PORT_TYPE_STEREO_IN,
47 PE_TRACK_PORT_TYPE_MIDI_IN,
48 PE_TRACK_PORT_TYPE_MIDI_OUT,
50
55typedef struct _PortsExpanderWidget
56{
57 TwoColExpanderBoxWidget parent_instance;
58
59 PortFlow flow;
60 PortType type;
61 PortOwnerType owner_type;
62
65
69
73void
75
79void
82 PortFlow flow,
83 PortType type,
84 Plugin * pl);
85
91void
94 Track * tr,
96
101#endif
Ports that transfer audio/midi/other signals to one another.
PortType
Type of signals the Port handles.
PortFlow
Direction of the signal.
PortOwnerType
Type of owner.
void ports_expander_widget_setup_plugin(PortsExpanderWidget *self, PortFlow flow, PortType type, Plugin *pl)
Sets up the PortsExpanderWidget for a Plugin.
void ports_expander_widget_refresh(PortsExpanderWidget *self)
Refreshes each field.
PortsExpanderTrackPortType
Used for Track's.
void ports_expander_widget_setup_track(PortsExpanderWidget *self, Track *tr, PortsExpanderTrackPortType type)
Sets up the PortsExpanderWidget for Track ports.
The base plugin Inheriting plugins must have this as a child.
Definition plugin.h:74
A TwoColExpanderBoxWidget for showing the ports in the InspectorWidget.
Track * track
Track, in case of owner type Track.
Plugin * plugin
Plugin, in case of owner type Plugin.
Track to be inserted into the Project's Tracklist.
Definition track.h:186