Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::VST3Plugin Class Reference

#include <vst3_plugin.h>

Inheritance diagram for ARDOUR::VST3Plugin:
[legend]

Classes

struct  PV
 

Public Member Functions

 VST3Plugin (AudioEngine &, Session &, Steinberg::VST3PI *)
 
 VST3Plugin (const VST3Plugin &)
 
 ~VST3Plugin ()
 
std::string unique_id () const
 
const char * name () const
 
const char * label () const
 
const char * maker () const
 
uint32_t parameter_count () const
 
float default_value (uint32_t port)
 
void set_parameter (uint32_t port, float val, sampleoffset_t when)
 
float get_parameter (uint32_t port) const
 
int get_parameter_descriptor (uint32_t which, ParameterDescriptor &) const
 
uint32_t nth_parameter (uint32_t port, bool &ok) const
 
bool print_parameter (uint32_t, std::string &) const
 
bool parameter_is_audio (uint32_t) const
 
bool parameter_is_control (uint32_t) const
 
bool parameter_is_input (uint32_t) const
 
bool parameter_is_output (uint32_t) const
 
uint32_t designated_bypass_port ()
 
std::set< Evoral::Parameterautomatable () const
 
std::string describe_parameter (Evoral::Parameter)
 
IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const
 
PluginOutputConfiguration possible_output () const
 
void set_automation_control (uint32_t, std::shared_ptr< ARDOUR::AutomationControl >)
 
std::string state_node_name () const
 
void add_state (XMLNode *) const
 
int set_state (const XMLNode &, int version)
 
bool load_preset (PresetRecord)
 
std::string do_save_preset (std::string)
 
void do_remove_preset (std::string)
 
void activate ()
 
void deactivate ()
 
int set_block_size (pframes_t)
 
void set_owner (ARDOUR::SessionObject *o)
 
void set_non_realtime (bool)
 
void add_slave (std::shared_ptr< Plugin >, bool)
 
void remove_slave (std::shared_ptr< Plugin >)
 
int connect_and_run (BufferSet &bufs, samplepos_t start, samplepos_t end, double speed, ChanMapping const &in, ChanMapping const &out, pframes_t nframes, samplecnt_t offset)
 
bool has_editor () const
 
Steinberg::IPlugView * view ()
 
void close_view ()
 
void update_contoller_param ()
 
- Public Member Functions inherited from ARDOUR::Plugin
 Plugin (ARDOUR::AudioEngine &, ARDOUR::Session &)
 
 Plugin (const Plugin &)
 
virtual ~Plugin ()
 
XMLNodeget_state () const
 
virtual void set_insert_id (PBD::ID id)
 
virtual void set_state_dir (const std::string &d="")
 
void set_insert (PlugInsertBase *pib, uint32_t num)
 
PlugInsertBaseplugin_insert () const
 
uint32_t plugin_number () const
 
virtual std::string get_docs () const
 
virtual std::string get_parameter_docs (uint32_t) const
 
virtual std::string parameter_label (uint32_t which) const
 
virtual void flush ()
 
virtual std::shared_ptr< ScalePointsget_scale_points (uint32_t) const
 
samplecnt_t signal_latency () const
 
samplecnt_t signal_tailtime () const
 
virtual samplecnt_t max_latency () const
 
virtual bool requires_fixed_sized_buffers () const
 
virtual bool inplace_broken () const
 
virtual bool connect_all_audio_outputs () const
 
bool write_immediate_event (Evoral::EventType event_type, size_t size, const uint8_t *buf)
 
void realtime_handle_transport_stopped ()
 
void realtime_locate (bool)
 
void monitoring_changed ()
 
virtual bool has_inline_display ()
 
virtual bool inline_display_in_gui ()
 
virtual Display_Image_Surfacerender_inline_display (uint32_t, uint32_t)
 
virtual bool has_midnam ()
 
virtual bool read_midnam ()
 
virtual std::string midnam_model ()
 
virtual bool knows_bank_patch ()
 
virtual uint32_t bank_patch (uint8_t chn)
 
PresetRecord save_preset (std::string name)
 
void remove_preset (std::string)
 
void clear_preset ()
 
const PresetRecordpreset_by_label (const std::string &)
 
const PresetRecordpreset_by_uri (const std::string &)
 
virtual std::vector< PresetRecordget_presets ()
 
PresetRecord last_preset () const
 
bool parameter_changed_since_last_preset () const
 
virtual int first_user_preset_index () const
 
virtual bool reconfigure_io (ChanCount, ChanCount, ChanCount)
 
virtual bool match_variable_io (ChanCount &, ChanCount &, ChanCount &)
 
virtual ChanCount output_streams () const
 
virtual ChanCount input_streams () const
 
virtual void set_info (const PluginInfoPtr info)
 
PluginInfoPtr get_info () const
 
SessionObjectowner () const
 
void set_cycles (uint32_t c)
 
cycles_t cycles () const
 
void use_for_impulse_analysis ()
 
ARDOUR::AudioEngineengine () const
 
ARDOUR::Sessionsession () const
 
virtual const PropertyDescriptorsget_supported_properties () const
 
virtual const ParameterDescriptorget_property_descriptor (uint32_t id) const
 
virtual void set_property (uint32_t key, const Variant &value)
 
virtual Variant get_property_value (uint32_t) const
 
virtual void announce_property_values ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from ARDOUR::HasLatency
virtual ~HasLatency ()
 
- Public Member Functions inherited from ARDOUR::HasTailTime
virtual ~HasTailTime ()
 

Public Attributes

PBD::Signal< void(int, int)> OnResizeView
 
- Public Attributes inherited from ARDOUR::Plugin
PBD::Signal< void()> QueueDraw
 
PBD::Signal< void()> UpdateMidnam
 
PBD::Signal< void()> UpdatedMidnam
 
PBD::Signal< void(uint8_t)> BankPatchChange
 
PBD::Signal< void()> PresetAdded
 
PBD::Signal< void()> PresetRemoved
 
PBD::Signal< void()> PresetLoaded
 
PBD::Signal< void()> PresetDirty
 
PBD::Signal< void(uint32_t, float)> PresetPortSetValue
 
PBD::Signal< void(uint32_t, float)> ParameterChangedExternally
 
PBD::Signal< void(uint32_t, Variant)> PropertyChanged
 
PBD::Signal< void(uint32_t)> StartTouch
 
PBD::Signal< void(uint32_t)> EndTouch
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 

Private Member Functions

samplecnt_t plugin_latency () const
 
samplecnt_t plugin_tailtime () const
 
void init ()
 
void find_presets ()
 
void forward_resize_view (int w, int h)
 
void parameter_change_handler (Steinberg::VST3PI::ParameterChange, uint32_t, float)
 

Private Attributes

Steinberg::VST3PI_plug
 
PBD::ScopedConnectionList _connections
 
std::map< std::string, std::string > _preset_uri_map
 
std::vector< bool > _connected_inputs
 
std::vector< bool > _connected_outputs
 
PBD::RingBufferNPT< PV_parameter_queue
 

Additional Inherited Members

- Public Types inherited from ARDOUR::Plugin
typedef std::map< uint32_t, ParameterDescriptorPropertyDescriptors
 
- Static Public Attributes inherited from ARDOUR::Plugin
static PBD::Signal< void(std::string, Plugin *, bool)> PresetsChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Protected Member Functions inherited from ARDOUR::Plugin
virtual void parameter_changed_externally (uint32_t which, float val)
 
void state_changed ()
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Attributes inherited from ARDOUR::Plugin
ARDOUR::AudioEngine_engine
 
ARDOUR::Session_session
 
PluginInfoPtr _info
 
uint32_t _cycles
 
SessionObject_owner
 
bool _for_impulse_analysis
 
std::map< std::string, PresetRecord_presets
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Detailed Description

Definition at line 372 of file vst3_plugin.h.

Constructor & Destructor Documentation

◆ VST3Plugin() [1/2]

ARDOUR::VST3Plugin::VST3Plugin ( AudioEngine ,
Session ,
Steinberg::VST3PI  
)

◆ VST3Plugin() [2/2]

ARDOUR::VST3Plugin::VST3Plugin ( const VST3Plugin )

◆ ~VST3Plugin()

ARDOUR::VST3Plugin::~VST3Plugin ( )

Member Function Documentation

◆ activate()

void ARDOUR::VST3Plugin::activate ( )
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 419 of file vst3_plugin.h.

◆ add_slave()

void ARDOUR::VST3Plugin::add_slave ( std::shared_ptr< Plugin ,
bool   
)
virtual

Reimplemented from ARDOUR::Plugin.

◆ add_state()

void ARDOUR::VST3Plugin::add_state ( XMLNode ) const
virtual

Add state to an existing XMLNode

Implements ARDOUR::Plugin.

◆ automatable()

std::set<Evoral::Parameter> ARDOUR::VST3Plugin::automatable ( ) const
virtual

Implements ARDOUR::Plugin.

◆ close_view()

void ARDOUR::VST3Plugin::close_view ( )

◆ connect_and_run()

int ARDOUR::VST3Plugin::connect_and_run ( BufferSet bufs,
samplepos_t  start,
samplepos_t  end,
double  speed,
ChanMapping const &  in,
ChanMapping const &  out,
pframes_t  nframes,
samplecnt_t  offset 
)
virtual

Reimplemented from ARDOUR::Plugin.

◆ deactivate()

void ARDOUR::VST3Plugin::deactivate ( )
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 424 of file vst3_plugin.h.

◆ default_value()

float ARDOUR::VST3Plugin::default_value ( uint32_t  port)
virtual

Implements ARDOUR::Plugin.

◆ describe_io_port()

IOPortDescription ARDOUR::VST3Plugin::describe_io_port ( DataType  dt,
bool  input,
uint32_t  id 
) const
virtual

Reimplemented from ARDOUR::Plugin.

◆ describe_parameter()

std::string ARDOUR::VST3Plugin::describe_parameter ( Evoral::Parameter  )
virtual

Implements ARDOUR::Plugin.

◆ designated_bypass_port()

uint32_t ARDOUR::VST3Plugin::designated_bypass_port ( )
virtual

Reimplemented from ARDOUR::Plugin.

◆ do_remove_preset()

void ARDOUR::VST3Plugin::do_remove_preset ( std::string  )
virtual

Do the actual removal of a preset of the provided name

Implements ARDOUR::Plugin.

◆ do_save_preset()

std::string ARDOUR::VST3Plugin::do_save_preset ( std::string  )
virtual

Do the actual saving of the current plugin settings to a preset of the provided name. Should return a URI on success, or an empty string on failure.

Implements ARDOUR::Plugin.

◆ find_presets()

void ARDOUR::VST3Plugin::find_presets ( )
privatevirtual

Fill _presets with our presets

Implements ARDOUR::Plugin.

◆ forward_resize_view()

void ARDOUR::VST3Plugin::forward_resize_view ( int  w,
int  h 
)
private

◆ get_parameter()

float ARDOUR::VST3Plugin::get_parameter ( uint32_t  port) const
virtual

Implements ARDOUR::Plugin.

◆ get_parameter_descriptor()

int ARDOUR::VST3Plugin::get_parameter_descriptor ( uint32_t  which,
ParameterDescriptor  
) const
virtual

Implements ARDOUR::Plugin.

◆ has_editor()

bool ARDOUR::VST3Plugin::has_editor ( ) const
virtual
Returns
true if plugin has a custom plugin GUI

Implements ARDOUR::Plugin.

◆ init()

void ARDOUR::VST3Plugin::init ( )
private

◆ label()

const char* ARDOUR::VST3Plugin::label ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 381 of file vst3_plugin.h.

◆ load_preset()

bool ARDOUR::VST3Plugin::load_preset ( PresetRecord  )
virtual

Set parameters using a preset

Reimplemented from ARDOUR::Plugin.

◆ maker()

const char* ARDOUR::VST3Plugin::maker ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 382 of file vst3_plugin.h.

◆ name()

const char* ARDOUR::VST3Plugin::name ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 380 of file vst3_plugin.h.

◆ nth_parameter()

uint32_t ARDOUR::VST3Plugin::nth_parameter ( uint32_t  port,
bool &  ok 
) const
virtual

Implements ARDOUR::Plugin.

◆ parameter_change_handler()

void ARDOUR::VST3Plugin::parameter_change_handler ( Steinberg::VST3PI::ParameterChange  ,
uint32_t  ,
float   
)
private

◆ parameter_count()

uint32_t ARDOUR::VST3Plugin::parameter_count ( ) const
virtual

Implements ARDOUR::Plugin.

◆ parameter_is_audio()

bool ARDOUR::VST3Plugin::parameter_is_audio ( uint32_t  ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 392 of file vst3_plugin.h.

◆ parameter_is_control()

bool ARDOUR::VST3Plugin::parameter_is_control ( uint32_t  ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 393 of file vst3_plugin.h.

◆ parameter_is_input()

bool ARDOUR::VST3Plugin::parameter_is_input ( uint32_t  ) const
virtual

Implements ARDOUR::Plugin.

◆ parameter_is_output()

bool ARDOUR::VST3Plugin::parameter_is_output ( uint32_t  ) const
virtual

Implements ARDOUR::Plugin.

◆ plugin_latency()

samplecnt_t ARDOUR::VST3Plugin::plugin_latency ( ) const
privatevirtual

Implements ARDOUR::Plugin.

◆ plugin_tailtime()

samplecnt_t ARDOUR::VST3Plugin::plugin_tailtime ( ) const
privatevirtual

tail duration in samples. e.g. for reverb or delay plugins.

The default when unknown is 2 sec

Reimplemented from ARDOUR::Plugin.

◆ possible_output()

PluginOutputConfiguration ARDOUR::VST3Plugin::possible_output ( ) const
virtual

Reimplemented from ARDOUR::Plugin.

◆ print_parameter()

bool ARDOUR::VST3Plugin::print_parameter ( uint32_t  ,
std::string &   
) const
virtual

Reimplemented from ARDOUR::Plugin.

◆ remove_slave()

void ARDOUR::VST3Plugin::remove_slave ( std::shared_ptr< Plugin )
virtual

Reimplemented from ARDOUR::Plugin.

◆ set_automation_control()

void ARDOUR::VST3Plugin::set_automation_control ( uint32_t  ,
std::shared_ptr< ARDOUR::AutomationControl  
)
virtual

Reimplemented from ARDOUR::Plugin.

◆ set_block_size()

int ARDOUR::VST3Plugin::set_block_size ( pframes_t  )
virtual

Implements ARDOUR::Plugin.

◆ set_non_realtime()

void ARDOUR::VST3Plugin::set_non_realtime ( bool  )
virtual

Reimplemented from ARDOUR::Plugin.

◆ set_owner()

void ARDOUR::VST3Plugin::set_owner ( ARDOUR::SessionObject o)
virtual

Reimplemented from ARDOUR::Plugin.

◆ set_parameter()

void ARDOUR::VST3Plugin::set_parameter ( uint32_t  port,
float  val,
sampleoffset_t  when 
)
virtual

Reimplemented from ARDOUR::Plugin.

◆ set_state()

int ARDOUR::VST3Plugin::set_state ( const XMLNode ,
int  version 
)
virtual

Reimplemented from ARDOUR::Plugin.

◆ state_node_name()

std::string ARDOUR::VST3Plugin::state_node_name ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 407 of file vst3_plugin.h.

◆ unique_id()

std::string ARDOUR::VST3Plugin::unique_id ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 379 of file vst3_plugin.h.

◆ update_contoller_param()

void ARDOUR::VST3Plugin::update_contoller_param ( )

◆ view()

Steinberg::IPlugView* ARDOUR::VST3Plugin::view ( )

Member Data Documentation

◆ _connected_inputs

std::vector<bool> ARDOUR::VST3Plugin::_connected_inputs
private

Definition at line 463 of file vst3_plugin.h.

◆ _connected_outputs

std::vector<bool> ARDOUR::VST3Plugin::_connected_outputs
private

Definition at line 464 of file vst3_plugin.h.

◆ _connections

PBD::ScopedConnectionList ARDOUR::VST3Plugin::_connections
private

Definition at line 459 of file vst3_plugin.h.

◆ _parameter_queue

PBD::RingBufferNPT<PV> ARDOUR::VST3Plugin::_parameter_queue
private

Definition at line 473 of file vst3_plugin.h.

◆ _plug

Steinberg::VST3PI* ARDOUR::VST3Plugin::_plug
private

Definition at line 457 of file vst3_plugin.h.

◆ _preset_uri_map

std::map<std::string, std::string> ARDOUR::VST3Plugin::_preset_uri_map
private

Definition at line 461 of file vst3_plugin.h.

◆ OnResizeView

PBD::Signal<void(int, int)> ARDOUR::VST3Plugin::OnResizeView

Definition at line 447 of file vst3_plugin.h.


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