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

#include <surround_send.h>

Inheritance diagram for ARDOUR::SurroundSend:
[legend]

Public Member Functions

 SurroundSend (Session &, std::shared_ptr< MuteMaster >)
 
virtual ~SurroundSend ()
 
std::shared_ptr< GainControlgain_control () const
 
std::shared_ptr< SurroundPannablepannable (size_t chn=0) const
 
uint32_t n_pannables () const
 
bool can_support_io_configuration (const ChanCount &in, ChanCount &out)
 
bool configure_io (ChanCount in, ChanCount out)
 
int set_block_size (pframes_t)
 
void run (BufferSet &bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool)
 
bool display_to_user () const
 
bool does_routing () const
 
std::string describe_parameter (Evoral::Parameter param)
 
void set_delay_in (samplecnt_t)
 
void set_delay_out (samplecnt_t, size_t bus=0)
 
void update_delaylines (bool rt_ok)
 
samplecnt_t get_delay_in () const
 
samplecnt_t get_delay_out () const
 
samplecnt_t signal_latency () const
 
BufferSet const & bufs () const
 
std::shared_ptr< SurroundPannable > const & pan_param (size_t chn, timepos_t &s, timepos_t &e) const
 
std::shared_ptr< AutomationControlsend_enable_control () const
 
- Public Member Functions inherited from ARDOUR::Processor
 Processor (Session &, const std::string &name, Temporal::TimeDomainProvider const &)
 
 Processor (const Processor &other)
 
virtual ~Processor ()
 
virtual std::string display_name () const
 
virtual void set_display_to_user (bool)
 
bool active () const
 ardour hard bypass More...
 
virtual bool enabled () const
 processor enabled/bypass More...
 
virtual bool bypassable () const
 enable is not automated or locked More...
 
bool get_next_ab_is_active () const
 
void set_next_ab_is_active (bool yn)
 
virtual void set_input_latency (samplecnt_t cnt)
 
samplecnt_t input_latency () const
 
virtual void set_output_latency (samplecnt_t cnt)
 
samplecnt_t output_latency () const
 
virtual void set_capture_offset (samplecnt_t cnt)
 
samplecnt_t capture_offset () const
 
virtual void set_playback_offset (samplecnt_t cnt)
 
samplecnt_t playback_offset () const
 
virtual bool requires_fixed_sized_buffers () const
 
virtual void silence (samplecnt_t nframes, samplepos_t start_sample)
 
virtual void activate ()
 
virtual void deactivate ()
 
virtual void flush ()
 
virtual void enable (bool yn)
 
virtual ChanCount input_streams () const
 
virtual ChanCount output_streams () const
 
virtual void realtime_handle_transport_stopped ()
 
virtual void realtime_locate (bool)
 
virtual void set_loop (Location *loc)
 
virtual void monitoring_changed ()
 
XMLNodeget_state () const
 
virtual void set_pre_fader (bool)
 
virtual bool get_pre_fader () const
 
ProcessorWindowProxywindow_proxy () const
 
void set_window_proxy (ProcessorWindowProxy *wp)
 
PluginPinWindowProxypinmgr_proxy () const
 
void set_pingmgr_proxy (PluginPinWindowProxy *wp)
 
virtual void set_owner (SessionObject *)
 
SessionObjectowner () 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 ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
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 ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from ARDOUR::Automatable
 Automatable (Session &, Temporal::TimeDomainProvider const &)
 
 Automatable (const Automatable &other)
 
virtual ~Automatable ()
 
virtual void automatables (PBD::ControllableSet &) const
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (PBD::ID const &id) const
 
virtual std::shared_ptr< AutomationControlautomation_control_recurse (PBD::ID const &id) const
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &id, bool create_if_missing)
 
std::shared_ptr< const AutomationControlautomation_control (const Evoral::Parameter &id) const
 
virtual void add_control (std::shared_ptr< Evoral::Control >)
 
virtual bool find_next_event (Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev, bool only_active=true) const
 
void clear_controls ()
 
virtual void non_realtime_locate (samplepos_t now)
 
virtual void non_realtime_transport_stop (samplepos_t now, bool flush)
 
virtual void automation_run (samplepos_t, pframes_t, bool only_active=false)
 
AutoState get_parameter_automation_state (Evoral::Parameter param)
 
virtual void set_parameter_automation_state (Evoral::Parameter param, AutoState)
 
void protect_automation ()
 
const std::set< Evoral::Parameter > & what_can_be_automated () const
 
std::vector< Evoral::Parameterall_automatable_params () const
 
void what_has_existing_automation (std::set< Evoral::Parameter > &) const
 
int set_automation_xml_state (const XMLNode &, Evoral::Parameter default_param)
 
XMLNodeget_automation_xml_state () const
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- 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 bool controls_empty () const
 
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::Slavable
 Slavable ()
 
virtual ~Slavable ()
 
XMLNodeget_state () const
 
int set_state (XMLNode const &, int)
 
virtual void assign (std::shared_ptr< VCA >)
 
void unassign (std::shared_ptr< VCA >)
 
std::vector< std::shared_ptr< VCA > > masters (VCAManager *) const
 
bool assigned_to (VCAManager *, std::shared_ptr< VCA >) const
 
- 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 ()
 
- 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::LatentSend
 LatentSend ()
 
virtual ~LatentSend ()
 
samplecnt_t get_delay_in () const
 
samplecnt_t get_delay_out () const
 

Public Attributes

PBD::Signal< void()> NPannablesChanged
 
PBD::Signal< void()> PanChanged
 
- Public Attributes inherited from ARDOUR::Processor
PBD::Signal< void()> ActiveChanged
 
PBD::Signal< void()> BypassableChanged
 
PBD::Signal< void(ChanCount, ChanCount)> ConfigurationChanged
 
PBD::Signal< void()> ToggleUI
 
PBD::Signal< void()> ShowUI
 
PBD::Signal< void()> HideUI
 
- 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
 
- Public Attributes inherited from ARDOUR::Automatable
PBD::Signal< void()> AutomationStateChanged
 
- Public Attributes inherited from ARDOUR::Slavable
PBD::Signal< void(std::shared_ptr< VCA >, bool)> AssignmentChange
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal< void()> TimeDomainChanged
 
- Public Attributes inherited from ARDOUR::Latent
PBD::Signal< void()> LatencyChanged
 

Protected Member Functions

int set_state (const XMLNode &, int version)
 
XMLNodestate () const
 
- Protected Member Functions inherited from ARDOUR::Processor
virtual int set_state_2X (const XMLNode &, int version)
 
bool check_active ()
 
bool map_loop_range (samplepos_t &start, samplepos_t &end) const
 
- 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::Automatable
void can_automate (Evoral::Parameter)
 
virtual void automation_list_automation_state_changed (Evoral::Parameter const &, AutoState)
 
int load_automation (const std::string &path)
 
int old_set_automation_state (const XMLNode &)
 
SlavableAutomationControlList slavables () const
 
- 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 Temporal::TimeDomainProvider
void listen ()
 
- Protected Member Functions inherited from ARDOUR::Latent
int set_state (const XMLNode &node, int version)
 
void add_state (XMLNode *) const
 

Private Member Functions

void ensure_mixbufs ()
 
gain_t target_gain () const
 
void cycle_start (pframes_t)
 
void add_pannable ()
 
void send_enable_changed ()
 
void proc_active_changed ()
 

Private Attributes

BufferSet _mixbufs
 
int32_t _surround_id
 
timepos_t _cycle_start
 
timepos_t _cycle_end
 
gain_t _current_gain
 
bool _has_state
 
bool _ignore_enable_change
 
std::vector< std::shared_ptr< SurroundPannable > > _pannable
 
std::shared_ptr< AutomationControl_send_enable_control
 
std::shared_ptr< GainControl_gain_control
 
std::shared_ptr< Amp_amp
 
std::shared_ptr< MuteMaster_mute_master
 
std::shared_ptr< DelayLine_send_delay
 
std::shared_ptr< DelayLine_thru_delay
 
PBD::ScopedConnectionList _change_connections
 

Additional Inherited Members

- 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::Automatable
static void find_next_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
static void find_prev_ac_event (std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
 
- Static Public Member Functions inherited from ARDOUR::Latent
static void force_zero_latency (bool en)
 
static bool zero_latency ()
 
- Static Public Attributes inherited from ARDOUR::Processor
static const std::string state_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from ARDOUR::Automatable
static bool skip_saving_automation
 
static const std::string xml_node_name
 
- Static Public Attributes inherited from ARDOUR::Slavable
static std::string xml_node_name
 
static PBD::Signal< void(VCAManager *)> Assign
 
- Static Public Attributes inherited from ARDOUR::Latent
static PBD::Signal< void()> DisableSwitchChanged
 
- Static Public Attributes inherited from ARDOUR::LatentSend
static PBD::Signal< void()> ChangedLatency
 
static PBD::Signal< void()> QueueUpdate
 
- Protected Attributes inherited from ARDOUR::Processor
int _pending_active
 
bool _active
 
bool _next_ab_is_active
 
bool _configured
 
ChanCount _configured_input
 
ChanCount _configured_output
 
bool _display_to_user
 
bool _pre_fader
 true if this processor is currently placed before the Amp, otherwise false More...
 
void * _ui_pointer
 
ProcessorWindowProxy_window_proxy
 
PluginPinWindowProxy_pinmgr_proxy
 
SessionObject_owner
 
samplecnt_t _input_latency
 
samplecnt_t _output_latency
 
samplecnt_t _capture_offset
 
samplecnt_t _playback_offset
 
Location_loop_location
 
- 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 ARDOUR::Automatable
Session_a_session
 
SerializedRCUManager< AutomationControlList_automated_controls
 
std::set< Evoral::Parameter_can_automate_list
 
samplepos_t _last_automation_snapshot
 
- Protected Attributes inherited from Evoral::ControlSet
Glib::Threads::Mutex _control_lock
 
Controls _controls
 
PBD::ScopedConnectionList _list_connections
 
- Protected Attributes inherited from ARDOUR::LatentSend
samplecnt_t _delay_in
 
samplecnt_t _delay_out
 

Detailed Description

Definition at line 32 of file surround_send.h.

Constructor & Destructor Documentation

◆ SurroundSend()

ARDOUR::SurroundSend::SurroundSend ( Session ,
std::shared_ptr< MuteMaster  
)

◆ ~SurroundSend()

virtual ARDOUR::SurroundSend::~SurroundSend ( )
virtual

Member Function Documentation

◆ add_pannable()

void ARDOUR::SurroundSend::add_pannable ( )
private

◆ bufs()

BufferSet const& ARDOUR::SurroundSend::bufs ( ) const
inline

Definition at line 66 of file surround_send.h.

◆ can_support_io_configuration()

bool ARDOUR::SurroundSend::can_support_io_configuration ( const ChanCount in,
ChanCount out 
)
inlinevirtual

Implements ARDOUR::Processor.

Definition at line 48 of file surround_send.h.

◆ configure_io()

bool ARDOUR::SurroundSend::configure_io ( ChanCount  in,
ChanCount  out 
)
virtual

Reimplemented from ARDOUR::Processor.

◆ cycle_start()

void ARDOUR::SurroundSend::cycle_start ( pframes_t  )
private

◆ describe_parameter()

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

Reimplemented from ARDOUR::Automatable.

◆ display_to_user()

bool ARDOUR::SurroundSend::display_to_user ( ) const
virtual

Reimplemented from ARDOUR::Processor.

◆ does_routing()

bool ARDOUR::SurroundSend::does_routing ( ) const
inlinevirtual

Reimplemented from ARDOUR::Processor.

Definition at line 53 of file surround_send.h.

◆ ensure_mixbufs()

void ARDOUR::SurroundSend::ensure_mixbufs ( )
private

◆ gain_control()

std::shared_ptr<GainControl> ARDOUR::SurroundSend::gain_control ( ) const
inline

Definition at line 39 of file surround_send.h.

◆ get_delay_in()

samplecnt_t ARDOUR::SurroundSend::get_delay_in ( ) const
inline

Definition at line 61 of file surround_send.h.

◆ get_delay_out()

samplecnt_t ARDOUR::SurroundSend::get_delay_out ( ) const
inline

Definition at line 62 of file surround_send.h.

◆ n_pannables()

uint32_t ARDOUR::SurroundSend::n_pannables ( ) const

◆ pan_param()

std::shared_ptr<SurroundPannable> const& ARDOUR::SurroundSend::pan_param ( size_t  chn,
timepos_t s,
timepos_t e 
) const

◆ pannable()

std::shared_ptr<SurroundPannable> ARDOUR::SurroundSend::pannable ( size_t  chn = 0) const

◆ proc_active_changed()

void ARDOUR::SurroundSend::proc_active_changed ( )
private

◆ run()

void ARDOUR::SurroundSend::run ( BufferSet bufs,
samplepos_t  start_sample,
samplepos_t  end_sample,
double  speed,
pframes_t  nframes,
bool  result_required 
)
virtual

The main process function for processors

Parameters
bufsbufferset of data to process in-place
start_sampleabsolute timeline position in audio-samples to commence processing (latency compensated)
end_sampleabsolute timeline position in audio-samples, usually start_sample +/- nframes
speedtransport speed. usually -1, 0, +1
nframesnumber of audio samples to process
result_requiredtrue if, on return from this method, bufs is required to contain valid data; if false, the method need not bother writing to bufs if it doesn't want to.

Reimplemented from ARDOUR::Processor.

◆ send_enable_changed()

void ARDOUR::SurroundSend::send_enable_changed ( )
private

◆ send_enable_control()

std::shared_ptr<AutomationControl> ARDOUR::SurroundSend::send_enable_control ( ) const
inline

Definition at line 69 of file surround_send.h.

◆ set_block_size()

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

Reimplemented from ARDOUR::Processor.

◆ set_delay_in()

void ARDOUR::SurroundSend::set_delay_in ( samplecnt_t  )
virtual

Implements ARDOUR::LatentSend.

◆ set_delay_out()

void ARDOUR::SurroundSend::set_delay_out ( samplecnt_t  ,
size_t  bus = 0 
)
virtual

Implements ARDOUR::LatentSend.

◆ set_state()

int ARDOUR::SurroundSend::set_state ( const XMLNode ,
int  version 
)
protectedvirtual

Reimplemented from ARDOUR::Processor.

◆ signal_latency()

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

Reimplemented from ARDOUR::Processor.

◆ state()

XMLNode& ARDOUR::SurroundSend::state ( ) const
protectedvirtual

Reimplemented from ARDOUR::Processor.

◆ target_gain()

gain_t ARDOUR::SurroundSend::target_gain ( ) const
private

◆ update_delaylines()

void ARDOUR::SurroundSend::update_delaylines ( bool  rt_ok)
virtual

Implements ARDOUR::LatentSend.

Member Data Documentation

◆ _amp

std::shared_ptr<Amp> ARDOUR::SurroundSend::_amp
private

Definition at line 96 of file surround_send.h.

◆ _change_connections

PBD::ScopedConnectionList ARDOUR::SurroundSend::_change_connections
private

Definition at line 101 of file surround_send.h.

◆ _current_gain

gain_t ARDOUR::SurroundSend::_current_gain
private

Definition at line 88 of file surround_send.h.

◆ _cycle_end

timepos_t ARDOUR::SurroundSend::_cycle_end
private

Definition at line 87 of file surround_send.h.

◆ _cycle_start

timepos_t ARDOUR::SurroundSend::_cycle_start
private

Definition at line 86 of file surround_send.h.

◆ _gain_control

std::shared_ptr<GainControl> ARDOUR::SurroundSend::_gain_control
private

Definition at line 95 of file surround_send.h.

◆ _has_state

bool ARDOUR::SurroundSend::_has_state
private

Definition at line 89 of file surround_send.h.

◆ _ignore_enable_change

bool ARDOUR::SurroundSend::_ignore_enable_change
private

Definition at line 90 of file surround_send.h.

◆ _mixbufs

BufferSet ARDOUR::SurroundSend::_mixbufs
private

Definition at line 84 of file surround_send.h.

◆ _mute_master

std::shared_ptr<MuteMaster> ARDOUR::SurroundSend::_mute_master
private

Definition at line 97 of file surround_send.h.

◆ _pannable

std::vector<std::shared_ptr<SurroundPannable> > ARDOUR::SurroundSend::_pannable
private

Definition at line 92 of file surround_send.h.

◆ _send_delay

std::shared_ptr<DelayLine> ARDOUR::SurroundSend::_send_delay
private

Definition at line 98 of file surround_send.h.

◆ _send_enable_control

std::shared_ptr<AutomationControl> ARDOUR::SurroundSend::_send_enable_control
private

Definition at line 94 of file surround_send.h.

◆ _surround_id

int32_t ARDOUR::SurroundSend::_surround_id
private

Definition at line 85 of file surround_send.h.

◆ _thru_delay

std::shared_ptr<DelayLine> ARDOUR::SurroundSend::_thru_delay
private

Definition at line 99 of file surround_send.h.

◆ NPannablesChanged

PBD::Signal<void()> ARDOUR::SurroundSend::NPannablesChanged

Definition at line 44 of file surround_send.h.

◆ PanChanged

PBD::Signal<void()> ARDOUR::SurroundSend::PanChanged

Definition at line 45 of file surround_send.h.


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