Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::plugins::CarlaNativePlugin Class Reference
Inheritance diagram for zrythm::plugins::CarlaNativePlugin:
Collaboration diagram for zrythm::plugins::CarlaNativePlugin:

Public Member Functions

 CarlaNativePlugin (ProcessorBaseDependencies dependencies)
 Creates/initializes a plugin using the given setting.
 ~CarlaNativePlugin () override
 Deactivates, cleanups and frees the instance.
void save_state (bool is_backup, std::optional< fs::path > abs_state_dir) override
void load_state (std::optional< fs::path > abs_path)
 Loads the state from the given file or from its state file.
void update_buffer_size_and_sample_rate ()
void open_custom_ui (bool show) override
 Shows or hides the UI.
dsp::ProcessorParameterget_param_from_param_id (uint32_t id)
 Returns the plugin Port corresponding to the given parameter.
dsp::MidiPortget_midi_out_port ()
 Returns the MIDI out port.
float get_param_value (uint32_t id)
void set_param_value (uint32_t id, float val)
 Called from port_set_control_value() to send the value to carla.
void close () override
nframes_t get_single_playback_latency () const override
 Returns the latency in samples.
bool add_internal_plugin_from_descr (const PluginDescriptor &descr)
 Adds the internal plugin from the given descriptor.
Public Member Functions inherited from zrythm::plugins::Plugin
int programIndex () const
 Returns the current program index, or -1 if no program exists.
void setProgramIndex (int index)
Q_SIGNAL void programIndexChanged (int index)
 Implementations should attach to this and set the program.
PluginConfigurationconfiguration () const
Q_SIGNAL void configurationChanged (PluginConfiguration *configuration)
 Emitted when the configuration is set on the plugin.
dsp::ProcessorParameterbypassParameter () const
dsp::ProcessorParametergainParameter () const
bool uiVisible () const
void setUiVisible (bool visible)
Q_SIGNAL void uiVisibleChanged (bool visible)
 Implementations should listen to this and show/hide the plugin UI accordingly.
InstantiationStatus instantiationStatus () const
Q_SIGNAL void instantiationStatusChanged (InstantiationStatus status)
Q_SIGNAL void instantiationFinished (bool successful, const QString &error)
 To be emitted by implementations when instantiation finished.
PluginDescriptorget_descriptor () const
utils::Utf8String get_name () const
Protocol::ProtocolType get_protocol () const
void set_configuration (const PluginConfiguration &setting)
 Sets the plugin setting to use.
void custom_prepare_for_processing (const dsp::graph::GraphNode *node, units::sample_rate_t sample_rate, nframes_t max_block_length) final
void custom_process_block (EngineProcessTimeInfo time_nfo, const dsp::ITransport &transport) noexcept final
 Custom processor logic after processing all owned parameters.
void custom_release_resources () final
fs::path get_state_directory () const
bool currently_enabled () const
 Returns whether the plugin is enabled (not bypassed).
bool currently_enabled_rt () const noexcept
virtual void save_state (std::optional< fs::path > abs_state_dir)=0
 Saves the state inside the standard state directory.
Public Member Functions inherited from zrythm::dsp::ProcessorBase
 ProcessorBase (ProcessorBaseDependencies dependencies, utils::Utf8String name={ u8"ProcessorBase" })
void set_name (const utils::Utf8String &name)
 Set a custom name to be used in the DSP graph.
void add_input_port (const dsp::PortUuidReference &uuid)
void add_output_port (const dsp::PortUuidReference &uuid)
void add_parameter (const dsp::ProcessorParameterUuidReference &uuid)
auto & get_input_ports () const
auto & get_output_ports () const
auto & get_parameters () const
utils::Utf8String get_node_name () const final
 Returns a human friendly name of the node.
void process_block (EngineProcessTimeInfo time_nfo, const dsp::ITransport &transport) noexcept final
 Calls custom_process_block() internally after processing all the parameters.
void prepare_for_processing (const graph::GraphNode *node, units::sample_rate_t sample_rate, nframes_t max_block_length) final
 Called to allocate resources required for processing.
void release_resources () final
 Called to release resources allocated by prepare_for_processing().
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< Plugin >
UuidIdentifiableObject & operator= (const UuidIdentifiableObject &other)=default
auto get_uuid () const

Static Public Member Functions

static bool has_custom_ui (const PluginDescriptor &descr)

Data Fields

unsigned int carla_plugin_id_ = 0
 Plugin ID inside carla engine.
bool ports_created_ = false
 Whether ports are already created or not.
bool loading_state_ = false
 Flag.
unsigned int audio_input_port_id_ = 0
 Port ID of first audio input (for connecting inside patchbay).
unsigned int audio_output_port_id_ = 0
 Port ID of first audio output (for connecting inside patchbay).
unsigned int cv_input_port_id_ = 0
 Port ID of first cv input (for connecting inside patchbay).
unsigned int cv_output_port_id_ = 0
 Port ID of first cv output (for connecting inside patchbay).
unsigned int midi_input_port_id_ = 0
 Port ID of first midi input (for connecting inside patchbay).
unsigned int midi_output_port_id_ = 0
 Port ID of first midi output (for connecting inside patchbay).
std::vector< CarlaPatchbayPortInfopatchbay_port_info_
 Used when connecting Carla's internal plugin to patchbay ports.
std::vector< std::vector< float > > zero_inbufs_
 Idle callback for the plugin UI.
std::vector< std::vector< float > > zero_outbufs_
std::vector< const float * > inbufs_
std::vector< float * > outbufs_
unsigned int max_variant_audio_ins_ = 0
unsigned int max_variant_audio_outs_ = 0
unsigned int max_variant_cv_ins_ = 0
unsigned int max_variant_cv_outs_ = 0
unsigned int max_variant_midi_ins_ = 0
unsigned int max_variant_midi_outs_ = 0

Friends

void init_from (CarlaNativePlugin &obj, const CarlaNativePlugin &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const CarlaNativePlugin &plugin)
void from_json (const nlohmann::json &j, CarlaNativePlugin &plugin)

Additional Inherited Members

Public Types inherited from zrythm::plugins::Plugin
enum class  InstantiationStatus : std::uint8_t { Pending , Successful , Failed }
using StateDirectoryParentPathProvider = std::function<fs::path ()>
 Returns the parent path where the plugin should save its state directory in (or load it).
Protected Member Functions inherited from zrythm::plugins::Plugin
 Plugin (ProcessorBaseDependencies dependencies, StateDirectoryParentPathProvider state_path_provider, QObject *parent)
 Creates/initializes a plugin and its internal plugin (LV2, etc.) using the given setting.
dsp::ProcessorParameterUuidReference generate_default_bypass_param () const
 To be called by implementations to generate the default bypass parameter if the plugin does not provide its own.
dsp::ProcessorParameterUuidReference generate_default_gain_param () const
 To be called by implementations to generate the default gain parameter if the plugin does not provide its own.
Protected Member Functions inherited from zrythm::dsp::ProcessorBase
auto dependencies () const
Protected Attributes inherited from zrythm::plugins::Plugin
bool instantiation_failed_ = false
 Set to true if instantiation failed and the plugin will be treated as disabled.
StateDirectoryParentPathProvider state_dir_parent_path_provider_
 Plugins should create a state directory with their UUID as the directory name under the path provided by this.
std::optional< dsp::ProcessorParameter::Uuid > bypass_id_
 Bypass toggle parameter,.
std::optional< dsp::ProcessorParameter::Uuid > gain_id_
 Zrythm-provided plugin gain parameter.
std::vector< dsp::AudioPort * > audio_in_ports_
std::vector< dsp::AudioPort * > audio_out_ports_
std::vector< dsp::CVPort * > cv_in_ports_
dsp::MidiPortmidi_in_port_ {}
dsp::MidiPortmidi_out_port_ {}
dsp::ProcessorParameterbypass_param_rt_ {}
Properties inherited from zrythm::plugins::Plugin
int programIndex
zrythm::plugins::PluginConfigurationconfiguration
zrythm::dsp::ProcessorParameterbypassParameter
zrythm::dsp::ProcessorParametergainParameter
bool uiVisible
InstantiationStatus instantiationStatus

Detailed Description

Definition at line 63 of file carla_native_plugin.h.


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