Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::plugins::InternalPluginBase Class Reference

A base class for internal plugins. More...

#include <src/plugins/internal_plugin_base.h>

Inheritance diagram for zrythm::plugins::InternalPluginBase:
Collaboration diagram for zrythm::plugins::InternalPluginBase:

Public Member Functions

 InternalPluginBase (dsp::ProcessorBase::ProcessorBaseDependencies dependencies, QObject *parent=nullptr)
 Constructor for InternalPluginBase.
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, bool generateNewPluginPortsAndParams)
 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 configuration to use.
void custom_prepare_for_processing (const dsp::graph::GraphNode *node, units::sample_rate_t sample_rate, units::sample_u32_t max_block_length) final
void custom_process_block (dsp::graph::EngineProcessTimeInfo time_nfo, const dsp::ITransport &transport, const dsp::TempoMap &tempo_map) noexcept final
 Custom processor logic after processing all owned parameters.
void custom_release_resources () final
bool currently_enabled () const
 Returns whether the plugin is enabled (not bypassed).
bool currently_enabled_rt () const noexcept
std::string save_state () const
 Serializes the plugin's internal state to a base64-encoded string.
void load_state (const std::string &base64_state)
 Queues a previously saved state to be applied to the plugin.
void flush_plugin_values ()
 Flushes plugin-reported parameter values to Zrythm params.
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
const ParameterChangeTrackerchange_tracker () const noexcept
 Returns the change tracker.
utils::Utf8String get_node_name () const final
 Returns a human friendly name of the node.
void process_block (dsp::graph::EngineProcessTimeInfo time_nfo, const dsp::ITransport &transport, const dsp::TempoMap &tempo_map) 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, units::sample_u32_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::dsp::graph::IProcessable
virtual units::sample_u32_t get_single_playback_latency () const
 Returns the latency of only the given processable, without adding the previous/next latencies (zero latency by default).
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< Plugin >
UuidIdentifiableObject & operator= (const UuidIdentifiableObject &other)=default
auto get_uuid () const

Protected Member Functions

void prepare_for_processing_impl (units::sample_rate_t sample_rate, units::sample_u32_t max_block_length) override
void process_impl (dsp::graph::EngineProcessTimeInfo time_info) noexcept override
std::string save_state_impl () const override
void load_state_impl (const std::string &) override
Protected Member Functions inherited from zrythm::plugins::Plugin
 Plugin (ProcessorBaseDependencies dependencies, 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

Additional Inherited Members

Public Types inherited from zrythm::plugins::Plugin
enum class  InstantiationStatus : std::uint8_t { Pending , Successful , Failed }
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.
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_ {}
ParamSync param_sync_
Properties inherited from zrythm::plugins::Plugin
int programIndex
zrythm::plugins::PluginConfigurationconfiguration
zrythm::dsp::ProcessorParameterbypassParameter
zrythm::dsp::ProcessorParametergainParameter
bool uiVisible
InstantiationStatus instantiationStatus

Detailed Description

A base class for internal plugins.

This plugin on its own simply passes audio through without any processing.

Definition at line 16 of file internal_plugin_base.h.

Constructor & Destructor Documentation

◆ InternalPluginBase()

zrythm::plugins::InternalPluginBase::InternalPluginBase ( dsp::ProcessorBase::ProcessorBaseDependencies dependencies,
QObject * parent = nullptr )

Constructor for InternalPluginBase.

Parameters
dependenciesProcessor dependencies
parentParent QObject

Member Function Documentation

◆ load_state_impl()

void zrythm::plugins::InternalPluginBase::load_state_impl ( const std::string & )
inlineoverrideprotectedvirtual

Implements zrythm::plugins::Plugin.

Definition at line 44 of file internal_plugin_base.h.

◆ prepare_for_processing_impl()

void zrythm::plugins::InternalPluginBase::prepare_for_processing_impl ( units::sample_rate_t sample_rate,
units::sample_u32_t max_block_length )
overrideprotectedvirtual

Reimplemented from zrythm::plugins::Plugin.

◆ process_impl()

void zrythm::plugins::InternalPluginBase::process_impl ( dsp::graph::EngineProcessTimeInfo time_info)
overrideprotectedvirtualnoexcept

◆ save_state_impl()

std::string zrythm::plugins::InternalPluginBase::save_state_impl ( ) const
inlineoverrideprotectedvirtual

Implements zrythm::plugins::Plugin.

Definition at line 43 of file internal_plugin_base.h.


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