10#include "zrythm-config.h"
12#ifndef __PLUGINS_CARLA_NATIVE_PLUGIN_H__
13# define __PLUGINS_CARLA_NATIVE_PLUGIN_H__
16# include <CarlaNativePlugin.h>
17# include <CarlaUtils.h>
21typedef void * CarlaPluginHandle;
29# define CARLA_STATE_FILENAME "state.carla"
38 CARLA_PLUGIN_PATCHBAY,
39 CARLA_PLUGIN_PATCHBAY16,
40 CARLA_PLUGIN_PATCHBAY32,
41 CARLA_PLUGIN_PATCHBAY64,
46 unsigned int plugin_id;
47 unsigned int port_hints;
55 NativePluginHandle native_plugin_handle;
56 NativeHostDescriptor native_host_descriptor;
57 const NativePluginDescriptor * native_plugin_descriptor;
59 CarlaHostHandle host_handle;
63 NativeTimeInfo time_info;
112 float ** zero_outbufs;
116 unsigned int max_variant_audio_ins;
117 unsigned int max_variant_audio_outs;
118 unsigned int max_variant_cv_ins;
119 unsigned int max_variant_cv_outs;
120 unsigned int max_variant_midi_ins;
121 unsigned int max_variant_midi_outs;
140int carla_native_plugin_new_from_setting (
Plugin * plugin, GError ** error);
147carla_native_plugin_get_descriptor_from_cached (
148 const CarlaCachedPluginInfo * info,
162WARN_UNUSED_RESULT
bool
163carla_native_plugin_save_state (
166 const
char * abs_state_dir,
176carla_native_plugin_load_state (
178 const
char * abs_path,
185carla_native_plugin_update_buffer_size_and_sample_rate (
199int carla_native_plugin_instantiate (
209carla_native_plugin_get_abs_state_file_path (
211 const bool is_backup);
217HOT NONNULL OPTIMIZE_O3
void
218carla_native_plugin_process (
233carla_native_plugin_get_port_from_param_id (
244carla_native_plugin_get_param_value (
CarlaNativePlugin * self,
const uint32_t
id);
253carla_native_plugin_set_param_value (
274carla_native_plugin_add_internal_plugin_from_descr (
NONNULL_ARGS(1) int undo_manager_undo(UndoManager *self
Undo last action.
CarlaPluginType
The type of the Carla plugin.
uint32_t nframes_t
Frame count.
unsigned int cv_input_port_id
Port ID of first cv input (for connecting inside patchbay).
unsigned int cv_output_port_id
Port ID of first cv output (for connecting inside patchbay).
bool ports_created
Whether ports are already created or not.
unsigned int audio_input_port_id
Port ID of first audio input (for connecting inside patchbay).
unsigned int carla_plugin_id
Plugin ID inside carla engine.
unsigned int audio_output_port_id
Port ID of first audio output (for connecting inside patchbay).
float ** zero_inbufs
Used during processing.
guint tick_cb
GTK tick callback.
unsigned int midi_output_port_id
Port ID of first midi output (for connecting inside patchbay).
Plugin * plugin
Pointer back to Plugin.
GPtrArray * patchbay_port_info
Used when connecting Carla's internal plugin to patchbay ports.
unsigned int midi_input_port_id
Port ID of first midi input (for connecting inside patchbay).
Common struct to pass around during processing to avoid repeating the data in function arguments.
The base plugin Inheriting plugins must have this as a child.
Must ONLY be created via port_new()