Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
Plugin Struct Reference

The base plugin Inheriting plugins must have this as a child. More...

#include <plugins/plugin.h>

Collaboration diagram for Plugin:

Public Member Functions

NONNULL Channelplugin_get_channel (Plugin *self)
 
NONNULL Trackplugin_get_track (const Plugin *self)
 

Data Fields

int schema_version
 
PluginIdentifier id
 
CarlaNativePlugincarla
 Pointer to Carla native plugin.
 
PluginSettingsetting
 Setting this plugin was instantiated with.
 
Port ** in_ports
 Ports coming in as input.
 
int num_in_ports
 
size_t in_ports_size
 
GPtrArray * ctrl_in_ports
 
GPtrArray * audio_in_ports
 
GPtrArray * cv_in_ports
 
GPtrArray * midi_in_ports
 
Portmidi_in_port
 Cache.
 
Port ** out_ports
 Outgoing ports.
 
int num_out_ports
 
size_t out_ports_size
 
Portenabled
 Control for plugin enabled, for convenience.
 
Portown_enabled_port
 Whether the plugin has a custom "enabled" port (LV2).
 
Portgain
 Control for plugin gain, for convenience.
 
Portl_out
 Instrument left stereo output, for convenience.
 
Portr_out
 
PluginBank ** banks
 
int num_banks
 
size_t banks_size
 
PluginPresetIdentifier selected_bank
 
PluginPresetIdentifier selected_preset
 
bool visible
 Whether plugin UI is opened or not.
 
nframes_t latency
 Latency reported by the Lv2Plugin, if any, in samples.
 
bool instantiated
 Whether the plugin is currently instantiated or not.
 
bool instantiation_failed
 Set to true if instantiation failed and the plugin will be treated as disabled.
 
bool activated
 Whether the plugin is currently activated or not.
 
int ui_instantiated
 Whether the UI has finished instantiating.
 
float ui_update_hz
 Update frequency of the UI, in Hz (times per second).
 
float ui_scale_factor
 Scale factor for drawing UIs in scale of the monitor.
 
char * state_dir
 State directory (only basename).
 
bool deleting
 Whether the plugin is currently being deleted.
 
GtkWidget * active_preset_item
 Active preset item, if wrapped or generic UI.
 
GtkWindow * window
 The Plugin's window.
 
GtkBox * ev_box
 The GdkWindow of this widget should be somewhere inside Plugin::window and will be used for wrapping plugin UIs in.
 
GtkBox * vbox
 Vbox containing the above ev_box for wrapping, or used for packing generic UI controls.
 
gulong destroy_window_id
 ID of the destroy signal for Plugin::window so that we can deactivate before freeing the plugin.
 
gulong close_request_id
 ID of the close-request signal for Plugin::window so that we can deactivate before freeing the plugin.
 
int magic
 
ModulatorWidget * modulator_widget
 Modulator widget, if modulator.
 
guint update_ui_source_id
 ID of GSource (if > 0).
 
bool deactivating
 Temporary variable to check if plugin is currently undergoing deactivation.
 
int state_changed_event_sent
 Set to true to avoid sending multiple ET_PLUGIN_STATE_CHANGED for the same plugin.
 
bool is_function
 Whether the plugin is used for functions.
 
Tracktrack
 Pointer to owner track, if any.
 
MixerSelectionsms
 Pointer to owner selections, if any.
 
WrappedObjectWithChangeSignalgobj
 Used in Gtk.
 

Detailed Description

The base plugin Inheriting plugins must have this as a child.

Definition at line 73 of file plugin.h.

Field Documentation

◆ activated

bool Plugin::activated

Whether the plugin is currently activated or not.

Definition at line 157 of file plugin.h.

◆ active_preset_item

GtkWidget* Plugin::active_preset_item

Active preset item, if wrapped or generic UI.

Definition at line 195 of file plugin.h.

◆ audio_in_ports

GPtrArray* Plugin::audio_in_ports

Definition at line 92 of file plugin.h.

◆ banks

PluginBank** Plugin::banks

Definition at line 136 of file plugin.h.

◆ banks_size

size_t Plugin::banks_size

Definition at line 138 of file plugin.h.

◆ carla

CarlaNativePlugin* Plugin::carla

Pointer to Carla native plugin.

Definition at line 80 of file plugin.h.

◆ close_request_id

gulong Plugin::close_request_id

ID of the close-request signal for Plugin::window so that we can deactivate before freeing the plugin.

Definition at line 226 of file plugin.h.

◆ ctrl_in_ports

GPtrArray* Plugin::ctrl_in_ports

Definition at line 91 of file plugin.h.

◆ cv_in_ports

GPtrArray* Plugin::cv_in_ports

Definition at line 93 of file plugin.h.

◆ deactivating

bool Plugin::deactivating

Temporary variable to check if plugin is currently undergoing deactivation.

Definition at line 242 of file plugin.h.

◆ deleting

bool Plugin::deleting

Whether the plugin is currently being deleted.

Definition at line 191 of file plugin.h.

◆ destroy_window_id

gulong Plugin::destroy_window_id

ID of the destroy signal for Plugin::window so that we can deactivate before freeing the plugin.

Definition at line 221 of file plugin.h.

◆ enabled

Port* Plugin::enabled

Control for plugin enabled, for convenience.

This port is already in Plugin::in_ports.

Definition at line 109 of file plugin.h.

◆ ev_box

GtkBox* Plugin::ev_box

The GdkWindow of this widget should be somewhere inside Plugin::window and will be used for wrapping plugin UIs in.

Definition at line 212 of file plugin.h.

◆ gain

Port* Plugin::gain

Control for plugin gain, for convenience.

This port is already in Plugin::in_ports.

Definition at line 125 of file plugin.h.

◆ gobj

Used in Gtk.

Definition at line 260 of file plugin.h.

◆ id

PluginIdentifier Plugin::id

Definition at line 77 of file plugin.h.

◆ in_ports

Port** Plugin::in_ports

Ports coming in as input.

Definition at line 86 of file plugin.h.

◆ in_ports_size

size_t Plugin::in_ports_size

Definition at line 88 of file plugin.h.

◆ instantiated

bool Plugin::instantiated

Whether the plugin is currently instantiated or not.

Definition at line 150 of file plugin.h.

◆ instantiation_failed

bool Plugin::instantiation_failed

Set to true if instantiation failed and the plugin will be treated as disabled.

Definition at line 154 of file plugin.h.

◆ is_function

bool Plugin::is_function

Whether the plugin is used for functions.

Definition at line 251 of file plugin.h.

◆ l_out

Port* Plugin::l_out

Instrument left stereo output, for convenience.

This port is already in Plugin::out_ports if instrument.

Definition at line 133 of file plugin.h.

◆ latency

nframes_t Plugin::latency

Latency reported by the Lv2Plugin, if any, in samples.

Definition at line 147 of file plugin.h.

◆ magic

int Plugin::magic

Definition at line 228 of file plugin.h.

◆ midi_in_port

Port* Plugin::midi_in_port

Cache.

Definition at line 97 of file plugin.h.

◆ midi_in_ports

GPtrArray* Plugin::midi_in_ports

Definition at line 94 of file plugin.h.

◆ modulator_widget

ModulatorWidget* Plugin::modulator_widget

Modulator widget, if modulator.

Definition at line 231 of file plugin.h.

◆ ms

MixerSelections* Plugin::ms

Pointer to owner selections, if any.

Definition at line 257 of file plugin.h.

◆ num_banks

int Plugin::num_banks

Definition at line 137 of file plugin.h.

◆ num_in_ports

int Plugin::num_in_ports

Definition at line 87 of file plugin.h.

◆ num_out_ports

int Plugin::num_out_ports

Definition at line 101 of file plugin.h.

◆ out_ports

Port** Plugin::out_ports

Outgoing ports.

Definition at line 100 of file plugin.h.

◆ out_ports_size

size_t Plugin::out_ports_size

Definition at line 102 of file plugin.h.

◆ own_enabled_port

Port* Plugin::own_enabled_port

Whether the plugin has a custom "enabled" port (LV2).

If true, bypass logic will be delegated to the plugin.

Definition at line 118 of file plugin.h.

◆ r_out

Port* Plugin::r_out

Definition at line 134 of file plugin.h.

◆ schema_version

int Plugin::schema_version

Definition at line 75 of file plugin.h.

◆ selected_bank

PluginPresetIdentifier Plugin::selected_bank

Definition at line 140 of file plugin.h.

◆ selected_preset

PluginPresetIdentifier Plugin::selected_preset

Definition at line 141 of file plugin.h.

◆ setting

PluginSetting* Plugin::setting

Setting this plugin was instantiated with.

Definition at line 83 of file plugin.h.

◆ state_changed_event_sent

int Plugin::state_changed_event_sent

Set to true to avoid sending multiple ET_PLUGIN_STATE_CHANGED for the same plugin.

Definition at line 248 of file plugin.h.

◆ state_dir

char* Plugin::state_dir

State directory (only basename).

Used for saving/loading the state.

Note
This is only the directory basename and should go in project/plugins/states.

Definition at line 187 of file plugin.h.

◆ track

Track* Plugin::track

Pointer to owner track, if any.

Definition at line 254 of file plugin.h.

◆ ui_instantiated

int Plugin::ui_instantiated

Whether the UI has finished instantiating.

When instantiating a plugin UI, if it takes too long there is a UI buffer overflow because UI updates are sent in lv2_plugin_process.

This should be set to false until the plugin UI has finished instantiating, and if this is false then no UI updates should be sent to the plugin.

Definition at line 171 of file plugin.h.

◆ ui_scale_factor

float Plugin::ui_scale_factor

Scale factor for drawing UIs in scale of the monitor.

Definition at line 177 of file plugin.h.

◆ ui_update_hz

float Plugin::ui_update_hz

Update frequency of the UI, in Hz (times per second).

Definition at line 174 of file plugin.h.

◆ update_ui_source_id

guint Plugin::update_ui_source_id

ID of GSource (if > 0).

See also
update_plugin_ui().

Definition at line 238 of file plugin.h.

◆ vbox

GtkBox* Plugin::vbox

Vbox containing the above ev_box for wrapping, or used for packing generic UI controls.

Definition at line 216 of file plugin.h.

◆ visible

bool Plugin::visible

Whether plugin UI is opened or not.

Definition at line 144 of file plugin.h.

◆ window

GtkWindow* Plugin::window

The Plugin's window.

This is used for both generic UIs and for X11/Windows when plugins are wrapped.

LV2 plugin UIs are only not wrapped when they have external UIs. In that case, this must be NULL.

Definition at line 207 of file plugin.h.


The documentation for this struct was generated from the following file: