Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::gui::old_dsp::plugins::PluginDescriptor Class Referencefinal

The PluginDescriptor class provides a set of static utility functions and member functions to work with plugin descriptors. More...

#include <src/gui/dsp/plugin_descriptor.h>

Inheritance diagram for zrythm::gui::old_dsp::plugins::PluginDescriptor:
Collaboration diagram for zrythm::gui::old_dsp::plugins::PluginDescriptor:

Public Member Functions

bool is_instrument () const
 
bool is_effect () const
 
bool is_modulator () const
 
bool is_midi_modifier () const
 
bool is_valid_for_slot_type (PluginSlotType slot_type, int track_type) const
 Returns if this can be dropped in a slot of the given type.
 
bool is_same_plugin (const PluginDescriptor &other) const
 Returns whether the two descriptors describe the same plugin, ignoring irrelevant fields.
 
bool has_custom_ui () const
 Returns if the Plugin has a supported custom UI.
 
CarlaBridgeMode get_min_bridge_mode () const
 Returns the minimum bridge mode required for this plugin.
 
bool is_whitelisted () const
 Returns whether the plugin is known to work, so it should be whitelisted.
 
utils::Utf8String get_icon_name () const
 Gets an appropriate icon name.
 
QString getName () const
 
void init_after_cloning (const PluginDescriptor &other, ObjectCloneType clone_type) override
 
- Public Member Functions inherited from ICloneable< PluginDescriptor >
std::unique_ptr< PluginDescriptor > clone_unique (ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const
 
std::shared_ptr< PluginDescriptor > clone_shared (ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const
 
PluginDescriptor * clone_raw_ptr (ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const
 
PluginDescriptor * clone_qobject (QObject *parent, ObjectCloneType clone_type=ObjectCloneType::Snapshot, Args &&... args) const
 

Static Public Member Functions

static ZPluginCategory string_to_category (const utils::Utf8String &str)
 
static utils::Utf8String category_to_string (ZPluginCategory category)
 

Data Fields

utils::Utf8String author_
 
utils::Utf8String name_
 
utils::Utf8String website_
 
ZPluginCategory category_ = ZPluginCategory::NONE
 
utils::Utf8String category_str_
 Lv2 plugin subcategory.
 
int num_audio_ins_ = 0
 Number of audio input ports.
 
int num_midi_ins_ = 0
 Number of MIDI input ports.
 
int num_audio_outs_ = 0
 Number of audio output ports.
 
int num_midi_outs_ = 0
 Number of MIDI output ports.
 
int num_ctrl_ins_ = 0
 Number of input control (plugin param) ports.
 
int num_ctrl_outs_ = 0
 Number of output control (plugin param) ports.
 
int num_cv_ins_ = 0
 Number of input CV ports.
 
int num_cv_outs_ = 0
 Number of output CV ports.
 
PluginArchitecture arch_ = PluginArchitecture::ARCH_32_BIT
 Architecture (32/64bit).
 
Protocol::ProtocolType protocol_ = Protocol::ProtocolType::Internal
 Plugin protocol (Lv2/DSSI/LADSPA/VST/etc.).
 
fs::path path_
 Path, if not an Lv2Plugin which uses URIs.
 
utils::Utf8String uri_
 Lv2Plugin URI.
 
int64_t unique_id_ = 0
 Used for VST.
 
CarlaBridgeMode min_bridge_mode_ = CarlaBridgeMode::None
 Minimum required bridge mode.
 
bool has_custom_ui_ = false
 
unsigned int ghash_ = 0
 Hash of the plugin's bundle (.so/.ddl for VST) used when caching PluginDescriptor's, obtained using g_file_hash().
 
std::string sha1_
 SHA1 of the file (replaces ghash).
 
- Data Fields inherited from ICloneable< PluginDescriptor >
friend Derived
 

Properties

QML_ELEMENT QString name
 

Friends

void to_json (nlohmann::json &j, const PluginDescriptor &p)
 
void from_json (const nlohmann::json &j, PluginDescriptor &p)
 

Detailed Description

The PluginDescriptor class provides a set of static utility functions and member functions to work with plugin descriptors.

It contains information about a plugin such as its name, author, category, protocol, and various port counts.

The static utility functions are used to convert between different plugin-related enumerations and strings, as well as to determine if a plugin protocol is supported.

The member functions provide information about the plugin, such as whether it is an instrument, effect, modulator, or MIDI modifier, whether it is valid for a given slot type and track type, whether it has a custom UI, the minimum required bridge mode, and whether it is whitelisted.

The PluginDescriptor also contains various fields that store the plugin's metadata, such as its author, name, website, category, port counts, architecture, protocol, and unique ID (for VST plugins).

Definition at line 112 of file plugin_descriptor.h.

Member Function Documentation

◆ getName()

QString zrythm::gui::old_dsp::plugins::PluginDescriptor::getName ( ) const
inlinenodiscard

Definition at line 166 of file plugin_descriptor.h.

◆ is_whitelisted()

bool zrythm::gui::old_dsp::plugins::PluginDescriptor::is_whitelisted ( ) const

Returns whether the plugin is known to work, so it should be whitelisted.

Non-whitelisted plugins will run in full bridge mode. This is to prevent crashes when Zrythm is not at fault.

These must all be free-software plugins so that they can be debugged if issues arise.

Friends And Related Symbol Documentation

◆ from_json

void from_json ( const nlohmann::json & j,
PluginDescriptor & p )
friend

Definition at line 222 of file plugin_descriptor.h.

◆ to_json

void to_json ( nlohmann::json & j,
const PluginDescriptor & p )
friend

Definition at line 195 of file plugin_descriptor.h.

Field Documentation

◆ arch_

PluginArchitecture zrythm::gui::old_dsp::plugins::PluginDescriptor::arch_ = PluginArchitecture::ARCH_32_BIT

Architecture (32/64bit).

Definition at line 272 of file plugin_descriptor.h.

◆ author_

utils::Utf8String zrythm::gui::old_dsp::plugins::PluginDescriptor::author_

Definition at line 249 of file plugin_descriptor.h.

◆ category_

ZPluginCategory zrythm::gui::old_dsp::plugins::PluginDescriptor::category_ = ZPluginCategory::NONE

Definition at line 252 of file plugin_descriptor.h.

◆ category_str_

utils::Utf8String zrythm::gui::old_dsp::plugins::PluginDescriptor::category_str_

Lv2 plugin subcategory.

Definition at line 254 of file plugin_descriptor.h.

◆ ghash_

unsigned int zrythm::gui::old_dsp::plugins::PluginDescriptor::ghash_ = 0

Hash of the plugin's bundle (.so/.ddl for VST) used when caching PluginDescriptor's, obtained using g_file_hash().

Deprecated
Kept so that older projects still work.

Definition at line 294 of file plugin_descriptor.h.

◆ has_custom_ui_

bool zrythm::gui::old_dsp::plugins::PluginDescriptor::has_custom_ui_ = false

Definition at line 286 of file plugin_descriptor.h.

◆ min_bridge_mode_

CarlaBridgeMode zrythm::gui::old_dsp::plugins::PluginDescriptor::min_bridge_mode_ = CarlaBridgeMode::None

Minimum required bridge mode.

Definition at line 284 of file plugin_descriptor.h.

◆ name_

utils::Utf8String zrythm::gui::old_dsp::plugins::PluginDescriptor::name_

Definition at line 250 of file plugin_descriptor.h.

◆ num_audio_ins_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_audio_ins_ = 0

Number of audio input ports.

Definition at line 256 of file plugin_descriptor.h.

◆ num_audio_outs_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_audio_outs_ = 0

Number of audio output ports.

Definition at line 260 of file plugin_descriptor.h.

◆ num_ctrl_ins_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_ctrl_ins_ = 0

Number of input control (plugin param) ports.

Definition at line 264 of file plugin_descriptor.h.

◆ num_ctrl_outs_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_ctrl_outs_ = 0

Number of output control (plugin param) ports.

Definition at line 266 of file plugin_descriptor.h.

◆ num_cv_ins_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_cv_ins_ = 0

Number of input CV ports.

Definition at line 268 of file plugin_descriptor.h.

◆ num_cv_outs_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_cv_outs_ = 0

Number of output CV ports.

Definition at line 270 of file plugin_descriptor.h.

◆ num_midi_ins_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_midi_ins_ = 0

Number of MIDI input ports.

Definition at line 258 of file plugin_descriptor.h.

◆ num_midi_outs_

int zrythm::gui::old_dsp::plugins::PluginDescriptor::num_midi_outs_ = 0

Number of MIDI output ports.

Definition at line 262 of file plugin_descriptor.h.

◆ path_

fs::path zrythm::gui::old_dsp::plugins::PluginDescriptor::path_

Path, if not an Lv2Plugin which uses URIs.

Definition at line 276 of file plugin_descriptor.h.

◆ protocol_

Protocol::ProtocolType zrythm::gui::old_dsp::plugins::PluginDescriptor::protocol_ = Protocol::ProtocolType::Internal

Plugin protocol (Lv2/DSSI/LADSPA/VST/etc.).

Definition at line 274 of file plugin_descriptor.h.

◆ sha1_

std::string zrythm::gui::old_dsp::plugins::PluginDescriptor::sha1_

SHA1 of the file (replaces ghash).

Definition at line 297 of file plugin_descriptor.h.

◆ unique_id_

int64_t zrythm::gui::old_dsp::plugins::PluginDescriptor::unique_id_ = 0

Used for VST.

Definition at line 281 of file plugin_descriptor.h.

◆ uri_

utils::Utf8String zrythm::gui::old_dsp::plugins::PluginDescriptor::uri_

Lv2Plugin URI.

Definition at line 278 of file plugin_descriptor.h.

◆ website_

utils::Utf8String zrythm::gui::old_dsp::plugins::PluginDescriptor::website_

Definition at line 251 of file plugin_descriptor.h.

Property Documentation

◆ name

QML_ELEMENT QString zrythm::gui::old_dsp::plugins::PluginDescriptor::name
read

Definition at line 116 of file plugin_descriptor.h.


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