Ardour  8.7-14-g57a6773833
ARDOUR::RegionFxPlugin Class Reference

#include <region_fx_plugin.h>

Inheritance diagram for ARDOUR::RegionFxPlugin:
[legend]

Public Member Functions

 RegionFxPlugin (Session &, Temporal::TimeDomain const, std::shared_ptr< Plugin >=std::shared_ptr< Plugin >())
 
 ~RegionFxPlugin ()
 
Gtkmm2ext::WindowProxywindow_proxy () const
 
void set_window_proxy (Gtkmm2ext::WindowProxy *wp)
 
samplecnt_t signal_latency () const
 
samplecnt_t signal_tailtime () const
 
uint32_t get_count () const
 
PluginType type () const
 
std::shared_ptr< Pluginplugin (uint32_t num=0) const
 
UIElements ui_elements () const
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
bool write_immediate_event (Evoral::EventType event_type, size_t size, const uint8_t *buf)
 
bool load_preset (Plugin::PresetRecord)
 
std::shared_ptr< ReadOnlyControlcontrol_output (uint32_t) const
 
bool reset_parameters_to_default ()
 
bool can_reset_all_parameters ()
 
void maybe_emit_changed_signals () const
 
std::string describe_parameter (Evoral::Parameter param)
 
bool provides_stats () const
 
bool get_stats (PBD::microseconds_t &, PBD::microseconds_t &, double &, double &) const
 
void clear_stats ()
 
ChanMapping input_map (uint32_t num) const
 
ChanMapping output_map (uint32_t num) const
 
XMLNodeget_state (void) const
 
int set_state (const XMLNode &, int version)
 
void drop_references ()
 
void update_id (PBD::ID)
 
bool run (BufferSet &, samplepos_t start, samplepos_t end, samplepos_t region_pos, pframes_t nframes, sampleoffset_t off)
 
void flush ()
 
int set_block_size (pframes_t nframes)
 
void automatables (PBD::ControllableSet &) const
 
void set_default_automation (timepos_t)
 
void truncate_automation_start (timecnt_t)
 
void truncate_automation_end (timepos_t)
 
bool can_support_io_configuration (const ChanCount &in, ChanCount &out)
 
bool configure_io (ChanCount in, ChanCount out)
 
ChanCount input_streams () const
 
ChanCount output_streams () const
 
ChanCount required_buffers () const
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
virtual bool set_name (const std::string &str)
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- 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 ()
 
- Public Member Functions inherited from ARDOUR::PlugInsertBase
virtual ~PlugInsertBase ()
 
- Public Member Functions inherited from Evoral::ControlSet
 ControlSet ()
 
 ControlSet (const ControlSet &)
 
virtual ~ControlSet ()
 
std::shared_ptr< Controlcontrol (const Parameter &id, bool create_if_missing=false)
 
std::shared_ptr< const Controlcontrol (const Parameter &id) const
 
Controlscontrols ()
 
const Controlscontrols () const
 
virtual void add_control (std::shared_ptr< Control >)
 
virtual bool controls_empty () const
 
virtual void clear_controls ()
 
void what_has_data (std::set< Parameter > &) const
 
Glib::Threads::Mutex & control_lock () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Temporal::TimeDomainSwapper
virtual ~TimeDomainSwapper ()
 
- Public Member Functions inherited from ARDOUR::Latent
 Latent ()
 
 Latent (Latent const &)
 
virtual ~Latent ()
 
samplecnt_t effective_latency () const
 
samplecnt_t user_latency () const
 
void unset_user_latency ()
 
virtual void set_user_latency (samplecnt_t val)
 
- Public Member Functions inherited from ARDOUR::HasLatency
virtual ~HasLatency ()
 
- Public Member Functions inherited from ARDOUR::TailTime
 TailTime ()
 
 TailTime (TailTime const &)
 
virtual ~TailTime ()
 
samplecnt_t effective_tailtime () const
 
samplecnt_t user_latency () const
 
void unset_user_tailtime ()
 
void set_user_tailtime (samplecnt_t val)
 
- Public Member Functions inherited from ARDOUR::HasTailTime
virtual ~HasTailTime ()
 
- Public Member Functions inherited from Temporal::TimeDomainProvider
 TimeDomainProvider ()
 
 TimeDomainProvider (TimeDomain td)
 
 TimeDomainProvider (TimeDomain td, TimeDomainProvider const &p)
 
 TimeDomainProvider (TimeDomainProvider const &other)
 
 TimeDomainProvider (TimeDomainProvider const &parnt, bool)
 
virtual ~TimeDomainProvider ()
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
TimeDomainProvideroperator= (TimeDomainProvider const &other)
 
TimeDomain time_domain () const
 
bool has_own_time_domain () const
 
void clear_time_domain ()
 
void set_time_domain (TimeDomain td)
 
TimeDomainProvider const * time_domain_parent () const
 
bool has_time_domain_parent () const
 
void clear_time_domain_parent ()
 
void set_time_domain_parent (TimeDomainProvider const &p)
 
virtual void time_domain_changed ()
 

Private Types

typedef std::vector< std::shared_ptr< Plugin > > Plugins
 
typedef std::map< uint32_t, std::shared_ptr< ReadOnlyControl > > CtrlOutMap
 

Private Member Functions

 RegionFxPlugin (RegionFxPlugin const &)
 
void add_plugin (std::shared_ptr< Plugin >)
 
void plugin_removed (std::weak_ptr< Plugin >)
 
bool set_count (uint32_t num)
 
bool check_inplace ()
 
void create_parameters ()
 
void parameter_changed_externally (uint32_t, float)
 
void automation_run (samplepos_t start, pframes_t nframes)
 
bool find_next_event (timepos_t const &start, timepos_t const &end, Evoral::ControlEvent &next_event) const
 
void start_touch (uint32_t param_id)
 
void end_touch (uint32_t param_id)
 
bool connect_and_run (BufferSet &, samplepos_t start, samplepos_t end, samplepos_t region_pos, pframes_t nframes, sampleoffset_t buf_off, sampleoffset_t cycle_off)
 
Match private_can_support_io_configuration (ChanCount const &, ChanCount &) const
 

Private Attributes

Match _match
 
samplecnt_t _plugin_signal_latency
 
samplecnt_t _plugin_signal_tailtime
 
Plugins _plugins
 
ChanCount _configured_in
 
ChanCount _configured_out
 
ChanCount _required_buffers
 
std::map< uint32_t, ARDOUR::ChanMapping_in_map
 
std::map< uint32_t, ARDOUR::ChanMapping_out_map
 
bool _configured
 
bool _no_inplace
 
samplepos_t _last_emit
 
CtrlOutMap _control_outputs
 
Gtkmm2ext::WindowProxy_window_proxy
 
std::atomic< int > _flush
 
XMLNode_state
 
Glib::Threads::Mutex _process_lock
 

Additional Inherited Members

- Public Types inherited from ARDOUR::PlugInsertBase
enum  UIElements : std::uint8_t {
  NoGUIToolbar = 0x00 , BypassEnable = 0x01 , PluginPreset = 0x02 , MIDIKeyboard = 0x04 ,
  AllUIElements = 0x0f
}
 
enum  MatchingMethod {
  Impossible , Delegate , NoInputs , ExactMatch ,
  Replicate , Split , Hide
}
 
- Public Types inherited from Evoral::ControlSet
typedef std::map< Parameter, std::shared_ptr< Control > > Controls
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 
- Static Public Member Functions inherited from ARDOUR::Latent
static void force_zero_latency (bool en)
 
static bool zero_latency ()
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const PropertyChange & > PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 
- Public Attributes inherited from ARDOUR::Latent
PBD::Signal0< void > LatencyChanged
 
- Public Attributes inherited from ARDOUR::TailTime
PBD::Signal0< void > TailTimeChanged
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal0< void > TimeDomainChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from ARDOUR::Latent
static PBD::Signal0< void > DisableSwitchChanged
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- 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 Member Functions inherited from ARDOUR::PlugInsertBase
bool parse_plugin_type (XMLNode const &, PluginType &, std::string &) const
 
std::shared_ptr< Pluginfind_and_load_plugin (Session &, XMLNode const &, PluginType &, std::string const &, bool &any_vst)
 
void set_control_ids (const XMLNode &, int version, bool by_value=false)
 
void preset_load_set_value (uint32_t, float)
 
- Protected Member Functions inherited from Evoral::ControlSet
virtual void control_list_marked_dirty ()
 
virtual void control_list_interpolation_changed (Parameter const &, ControlList::InterpolationStyle)
 
- Protected Member Functions inherited from ARDOUR::Latent
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 
- Protected Member Functions inherited from ARDOUR::TailTime
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 
- Protected Member Functions inherited from Temporal::TimeDomainProvider
void listen ()
 
- Static Protected Member Functions inherited from ARDOUR::PlugInsertBase
static std::shared_ptr< Pluginplugin_factory (std::shared_ptr< Plugin >)
 
- Protected Attributes inherited from ARDOUR::SessionObject
PBD::Property< std::string > _name
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 
- 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
 
- Protected Attributes inherited from Evoral::ControlSet
Glib::Threads::Mutex _control_lock
 
Controls _controls
 
PBD::ScopedConnectionList _list_connections
 

Detailed Description

Definition at line 46 of file region_fx_plugin.h.

Member Typedef Documentation

◆ CtrlOutMap

typedef std::map<uint32_t, std::shared_ptr<ReadOnlyControl> > ARDOUR::RegionFxPlugin::CtrlOutMap
private

Definition at line 197 of file region_fx_plugin.h.

◆ Plugins

typedef std::vector<std::shared_ptr<Plugin> > ARDOUR::RegionFxPlugin::Plugins
private

Definition at line 182 of file region_fx_plugin.h.

Constructor & Destructor Documentation

◆ RegionFxPlugin() [1/2]

ARDOUR::RegionFxPlugin::RegionFxPlugin ( Session ,
Temporal::TimeDomain const  ,
std::shared_ptr< Plugin = std::shared_ptr< Plugin >() 
)

◆ ~RegionFxPlugin()

ARDOUR::RegionFxPlugin::~RegionFxPlugin ( )

◆ RegionFxPlugin() [2/2]

ARDOUR::RegionFxPlugin::RegionFxPlugin ( RegionFxPlugin const &  )
private

Member Function Documentation

◆ add_plugin()

void ARDOUR::RegionFxPlugin::add_plugin ( std::shared_ptr< Plugin )
private

◆ automatables()

void ARDOUR::RegionFxPlugin::automatables ( PBD::ControllableSet ) const

◆ automation_run()

void ARDOUR::RegionFxPlugin::automation_run ( samplepos_t  start,
pframes_t  nframes 
)
private

◆ can_reset_all_parameters()

bool ARDOUR::RegionFxPlugin::can_reset_all_parameters ( )
virtual

◆ can_support_io_configuration()

bool ARDOUR::RegionFxPlugin::can_support_io_configuration ( const ChanCount in,
ChanCount out 
)

◆ check_inplace()

bool ARDOUR::RegionFxPlugin::check_inplace ( )
private

◆ clear_stats()

void ARDOUR::RegionFxPlugin::clear_stats ( )
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 106 of file region_fx_plugin.h.

◆ configure_io()

bool ARDOUR::RegionFxPlugin::configure_io ( ChanCount  in,
ChanCount  out 
)

◆ connect_and_run()

bool ARDOUR::RegionFxPlugin::connect_and_run ( BufferSet ,
samplepos_t  start,
samplepos_t  end,
samplepos_t  region_pos,
pframes_t  nframes,
sampleoffset_t  buf_off,
sampleoffset_t  cycle_off 
)
private

◆ control_factory()

std::shared_ptr<Evoral::Control> ARDOUR::RegionFxPlugin::control_factory ( const Evoral::Parameter id)
virtual

Implements Evoral::ControlSet.

◆ control_output()

std::shared_ptr<ReadOnlyControl> ARDOUR::RegionFxPlugin::control_output ( uint32_t  ) const
virtual

◆ create_parameters()

void ARDOUR::RegionFxPlugin::create_parameters ( )
private

◆ describe_parameter()

std::string ARDOUR::RegionFxPlugin::describe_parameter ( Evoral::Parameter  param)
virtual

◆ drop_references()

void ARDOUR::RegionFxPlugin::drop_references ( )
virtual

Reimplemented from PBD::Destructible.

◆ end_touch()

void ARDOUR::RegionFxPlugin::end_touch ( uint32_t  param_id)
private

◆ find_next_event()

bool ARDOUR::RegionFxPlugin::find_next_event ( timepos_t const &  start,
timepos_t const &  end,
Evoral::ControlEvent next_event 
) const
private

◆ flush()

void ARDOUR::RegionFxPlugin::flush ( )

◆ get_count()

uint32_t ARDOUR::RegionFxPlugin::get_count ( ) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 68 of file region_fx_plugin.h.

◆ get_state()

XMLNode& ARDOUR::RegionFxPlugin::get_state ( void  ) const
virtual

Implements PBD::Stateful.

◆ get_stats()

bool ARDOUR::RegionFxPlugin::get_stats ( PBD::microseconds_t ,
PBD::microseconds_t ,
double &  ,
double &   
) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 102 of file region_fx_plugin.h.

◆ input_map()

ChanMapping ARDOUR::RegionFxPlugin::input_map ( uint32_t  num) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 108 of file region_fx_plugin.h.

◆ input_streams()

ChanCount ARDOUR::RegionFxPlugin::input_streams ( ) const
inline

Definition at line 145 of file region_fx_plugin.h.

◆ load_preset()

bool ARDOUR::RegionFxPlugin::load_preset ( Plugin::PresetRecord  )
virtual

◆ maybe_emit_changed_signals()

void ARDOUR::RegionFxPlugin::maybe_emit_changed_signals ( ) const

◆ output_map()

ChanMapping ARDOUR::RegionFxPlugin::output_map ( uint32_t  num) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 116 of file region_fx_plugin.h.

◆ output_streams()

ChanCount ARDOUR::RegionFxPlugin::output_streams ( ) const
inline

Definition at line 149 of file region_fx_plugin.h.

◆ parameter_changed_externally()

void ARDOUR::RegionFxPlugin::parameter_changed_externally ( uint32_t  ,
float   
)
private

◆ plugin()

std::shared_ptr<Plugin> ARDOUR::RegionFxPlugin::plugin ( uint32_t  num = 0) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 74 of file region_fx_plugin.h.

◆ plugin_removed()

void ARDOUR::RegionFxPlugin::plugin_removed ( std::weak_ptr< Plugin )
private

◆ private_can_support_io_configuration()

Match ARDOUR::RegionFxPlugin::private_can_support_io_configuration ( ChanCount const &  ,
ChanCount  
) const
private

◆ provides_stats()

bool ARDOUR::RegionFxPlugin::provides_stats ( ) const
inlinevirtual

Implements ARDOUR::PlugInsertBase.

Definition at line 98 of file region_fx_plugin.h.

◆ required_buffers()

ChanCount ARDOUR::RegionFxPlugin::required_buffers ( ) const
inline

Definition at line 153 of file region_fx_plugin.h.

◆ reset_parameters_to_default()

bool ARDOUR::RegionFxPlugin::reset_parameters_to_default ( )
virtual

◆ run()

bool ARDOUR::RegionFxPlugin::run ( BufferSet ,
samplepos_t  start,
samplepos_t  end,
samplepos_t  region_pos,
pframes_t  nframes,
sampleoffset_t  off 
)

◆ set_block_size()

int ARDOUR::RegionFxPlugin::set_block_size ( pframes_t  nframes)

◆ set_count()

bool ARDOUR::RegionFxPlugin::set_count ( uint32_t  num)
private

◆ set_default_automation()

void ARDOUR::RegionFxPlugin::set_default_automation ( timepos_t  )

◆ set_state()

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

Implements PBD::Stateful.

◆ set_window_proxy()

void ARDOUR::RegionFxPlugin::set_window_proxy ( Gtkmm2ext::WindowProxy wp)
inline

Definition at line 57 of file region_fx_plugin.h.

◆ signal_latency()

samplecnt_t ARDOUR::RegionFxPlugin::signal_latency ( ) const
virtual

Implements ARDOUR::HasLatency.

◆ signal_tailtime()

samplecnt_t ARDOUR::RegionFxPlugin::signal_tailtime ( ) const
virtual

Implements ARDOUR::HasTailTime.

◆ start_touch()

void ARDOUR::RegionFxPlugin::start_touch ( uint32_t  param_id)
private

◆ truncate_automation_end()

void ARDOUR::RegionFxPlugin::truncate_automation_end ( timepos_t  )

◆ truncate_automation_start()

void ARDOUR::RegionFxPlugin::truncate_automation_start ( timecnt_t  )

◆ type()

PluginType ARDOUR::RegionFxPlugin::type ( ) const
virtual

◆ ui_elements()

UIElements ARDOUR::RegionFxPlugin::ui_elements ( ) const
virtual

◆ update_id()

void ARDOUR::RegionFxPlugin::update_id ( PBD::ID  )

◆ window_proxy()

Gtkmm2ext::WindowProxy* ARDOUR::RegionFxPlugin::window_proxy ( ) const
inline

Definition at line 53 of file region_fx_plugin.h.

◆ write_immediate_event()

bool ARDOUR::RegionFxPlugin::write_immediate_event ( Evoral::EventType  event_type,
size_t  size,
const uint8_t *  buf 
)
virtual

Member Data Documentation

◆ _configured

bool ARDOUR::RegionFxPlugin::_configured
private

Definition at line 192 of file region_fx_plugin.h.

◆ _configured_in

ChanCount ARDOUR::RegionFxPlugin::_configured_in
private

Definition at line 185 of file region_fx_plugin.h.

◆ _configured_out

ChanCount ARDOUR::RegionFxPlugin::_configured_out
private

Definition at line 186 of file region_fx_plugin.h.

◆ _control_outputs

CtrlOutMap ARDOUR::RegionFxPlugin::_control_outputs
private

Definition at line 198 of file region_fx_plugin.h.

◆ _flush

std::atomic<int> ARDOUR::RegionFxPlugin::_flush
private

Definition at line 201 of file region_fx_plugin.h.

◆ _in_map

std::map<uint32_t, ARDOUR::ChanMapping> ARDOUR::RegionFxPlugin::_in_map
private

Definition at line 189 of file region_fx_plugin.h.

◆ _last_emit

samplepos_t ARDOUR::RegionFxPlugin::_last_emit
mutableprivate

Definition at line 195 of file region_fx_plugin.h.

◆ _match

Match ARDOUR::RegionFxPlugin::_match
private

details of the match currently being used

Definition at line 177 of file region_fx_plugin.h.

◆ _no_inplace

bool ARDOUR::RegionFxPlugin::_no_inplace
private

Definition at line 193 of file region_fx_plugin.h.

◆ _out_map

std::map<uint32_t, ARDOUR::ChanMapping> ARDOUR::RegionFxPlugin::_out_map
private

Definition at line 190 of file region_fx_plugin.h.

◆ _plugin_signal_latency

samplecnt_t ARDOUR::RegionFxPlugin::_plugin_signal_latency
private

Definition at line 179 of file region_fx_plugin.h.

◆ _plugin_signal_tailtime

samplecnt_t ARDOUR::RegionFxPlugin::_plugin_signal_tailtime
private

Definition at line 180 of file region_fx_plugin.h.

◆ _plugins

Plugins ARDOUR::RegionFxPlugin::_plugins
private

Definition at line 183 of file region_fx_plugin.h.

◆ _process_lock

Glib::Threads::Mutex ARDOUR::RegionFxPlugin::_process_lock
mutableprivate

Definition at line 205 of file region_fx_plugin.h.

◆ _required_buffers

ChanCount ARDOUR::RegionFxPlugin::_required_buffers
private

Definition at line 187 of file region_fx_plugin.h.

◆ _state

XMLNode* ARDOUR::RegionFxPlugin::_state
private

Definition at line 203 of file region_fx_plugin.h.

◆ _window_proxy

Gtkmm2ext::WindowProxy* ARDOUR::RegionFxPlugin::_window_proxy
private

Definition at line 200 of file region_fx_plugin.h.


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