|
Zrythm
a highly automated and intuitive digital audio workstation
|
Base plugin. More...
#include "zrythm-config.h"#include "dsp/port.h"#include "plugins/plugin_descriptor.h"#include "plugins/plugin_identifier.h"#include "plugins/plugin_preset.h"#include "settings/plugin_settings.h"#include "utils/types.h"

Go to the source code of this file.
Data Structures | |
| struct | Plugin |
| The base plugin Inheriting plugins must have this as a child. More... | |
Macros | |
| #define | PLUGIN_SCHEMA_VERSION 1 |
| #define | PLUGIN_MAGIC 43198683 |
| #define | IS_PLUGIN(x) (((Plugin *) x)->magic == PLUGIN_MAGIC) |
| #define | IS_PLUGIN_AND_NONNULL(x) (x && IS_PLUGIN (x)) |
| #define | PLUGIN_DEFAULT_BANK_URI "https://lv2.zrythm.org#default-bank" |
| #define | PLUGIN_INIT_PRESET_URI "https://lv2.zrythm.org#init-preset" |
| #define | PLUGIN_MIN_REFRESH_RATE 30.f |
| Plugin UI refresh rate limits. | |
| #define | PLUGIN_MAX_REFRESH_RATE 121.f |
| #define | PLUGIN_MIN_SCALE_FACTOR 0.5f |
| Plugin UI scale factor limits. | |
| #define | PLUGIN_MAX_SCALE_FACTOR 4.f |
| #define | plugin_is_in_active_project(self) (self->track && track_is_in_active_project (self->track)) |
| #define | plugin_is_auditioner(self) (self->track && track_is_auditioner (self->track)) |
| Whether the plugin is used for MIDI auditioning in SampleProcessor. | |
Typedefs | |
| typedef struct _ModulatorWidget | ModulatorWidget |
| typedef struct Lv2Plugin | Lv2Plugin |
| typedef struct _WrappedObjectWithChangeSignal | WrappedObjectWithChangeSignal |
Functions | |
| void | plugin_init_loaded (Plugin *self, Track *track, MixerSelections *ms) |
| NONNULL void | plugin_add_automation_track (Plugin *self, AutomationTrack *at) |
| Adds an AutomationTrack to the Plugin. | |
| NONNULL void | plugin_add_in_port (Plugin *pl, Port *port) |
| Adds an in port to the plugin's list. | |
| NONNULL void | plugin_add_out_port (Plugin *pl, Port *port) |
| Adds an out port to the plugin's list. | |
| Plugin * | plugin_new_from_setting (PluginSetting *setting, unsigned int track_name_hash, ZPluginSlotType slot_type, int slot, GError **error) |
| Creates/initializes a plugin and its internal plugin (LV2, etc.) using the given setting. | |
| Plugin * | plugin_new_dummy (ZPluginCategory cat, unsigned int track_name_hash, int slot) |
| Create a dummy plugin for tests. | |
| NONNULL void | plugin_set_ui_refresh_rate (Plugin *self) |
| Sets the UI refresh rate on the Plugin. | |
| NONNULL Port * | plugin_get_enabled_port (Plugin *self) |
| Gets the enable/disable port for this plugin. | |
| NONNULL bool | plugin_validate (Plugin *self) |
| Verifies that the plugin identifiers are valid. | |
| void | plugin_print (Plugin *self, char *buf, size_t buf_sz) |
| Prints the plugin to the buffer, if any, or to the log. | |
| NONNULL void | plugin_remove_ats_from_automation_tracklist (Plugin *pl, bool free_ats, bool fire_events) |
| Removes the automation tracks associated with this plugin from the automation tracklist in the corresponding track. | |
| NONNULL_ARGS (1) Plugin *plugin_clone(Plugin *src | |
| Clones the given plugin. | |
| void | plugin_get_full_port_group_designation (Plugin *self, const char *port_group, char *buf) |
| NONNULL Port * | plugin_get_port_in_group (Plugin *self, const char *port_group, bool left) |
| NONNULL Port * | plugin_get_port_in_same_group (Plugin *self, Port *port) |
| Find corresponding port in the same port group (eg, if this is left, find right and vice versa). | |
| NONNULL int | plugin_activate (Plugin *pl, bool activate) |
| Activates or deactivates the plugin. | |
| NONNULL void | plugin_move (Plugin *pl, Track *track, ZPluginSlotType slot_type, int slot, bool confirm_overwrite, bool fire_events) |
| Moves the plugin to the given slot in the given channel. | |
| NONNULL void | plugin_set_track_and_slot (Plugin *pl, unsigned int track_name_hash, ZPluginSlotType slot_type, int slot) |
| Sets the channel and slot on the plugin and its ports. | |
| NONNULL void | plugin_move_automation (Plugin *pl, Track *prev_track, Track *track, ZPluginSlotType new_slot_type, int new_slot) |
| Moves the Plugin's automation from one Channel to another. | |
| NONNULL void | plugin_append_ports (Plugin *self, GPtrArray *ports) |
| NONNULL void | plugin_expose_ports (Plugin *pl, bool expose, bool inputs, bool outputs) |
| Exposes or unexposes plugin ports to the backend. | |
| NONNULL Port * | plugin_get_port_by_symbol (Plugin *pl, const char *sym) |
| Gets a port by its symbol. | |
| NONNULL MALLOC char * | plugin_get_escaped_name (Plugin *pl) |
| Returns the escaped name of the plugin. | |
| int | plugin_copy_state_dir (Plugin *self, Plugin *src, bool is_backup, const char *abs_state_dir) |
| Copies the state directory from the given source plugin to the given destination plugin's state directory. | |
| NONNULL MALLOC char * | plugin_get_abs_state_dir (Plugin *self, bool is_backup, bool create_if_not_exists) |
| Returns the state dir as an absolute path. | |
| NONNULL WARN_UNUSED_RESULT bool | plugin_ensure_state_dir (Plugin *self, bool is_backup, GError **error) |
| Ensures the state dir exists or creates it. | |
| NONNULL void | plugin_get_all (Project *prj, GPtrArray *arr, bool check_undo_manager) |
| Returns all plugins in the current project. | |
| NONNULL Plugin * | plugin_find (const PluginIdentifier *id) |
| NONNULL void | plugin_update_identifier (Plugin *self) |
| To be called when changes to the plugin identifier were made, so we can update all children recursively. | |
| NONNULL void | plugin_update_latency (Plugin *pl) |
| Updates the plugin's latency. | |
| NONNULL void | plugin_generate_automation_tracks (Plugin *plugin, Track *track) |
| Generates automatables for the plugin. | |
| HOT NONNULL OPTIMIZE_O3 void | plugin_prepare_process (Plugin *self) |
| Prepare plugin for processing. | |
| NONNULL void | plugin_set_track_name_hash (Plugin *pl, unsigned int track_name_hash) |
| Sets the track name hash on the plugin. | |
| NONNULL HOT void | plugin_process (Plugin *plugin, const EngineProcessTimeInfo *const time_nfo) |
| Process plugin. | |
| NONNULL MALLOC char * | plugin_generate_window_title (Plugin *plugin) |
| NONNULL void | plugin_open_ui (Plugin *plugin) |
| Process show ui. | |
| NONNULL bool | plugin_is_selected (Plugin *pl) |
| Returns if Plugin exists in MixerSelections. | |
| NONNULL void | plugin_select (Plugin *self, bool select, bool exclusive) |
| Selects the plugin in the MixerSelections. | |
| NONNULL bool | plugin_is_enabled (Plugin *self, bool check_track) |
| Returns whether the plugin is enabled. | |
| NONNULL void | plugin_set_enabled (Plugin *self, bool enabled, bool fire_events) |
| HOT NONNULL void | plugin_process_passthrough (Plugin *self, const EngineProcessTimeInfo *const time_nfo) |
| Processes the plugin by passing through the input to its output. | |
| NONNULL int | plugin_get_event_ports (Plugin *pl, Port **ports, int input) |
| Returns the event ports in the plugin. | |
| NONNULL void | plugin_close_ui (Plugin *plugin) |
| Process hide ui. | |
| NONNULL void | plugin_update_automatables (Plugin *plugin) |
| (re)Generates automatables for the plugin. | |
| PluginBank * | plugin_add_bank_if_not_exists (Plugin *self, const char *uri, const char *name) |
| NONNULL void | plugin_add_preset_to_bank (Plugin *self, PluginBank *bank, PluginPreset *preset) |
| NONNULL void | plugin_set_selected_bank_from_index (Plugin *self, int idx) |
| NONNULL void | plugin_set_selected_preset_from_index (Plugin *self, int idx) |
| NONNULL void | plugin_set_selected_preset_by_name (Plugin *self, const char *name) |
| NONNULL void | plugin_set_caches (Plugin *self) |
| Sets caches for processing. | |
| NONNULL void | plugin_connect_to_plugin (Plugin *src, Plugin *dest) |
| Connect the output Ports of the given source Plugin to the input Ports of the given destination Plugin. | |
| NONNULL void | plugin_disconnect_from_plugin (Plugin *src, Plugin *dest) |
| Disconnect the automatic connections from the given source Plugin to the given destination Plugin. | |
| NONNULL void | plugin_connect_to_prefader (Plugin *pl, Channel *ch) |
| Connects the Plugin's output Port's to the input Port's of the given Channel's prefader. | |
| NONNULL void | plugin_disconnect_from_prefader (Plugin *pl, Channel *ch) |
| Disconnect the automatic connections from the Plugin to the Channel's prefader (if last Plugin). | |
| NONNULL void | plugin_disconnect (Plugin *plugin) |
| To be called immediately when a channel or plugin is deleted. | |
| NONNULL void | plugin_delete_state_files (Plugin *self) |
| Deletes any state files associated with this plugin. | |
| NONNULL int | plugin_cleanup (Plugin *self) |
| Cleans up an instantiated but not activated plugin. | |
| NONNULL void | plugin_free (Plugin *plugin) |
| Frees given plugin, breaks all its port connections, and frees its ports and other internal pointers. | |
Variables | |
| GError ** | error |
Base plugin.
Definition in file plugin.h.