Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::Track Class Referenceabstract

#include <track.h>

Inheritance diagram for ARDOUR::Track:
[legend]

Classes

struct  FreezeRecord
 
struct  FreezeRecordProcessorInfo
 

Public Types

enum  FreezeState { NoFreeze , Frozen , UnFrozen }
 
- Public Types inherited from ARDOUR::Route
enum  PluginSetupOptions { None = 0x0 , CanReplace = 0x1 , MultiOut = 0x2 }
 
typedef std::list< std::shared_ptr< Processor > > ProcessorList
 
- Public Types inherited from Evoral::ControlSet
typedef std::map< Parameter, std::shared_ptr< Control > > Controls
 
- Public Types inherited from ARDOUR::GraphActivision
typedef std::map< GraphChain const *, node_set_tActivationMap
 
typedef std::map< GraphChain const *, int > RefCntMap
 

Public Member Functions

 Track (Session &, std::string name, PresentationInfo::Flag f=PresentationInfo::Flag(0), TrackMode m=Normal, DataType default_type=DataType::AUDIO)
 
virtual ~Track ()
 
int init ()
 
bool set_name (const std::string &str)
 
int resync_take_name (std::string newname="")
 
TrackMode mode () const
 
bool set_processor_state (XMLNode const &node, int version, XMLProperty const *prop, ProcessorList &new_order, bool &must_configure)
 
XMLNodeplaylist_state () const
 
bool declick_in_progress () const
 
bool can_record ()
 
FreezeState freeze_state () const
 
virtual void freeze_me (InterThreadInfo &)=0
 
virtual void unfreeze ()=0
 
virtual bool bounceable (std::shared_ptr< Processor > endpoint, bool include_endpoint) const =0
 
virtual std::shared_ptr< Regionbounce (InterThreadInfo &itt, std::string const &name)
 
virtual std::shared_ptr< Regionbounce_range (samplepos_t start, samplepos_t end, InterThreadInfo &itt, std::shared_ptr< Processor > endpoint, bool include_endpoint, std::string const &name="", bool prefix_track_name=false)
 
virtual int export_stuff (BufferSet &bufs, samplepos_t start_sample, samplecnt_t nframes, std::shared_ptr< Processor > endpoint, bool include_endpoint, bool for_export, bool for_freeze, MidiNoteTracker &)=0
 
virtual int set_state (const XMLNode &, int version)
 
std::shared_ptr< AutomationControlrec_enable_control () const
 
std::shared_ptr< AutomationControlrec_safe_control () const
 
int prep_record_enabled (bool)
 
bool can_be_record_enabled ()
 
bool can_be_record_safe ()
 
void use_captured_sources (SourceList &, CaptureInfos const &)
 
void set_block_size (pframes_t)
 
std::shared_ptr< Trackshared_ptr ()
 
std::shared_ptr< Playlistplaylist ()
 
void request_input_monitoring (bool)
 
void ensure_input_monitoring (bool)
 
std::list< std::shared_ptr< Source > > & last_capture_sources ()
 
std::string steal_write_source_name ()
 
void reset_write_sources (bool mark_write_complete)
 
float playback_buffer_load () const
 
float capture_buffer_load () const
 
int do_refill ()
 
int do_flush (RunContext, bool force=false)
 
void set_pending_overwrite (OverwriteReason)
 
int seek (samplepos_t, bool complete_refill=false)
 
bool can_internal_playback_seek (samplecnt_t)
 
void internal_playback_seek (samplecnt_t)
 
void non_realtime_locate (samplepos_t)
 
bool overwrite_existing_buffers ()
 
samplecnt_t get_captured_samples (uint32_t n=0) const
 
void transport_looped (samplepos_t)
 
void transport_stopped_wallclock (struct tm &, time_t, bool)
 
void mark_capture_xrun ()
 
bool pending_overwrite () const
 
void set_slaved (bool)
 
ChanCount n_channels ()
 
samplepos_t get_capture_start_sample (uint32_t n=0) const
 
AlignStyle alignment_style () const
 
AlignChoice alignment_choice () const
 
samplepos_t current_capture_start () const
 
samplepos_t current_capture_end () const
 
void set_align_style (AlignStyle, bool force=false)
 
void set_align_choice (AlignChoice, bool force=false)
 
void playlist_modified ()
 
int use_playlist (DataType, std::shared_ptr< Playlist >, bool set_orig=true)
 
int find_and_use_playlist (DataType, PBD::ID const &)
 
int use_copy_playlist ()
 
int use_new_playlist (DataType)
 
int use_default_new_playlist ()
 
void adjust_playback_buffering ()
 
void adjust_capture_buffering ()
 
void time_domain_changed ()
 
- Public Member Functions inherited from ARDOUR::Route
 Route (Session &, std::string name, PresentationInfo::Flag flags=PresentationInfo::Flag(0), DataType default_type=DataType::AUDIO)
 
virtual ~Route ()
 
DataType data_type () const
 
std::shared_ptr< IOinput () const
 
std::shared_ptr< IOoutput () const
 
IOVector all_inputs () const
 
IOVector all_outputs () const
 
ChanCount n_inputs () const
 
ChanCount n_outputs () const
 
bool active () const
 
void set_active (bool yn, void *)
 
std::string ensure_track_or_route_name (std::string) const
 
std::string comment ()
 
void set_comment (std::string str, void *src)
 
std::shared_ptr< MonitorControlmonitoring_control () const
 
std::shared_ptr< SurroundSendsurround_send () const
 
std::shared_ptr< SurroundReturnsurround_return () const
 
MonitorState monitoring_state () const
 
virtual MonitorState get_input_monitoring_state (bool recording, bool talkback) const
 
virtual void filter_input (BufferSet &)
 
int roll (pframes_t nframes, samplepos_t start_sample, samplepos_t end_sample, bool &need_butler)
 
int no_roll (pframes_t nframes, samplepos_t start_sample, samplepos_t end_sample, bool state_changing)
 
int silence (pframes_t)
 
void non_realtime_transport_stop (samplepos_t now, bool flush)
 
virtual void realtime_handle_transport_stopped ()
 
virtual void realtime_locate (bool)
 
void set_loop (ARDOUR::Location *)
 
void shift (timepos_t const &, timecnt_t const &)
 
void cut_copy_section (timepos_t const &start, timepos_t const &end, timepos_t const &to, SectionOperation const op)
 
void clear_all_solo_state ()
 
bool soloed_by_others () const
 
bool soloed_by_others_upstream () const
 
bool soloed_by_others_downstream () const
 
bool self_soloed () const
 
bool soloed () const
 
void push_solo_upstream (int32_t delta)
 
void push_solo_isolate_upstream (int32_t delta)
 
bool can_solo () const
 
bool is_safe () const
 
bool can_monitor () const
 
void enable_monitor_send ()
 
void enable_surround_send ()
 
void set_denormal_protection (bool yn)
 
bool denormal_protection () const
 
void set_meter_point (MeterPoint)
 
bool apply_processor_changes_rt ()
 
void emit_pending_signals ()
 
MeterPoint meter_point () const
 
void update_send_delaylines ()
 
void set_meter_type (MeterType t)
 
MeterType meter_type () const
 
void set_disk_io_point (DiskIOPoint)
 
DiskIOPoint disk_io_point () const
 
void stop_triggers (bool now)
 
void tempo_map_changed ()
 
std::shared_ptr< Ampamp () const
 
std::shared_ptr< Amptrim () const
 
std::shared_ptr< PolarityProcessorpolarity () const
 
std::shared_ptr< PeakMeterpeak_meter ()
 
std::shared_ptr< const PeakMeterpeak_meter () const
 
std::shared_ptr< PeakMetershared_peak_meter () const
 
std::shared_ptr< TriggerBoxtriggerbox () const
 
void flush_processors ()
 
void foreach_processor (std::function< void(std::weak_ptr< Processor >)> method) const
 
std::shared_ptr< Processornth_processor (uint32_t n)
 
std::shared_ptr< Processorprocessor_by_id (PBD::ID) const
 
std::shared_ptr< Processornth_plugin (uint32_t n) const
 
std::shared_ptr< Processornth_send (uint32_t n) const
 
bool has_io_processor_named (const std::string &)
 
ChanCount max_processor_streams () const
 
std::list< std::string > unknown_processors () const
 
RoutePinWindowProxypinmgr_proxy () const
 
void set_pingmgr_proxy (RoutePinWindowProxy *wp)
 
PatchChangeGridDialogpatch_selector_dialog () const
 
void set_patch_selector_dialog (PatchChangeGridDialog *d)
 
std::shared_ptr< AutomationControlautomation_control_recurse (PBD::ID const &id) const
 
void automatables (PBD::ControllableSet &) const
 
void queue_surround_processors_changed ()
 
std::shared_ptr< InternalSendmonitor_send () const
 
std::shared_ptr< Deliverymain_outs () const
 
std::shared_ptr< InternalReturninternal_return () const
 
std::shared_ptr< MonitorProcessormonitor_control () const
 
std::shared_ptr< Sendinternal_send_for (std::shared_ptr< const Route > target) const
 
void add_internal_return ()
 
void add_send_to_internal_return (InternalSend *)
 
void remove_send_from_internal_return (InternalSend *)
 
void listen_position_changed ()
 
std::shared_ptr< CapturingProcessoradd_export_point ()
 
int add_processor (std::shared_ptr< Processor >, Placement placement, ProcessorStreams *err=0, bool activation_allowed=true)
 
int add_processor_by_index (std::shared_ptr< Processor >, int, ProcessorStreams *err=0, bool activation_allowed=true)
 
int add_processor (std::shared_ptr< Processor >, std::shared_ptr< Processor >, ProcessorStreams *err=0, bool activation_allowed=true)
 
int add_processors (const ProcessorList &, std::shared_ptr< Processor >, ProcessorStreams *err=0)
 
std::shared_ptr< Processorbefore_processor_for_placement (Placement)
 
std::shared_ptr< Processorbefore_processor_for_index (int)
 
bool processors_reorder_needs_configure (const ProcessorList &new_order)
 
int remove_processor (std::shared_ptr< Processor > proc, ProcessorStreams *err=0, bool need_process_lock=true)
 
int replace_processor (std::shared_ptr< Processor > old, std::shared_ptr< Processor > sub, ProcessorStreams *err=0)
 
int remove_processors (const ProcessorList &, ProcessorStreams *err=0)
 
int reorder_processors (const ProcessorList &new_order, ProcessorStreams *err=0)
 
void disable_processors (Placement)
 
void disable_processors ()
 
void disable_plugins (Placement)
 
void disable_plugins ()
 
void ab_plugins (bool forward)
 
void clear_processors (Placement)
 
void all_visible_processors_active (bool)
 
void move_instrument_down (bool postfader=false)
 
bool strict_io () const
 
bool set_strict_io (bool)
 
bool reset_plugin_insert (std::shared_ptr< Processor > proc)
 
bool customize_plugin_insert (std::shared_ptr< Processor > proc, uint32_t count, ChanCount outs, ChanCount sinks)
 
bool add_remove_sidechain (std::shared_ptr< Processor > proc, bool)
 
bool plugin_preset_output (std::shared_ptr< Processor > proc, ChanCount outs)
 
bool add_sidechain (std::shared_ptr< Processor > proc)
 
bool remove_sidechain (std::shared_ptr< Processor > proc)
 
samplecnt_t update_signal_latency (bool apply_to_delayline=false, bool *delayline_update_needed=NULL)
 
void apply_latency_compensation ()
 
samplecnt_t set_private_port_latencies (bool playback) const
 
void set_public_port_latencies (samplecnt_t, bool playback, bool with_latcomp) const
 
samplecnt_t signal_latency () const
 
samplecnt_t playback_latency (bool incl_downstream=false) const
 
bool is_track ()
 
int64_t track_number () const
 
void set_track_number (int64_t tn)
 
XMLNodeget_state () const
 
XMLNodeget_template ()
 
XMLNodeget_processor_state ()
 
void set_processor_state (const XMLNode &, int version)
 
std::weak_ptr< Routeweakroute ()
 
int save_as_template (const std::string &path, const std::string &name, const std::string &description)
 
int add_aux_send (std::shared_ptr< Route >, std::shared_ptr< Processor >)
 
int add_foldback_send (std::shared_ptr< Route >, bool post_fader)
 
void remove_monitor_send ()
 
void remove_surround_send ()
 
bool direct_feeds_according_to_reality (std::shared_ptr< GraphNode >, bool *via_send_only=0)
 
std::string graph_node_name () const
 
bool direct_feeds_according_to_graph (std::shared_ptr< Route >, bool *via_send_only=0)
 
bool feeds (std::shared_ptr< Route >)
 
std::set< std::shared_ptr< Route > > signal_sources (bool via_sends_only=false)
 
bool output_effectively_connected () const
 
std::shared_ptr< AutomationControlget_control (const Evoral::Parameter &param)
 
std::shared_ptr< SoloControlsolo_control () const
 
std::shared_ptr< MuteControlmute_control () const
 
bool can_be_muted_by_others () const
 
bool muted () const
 
bool muted_by_masters () const
 
bool muted_by_self () const
 
bool muted_by_others_soloing () const
 
std::shared_ptr< SoloIsolateControlsolo_isolate_control () const
 
std::shared_ptr< SoloSafeControlsolo_safe_control () const
 
std::shared_ptr< Pannerpanner () const
 
std::shared_ptr< PannerShellpanner_shell () const
 
std::shared_ptr< Pannablepannable () const
 
std::shared_ptr< GainControlgain_control () const
 
std::shared_ptr< GainControltrim_control () const
 
std::shared_ptr< GainControlvolume_control () const
 
std::shared_ptr< PhaseControlphase_control () const
 
void set_volume_applies_to_output (bool)
 
bool volume_applies_to_output () const
 
std::shared_ptr< Processorthe_instrument () const
 
InstrumentInfoinstrument_info ()
 
bool instrument_fanned_out () const
 
std::shared_ptr< AutomationControlpan_azimuth_control () const
 
std::shared_ptr< AutomationControlpan_elevation_control () const
 
std::shared_ptr< AutomationControlpan_width_control () const
 
std::shared_ptr< AutomationControlpan_frontback_control () const
 
std::shared_ptr< AutomationControlpan_lfe_control () const
 
uint32_t eq_band_cnt () const
 
std::string eq_band_name (uint32_t) const
 
std::shared_ptr< AutomationControlmapped_control (enum WellKnownCtrl, uint32_t band=0) const
 
std::shared_ptr< ReadOnlyControlmapped_output (enum WellKnownData) const
 
std::shared_ptr< AutomationControlsend_level_controllable (uint32_t n, bool locked=false) const
 
std::shared_ptr< AutomationControlsend_enable_controllable (uint32_t n) const
 
std::shared_ptr< AutomationControlsend_pan_azimuth_controllable (uint32_t n) const
 
std::shared_ptr< AutomationControlsend_pan_azimuth_enable_controllable (uint32_t n) const
 
std::string send_name (uint32_t n) const
 
std::shared_ptr< AutomationControlmaster_send_enable_controllable () const
 
void protect_automation ()
 
bool has_external_redirects () const
 
void monitor_run (samplepos_t start_sample, samplepos_t end_sample, pframes_t nframes)
 
bool slaved_to (std::shared_ptr< VCA >) const
 
bool slaved () const
 
- Public Member Functions inherited from ARDOUR::Stripable
 Stripable (Session &session, std::string const &name, PresentationInfo const &)
 
virtual ~Stripable ()
 
bool is_auditioner () const
 
bool is_private_route () const
 
bool is_master () const
 
bool is_monitor () const
 
bool is_foldbackbus () const
 
bool is_surround_master () const
 
bool is_main_bus () const
 
bool is_singleton () const
 
bool is_hidden () const
 
bool is_selected () const
 
PresentationInfo const & presentation_info () const
 
PresentationInfopresentation_info ()
 
PresentationInfopresentation_info_ptr ()
 
void set_presentation_order (PresentationInfo::order_t)
 
StripableColorDialogactive_color_picker () const
 
void set_active_color_picker (StripableColorDialog *d)
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
- 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 ()
 
std::shared_ptr< Evoral::Controlcontrol_factory (const Evoral::Parameter &id)
 
std::shared_ptr< AutomationControlautomation_control (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 automation_run (samplepos_t, pframes_t, bool only_active=false)
 
virtual std::string describe_parameter (Evoral::Parameter param)
 
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)
 
- Public Member Functions inherited from ARDOUR::GraphNode
 GraphNode (std::shared_ptr< Graph > Graph)
 
void prep (GraphChain const *)
 
void run (GraphChain const *)
 
- Public Member Functions inherited from ARDOUR::ProcessNode
virtual ~ProcessNode ()
 
- Public Member Functions inherited from ARDOUR::GraphActivision
 GraphActivision ()
 
virtual ~GraphActivision ()
 
node_set_t const & activation_set (GraphChain const *const g) const
 
int init_refcount (GraphChain const *const g) const
 
void flush_graph_activision_rcu ()
 
- Public Member Functions inherited from ARDOUR::Soloable
virtual ~Soloable ()
 
- Public Member Functions inherited from ARDOUR::Muteable
 Muteable (Session &, std::string const &name)
 
virtual ~Muteable ()
 
virtual void act_on_mute ()
 
std::shared_ptr< MuteMastermute_master () const
 
- Public Member Functions inherited from ARDOUR::Monitorable
virtual ~Monitorable ()
 
- Public Member Functions inherited from ARDOUR::RouteGroupMember
 RouteGroupMember ()
 
virtual ~RouteGroupMember ()
 
RouteGrouproute_group () const
 
- Public Member Functions inherited from ARDOUR::Recordable
virtual ~Recordable ()
 

Static Public Member Functions

static void zero_diskstream_id_in_xml (XMLNode &)
 
- Static Public Member Functions inherited from ARDOUR::Route
static void set_name_in_state (XMLNode &, const std::string &)
 
- 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)
 

Public Attributes

PBD::Signal< void()> FreezeChange
 
PBD::Signal< void()> PlaylistChanged
 
PBD::Signal< void()> PlaylistAdded
 
PBD::Signal< void()> SpeedChanged
 
PBD::Signal< void()> AlignmentStyleChanged
 
PBD::Signal< void()> ChanCountChanged
 
- Public Attributes inherited from ARDOUR::Route
PBD::Signal< void()> active_changed
 
PBD::Signal< void()> denormal_protection_changed
 
PBD::Signal< void()> comment_changed
 
PBD::Signal< void()> track_number_changed
 
PBD::Signal< void(RouteProcessorChange)> processors_changed
 
PBD::Signal< void(void *)> record_enable_changed
 
PBD::Signal< void()> processor_latency_changed
 
PBD::Signal< void()> meter_change
 
PBD::Signal< void()> io_changed
 
PBD::Signal< void(void *)> SelectedChanged
 
- Public Attributes inherited from ARDOUR::Stripable
PBD::Signal< void(std::string, void *)> gui_changed
 
PBD::Signal< void()> MappedControlsChanged
 
- 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::Muteable
PBD::Signal< void()> mute_points_changed
 
- Public Attributes inherited from ARDOUR::RouteGroupMember
PBD::Signal< void()> route_group_changed
 

Protected Member Functions

XMLNodestate (bool save_template) const
 
void update_input_meter ()
 
virtual void set_state_part_two ()=0
 
virtual void record_enable_changed (bool, PBD::Controllable::GroupControlDisposition)
 
virtual void record_safe_changed (bool, PBD::Controllable::GroupControlDisposition)
 
virtual void monitoring_changed (bool, PBD::Controllable::GroupControlDisposition)
 
void set_align_choice_from_io ()
 
void use_captured_audio_sources (SourceList &, CaptureInfos const &)
 
void use_captured_midi_sources (SourceList &, CaptureInfos const &)
 
- Protected Member Functions inherited from ARDOUR::Route
void process ()
 
void catch_up_on_solo_mute_override ()
 
void set_listen (bool)
 
virtual int no_roll_unlocked (pframes_t nframes, samplepos_t start_sample, samplepos_t end_sample, bool session_state_changing)
 
virtual void snapshot_out_of_band_data (samplecnt_t)
 
virtual void write_out_of_band_data (BufferSet &, samplecnt_t) const
 
virtual void update_controls (BufferSet const &)
 
void process_output_buffers (BufferSet &bufs, samplepos_t start_sample, samplepos_t end_sample, pframes_t nframes, bool gain_automation_ok, bool run_disk_processors)
 
void flush_processor_buffers_locked (samplecnt_t nframes)
 
virtual void bounce_process (BufferSet &bufs, samplepos_t start_sample, samplecnt_t nframes, std::shared_ptr< Processor > endpoint, bool include_endpoint, bool for_export, bool for_freeze)
 
samplecnt_t bounce_get_latency (std::shared_ptr< Processor > endpoint, bool include_endpoint, bool for_export, bool for_freeze) const
 
ChanCount bounce_get_output_streams (ChanCount &cc, std::shared_ptr< Processor > endpoint, bool include_endpoint, bool for_export, bool for_freeze) const
 
bool can_freeze_processor (std::shared_ptr< Processor >, bool allow_routing=false) const
 
virtual ChanCount input_streams () const
 
int configure_processors (ProcessorStreams *)
 
void silence_unlocked (pframes_t)
 
uint32_t pans_required () const
 
ChanCount n_process_buffers ()
 
bool is_internal_processor (std::shared_ptr< Processor >) const
 
std::shared_ptr< Processorthe_instrument_unlocked () const
 
SlavableAutomationControlList slavables () 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 &)
 
- 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::GraphNode
void trigger ()
 

Protected Attributes

std::shared_ptr< Playlist_playlists [DataType::num_types]
 
std::optional< MeterPoint_saved_meter_point
 
bool _record_prepared
 
TrackMode _mode
 
FreezeRecord _freeze_record
 
XMLNodepending_state
 
std::shared_ptr< AutomationControl_record_enable_control
 
std::shared_ptr< AutomationControl_record_safe_control
 
AlignChoice _alignment_choice
 
- Protected Attributes inherited from ARDOUR::Route
bool _active
 
samplecnt_t _signal_latency
 
samplecnt_t _output_latency
 
ProcessorList _processors
 
Glib::Threads::RWLock _processor_lock
 
std::shared_ptr< IO_input
 
std::shared_ptr< IO_output
 
std::shared_ptr< Delivery_main_outs
 
std::shared_ptr< InternalSend_monitor_send
 
std::shared_ptr< InternalReturn_intreturn
 
std::shared_ptr< MonitorProcessor_monitor_control
 
std::shared_ptr< Pannable_pannable
 
std::shared_ptr< DiskReader_disk_reader
 
std::shared_ptr< DiskWriter_disk_writer
 
std::shared_ptr< MonitorControl_monitoring_control
 
std::shared_ptr< SurroundSend_surround_send
 
std::shared_ptr< SurroundReturn_surround_return
 
DiskIOPoint _disk_io_point
 
ProcessorList _pending_processor_order
 
std::atomic< int > _pending_process_reorder
 
std::atomic< int > _pending_listen_change
 
std::atomic< int > _pending_surround_send
 
std::atomic< int > _pending_signals
 
MeterPoint _meter_point
 
MeterPoint _pending_meter_point
 
bool _denormal_protection
 
bool _recordable: 1
 
std::shared_ptr< SoloControl_solo_control
 
std::shared_ptr< MuteControl_mute_control
 
std::shared_ptr< SoloIsolateControl_solo_isolate_control
 
std::shared_ptr< SoloSafeControl_solo_safe_control
 
std::string _comment
 
bool _have_internal_generator
 
DataType _default_type
 
InstrumentInfo _instrument_info
 
bool _instrument_fanned_out
 
Location_loop_location
 
ChanCount processor_max_streams
 
ChanCount processor_out_streams
 
std::shared_ptr< GainControl_gain_control
 
std::shared_ptr< GainControl_trim_control
 
std::shared_ptr< GainControl_volume_control
 
std::shared_ptr< PhaseControl_phase_control
 
std::shared_ptr< Amp_amp
 
std::shared_ptr< Amp_trim
 
std::shared_ptr< Amp_volume
 
std::shared_ptr< PeakMeter_meter
 
std::shared_ptr< PolarityProcessor_polarity
 
std::shared_ptr< TriggerBox_triggerbox
 
bool _volume_applies_to_output
 
std::shared_ptr< DelayLine_delayline
 
- Protected Attributes inherited from ARDOUR::Stripable
PresentationInfo _presentation_info
 
- 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::GraphNode
std::shared_ptr< Graph_graph
 
- Protected Attributes inherited from ARDOUR::GraphActivision
SerializedRCUManager< ActivationMap_activation_set
 
SerializedRCUManager< RefCntMap_init_refcount
 
- Protected Attributes inherited from ARDOUR::Muteable
std::shared_ptr< MuteMaster_mute_master
 
- Protected Attributes inherited from ARDOUR::RouteGroupMember
RouteGroup_route_group
 

Private Member Functions

void parameter_changed (std::string const &p)
 
void input_changed ()
 
void chan_count_changed ()
 

Private Attributes

std::string _diskstream_name
 
bool _pending_name_change
 

Additional Inherited Members

- Static Public Attributes inherited from ARDOUR::Route
static PBD::Signal< int(std::shared_ptr< Route >, std::shared_ptr< PluginInsert >, PluginSetupOptions)> PluginSetup
 
static PBD::Signal< void(std::weak_ptr< Route >)> FanOut
 
- 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
 
- Protected Types inherited from ARDOUR::Route
enum  {
  EmitNone = 0x00 , EmitMeterChanged = 0x01 , EmitMeterVisibilityChange = 0x02 , EmitRtProcessorChange = 0x04 ,
  EmitSendReturnChange = 0x08
}
 

Detailed Description

A track is an route (bus) with a recordable diskstream and related objects relevant to recording, playback and editing.

Specifically a track has a playlist object that describes material to be played from disk, and modifies that object during recording and editing.

Definition at line 54 of file track.h.

Member Enumeration Documentation

◆ FreezeState

Enumerator
NoFreeze 
Frozen 
UnFrozen 

Definition at line 75 of file track.h.

Constructor & Destructor Documentation

◆ Track()

ARDOUR::Track::Track ( Session ,
std::string  name,
PresentationInfo::Flag  f = PresentationInfo::Flag(0),
TrackMode  m = Normal,
DataType  default_type = DataType::AUDIO 
)

◆ ~Track()

virtual ARDOUR::Track::~Track ( )
virtual

Member Function Documentation

◆ adjust_capture_buffering()

void ARDOUR::Track::adjust_capture_buffering ( )

◆ adjust_playback_buffering()

void ARDOUR::Track::adjust_playback_buffering ( )

◆ alignment_choice()

AlignChoice ARDOUR::Track::alignment_choice ( ) const

◆ alignment_style()

AlignStyle ARDOUR::Track::alignment_style ( ) const

◆ bounce()

virtual std::shared_ptr<Region> ARDOUR::Track::bounce ( InterThreadInfo itt,
std::string const &  name 
)
virtual

bounce track from session start to session end to new region

Parameters
ittasynchronous progress report and cancel
namename (or name prefix) to use for bounced region
Returns
a new audio region (or nil in case of error)

Reimplemented in ARDOUR::Auditioner.

◆ bounce_range()

virtual std::shared_ptr<Region> ARDOUR::Track::bounce_range ( samplepos_t  start,
samplepos_t  end,
InterThreadInfo itt,
std::shared_ptr< Processor endpoint,
bool  include_endpoint,
std::string const &  name = "",
bool  prefix_track_name = false 
)
virtual

Bounce the given range to a new audio region.

Parameters
startstart time (in samples)
endend time (in samples)
ittasynchronous progress report and cancel
endpointthe processor to tap the signal off (or nil for the top)
namename-prefix to use found the bounced range
include_endpointinclude the given processor in the bounced audio.
prefix_track_nameprefix track name to exported name
Returns
a new audio region (or nil in case of error)

Reimplemented in ARDOUR::Auditioner.

◆ bounceable()

virtual bool ARDOUR::Track::bounceable ( std::shared_ptr< Processor endpoint,
bool  include_endpoint 
) const
pure virtual

Test if the track can be bounced with the given settings. If sends/inserts/returns are present in the signal path or the given track has no audio outputs bouncing is not possible.

Parameters
endpointthe processor to tap the signal off (or nil for the top)
include_endpointinclude the given processor in the bounced audio.
Returns
true if the track can be bounced, or false otherwise.

Implemented in ARDOUR::Auditioner, ARDOUR::MidiTrack, and ARDOUR::AudioTrack.

◆ can_be_record_enabled()

bool ARDOUR::Track::can_be_record_enabled ( )
virtual

Implements ARDOUR::Recordable.

◆ can_be_record_safe()

bool ARDOUR::Track::can_be_record_safe ( )
virtual

Implements ARDOUR::Recordable.

◆ can_internal_playback_seek()

bool ARDOUR::Track::can_internal_playback_seek ( samplecnt_t  )

◆ can_record()

bool ARDOUR::Track::can_record ( )
virtual

Reimplemented from ARDOUR::Route.

◆ capture_buffer_load()

float ARDOUR::Track::capture_buffer_load ( ) const

◆ chan_count_changed()

void ARDOUR::Track::chan_count_changed ( )
private

◆ current_capture_end()

samplepos_t ARDOUR::Track::current_capture_end ( ) const

◆ current_capture_start()

samplepos_t ARDOUR::Track::current_capture_start ( ) const

◆ declick_in_progress()

bool ARDOUR::Track::declick_in_progress ( ) const
virtual

Reimplemented from ARDOUR::Route.

◆ do_flush()

int ARDOUR::Track::do_flush ( RunContext  ,
bool  force = false 
)

◆ do_refill()

int ARDOUR::Track::do_refill ( )

◆ ensure_input_monitoring()

void ARDOUR::Track::ensure_input_monitoring ( bool  )

◆ export_stuff()

virtual int ARDOUR::Track::export_stuff ( BufferSet bufs,
samplepos_t  start_sample,
samplecnt_t  nframes,
std::shared_ptr< Processor endpoint,
bool  include_endpoint,
bool  for_export,
bool  for_freeze,
MidiNoteTracker  
)
pure virtual

◆ find_and_use_playlist()

int ARDOUR::Track::find_and_use_playlist ( DataType  ,
PBD::ID const &   
)

◆ freeze_me()

virtual void ARDOUR::Track::freeze_me ( InterThreadInfo )
pure virtual

◆ freeze_state()

FreezeState ARDOUR::Track::freeze_state ( ) const

◆ get_capture_start_sample()

samplepos_t ARDOUR::Track::get_capture_start_sample ( uint32_t  n = 0) const

◆ get_captured_samples()

samplecnt_t ARDOUR::Track::get_captured_samples ( uint32_t  n = 0) const

◆ init()

int ARDOUR::Track::init ( )
virtual

Reimplemented from ARDOUR::Route.

◆ input_changed()

void ARDOUR::Track::input_changed ( )
private

◆ internal_playback_seek()

void ARDOUR::Track::internal_playback_seek ( samplecnt_t  )

◆ last_capture_sources()

std::list<std::shared_ptr<Source> >& ARDOUR::Track::last_capture_sources ( )

◆ mark_capture_xrun()

void ARDOUR::Track::mark_capture_xrun ( )

◆ mode()

TrackMode ARDOUR::Track::mode ( ) const
inline

Definition at line 65 of file track.h.

◆ monitoring_changed()

virtual void ARDOUR::Track::monitoring_changed ( bool  ,
PBD::Controllable::GroupControlDisposition   
)
protectedvirtual

Reimplemented in ARDOUR::MidiTrack.

◆ n_channels()

ChanCount ARDOUR::Track::n_channels ( )

◆ non_realtime_locate()

void ARDOUR::Track::non_realtime_locate ( samplepos_t  )
virtual

Reimplemented from ARDOUR::Route.

◆ overwrite_existing_buffers()

bool ARDOUR::Track::overwrite_existing_buffers ( )

◆ parameter_changed()

void ARDOUR::Track::parameter_changed ( std::string const &  p)
private

◆ pending_overwrite()

bool ARDOUR::Track::pending_overwrite ( ) const

◆ playback_buffer_load()

float ARDOUR::Track::playback_buffer_load ( ) const

◆ playlist()

std::shared_ptr<Playlist> ARDOUR::Track::playlist ( )

◆ playlist_modified()

void ARDOUR::Track::playlist_modified ( )

◆ playlist_state()

XMLNode& ARDOUR::Track::playlist_state ( ) const

◆ prep_record_enabled()

int ARDOUR::Track::prep_record_enabled ( bool  )
virtual

Implements ARDOUR::Recordable.

◆ rec_enable_control()

std::shared_ptr<AutomationControl> ARDOUR::Track::rec_enable_control ( ) const
inlinevirtual

Reimplemented from ARDOUR::Stripable.

Definition at line 125 of file track.h.

◆ rec_safe_control()

std::shared_ptr<AutomationControl> ARDOUR::Track::rec_safe_control ( ) const
inlinevirtual

Reimplemented from ARDOUR::Stripable.

Definition at line 126 of file track.h.

◆ record_enable_changed()

virtual void ARDOUR::Track::record_enable_changed ( bool  ,
PBD::Controllable::GroupControlDisposition   
)
protectedvirtual

◆ record_safe_changed()

virtual void ARDOUR::Track::record_safe_changed ( bool  ,
PBD::Controllable::GroupControlDisposition   
)
protectedvirtual

◆ request_input_monitoring()

void ARDOUR::Track::request_input_monitoring ( bool  )

◆ reset_write_sources()

void ARDOUR::Track::reset_write_sources ( bool  mark_write_complete)

◆ resync_take_name()

int ARDOUR::Track::resync_take_name ( std::string  newname = "")

◆ seek()

int ARDOUR::Track::seek ( samplepos_t  ,
bool  complete_refill = false 
)

◆ set_align_choice()

void ARDOUR::Track::set_align_choice ( AlignChoice  ,
bool  force = false 
)

◆ set_align_choice_from_io()

void ARDOUR::Track::set_align_choice_from_io ( )
protected

◆ set_align_style()

void ARDOUR::Track::set_align_style ( AlignStyle  ,
bool  force = false 
)

◆ set_block_size()

void ARDOUR::Track::set_block_size ( pframes_t  )
virtual

Reimplemented from ARDOUR::Route.

◆ set_name()

bool ARDOUR::Track::set_name ( const std::string &  str)
virtual

Reimplemented from ARDOUR::Route.

◆ set_pending_overwrite()

void ARDOUR::Track::set_pending_overwrite ( OverwriteReason  )

◆ set_processor_state()

bool ARDOUR::Track::set_processor_state ( XMLNode const &  node,
int  version,
XMLProperty const *  prop,
ProcessorList new_order,
bool &  must_configure 
)
virtual

Reimplemented from ARDOUR::Route.

◆ set_slaved()

void ARDOUR::Track::set_slaved ( bool  )

◆ set_state()

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

Reimplemented from ARDOUR::Route.

Reimplemented in ARDOUR::Auditioner, ARDOUR::MidiTrack, and ARDOUR::AudioTrack.

◆ set_state_part_two()

virtual void ARDOUR::Track::set_state_part_two ( )
protectedpure virtual

◆ shared_ptr()

std::shared_ptr<Track> ARDOUR::Track::shared_ptr ( )
inline

Definition at line 139 of file track.h.

◆ state()

XMLNode& ARDOUR::Track::state ( bool  save_template) const
protectedvirtual

Reimplemented from ARDOUR::Route.

◆ steal_write_source_name()

std::string ARDOUR::Track::steal_write_source_name ( )

◆ time_domain_changed()

void ARDOUR::Track::time_domain_changed ( )
virtual

Reimplemented from Temporal::TimeDomainProvider.

◆ transport_looped()

void ARDOUR::Track::transport_looped ( samplepos_t  )

◆ transport_stopped_wallclock()

void ARDOUR::Track::transport_stopped_wallclock ( struct tm &  ,
time_t  ,
bool   
)

◆ unfreeze()

virtual void ARDOUR::Track::unfreeze ( )
pure virtual

◆ update_input_meter()

void ARDOUR::Track::update_input_meter ( )
protected

◆ use_captured_audio_sources()

void ARDOUR::Track::use_captured_audio_sources ( SourceList ,
CaptureInfos const &   
)
protected

◆ use_captured_midi_sources()

void ARDOUR::Track::use_captured_midi_sources ( SourceList ,
CaptureInfos const &   
)
protected

◆ use_captured_sources()

void ARDOUR::Track::use_captured_sources ( SourceList ,
CaptureInfos const &   
)
virtual

Reimplemented from ARDOUR::Route.

◆ use_copy_playlist()

int ARDOUR::Track::use_copy_playlist ( )

◆ use_default_new_playlist()

int ARDOUR::Track::use_default_new_playlist ( )
inline

Definition at line 178 of file track.h.

◆ use_new_playlist()

int ARDOUR::Track::use_new_playlist ( DataType  )

◆ use_playlist()

int ARDOUR::Track::use_playlist ( DataType  ,
std::shared_ptr< Playlist ,
bool  set_orig = true 
)

◆ zero_diskstream_id_in_xml()

static void ARDOUR::Track::zero_diskstream_id_in_xml ( XMLNode )
static

Member Data Documentation

◆ _alignment_choice

AlignChoice ARDOUR::Track::_alignment_choice
protected

Definition at line 239 of file track.h.

◆ _diskstream_name

std::string ARDOUR::Track::_diskstream_name
private

Definition at line 250 of file track.h.

◆ _freeze_record

FreezeRecord ARDOUR::Track::_freeze_record
protected

Definition at line 228 of file track.h.

◆ _mode

TrackMode ARDOUR::Track::_mode
protected

Definition at line 201 of file track.h.

◆ _pending_name_change

bool ARDOUR::Track::_pending_name_change
private

Definition at line 251 of file track.h.

◆ _playlists

std::shared_ptr<Playlist> ARDOUR::Track::_playlists[DataType::num_types]
protected

Definition at line 198 of file track.h.

◆ _record_enable_control

std::shared_ptr<AutomationControl> ARDOUR::Track::_record_enable_control
protected

Definition at line 231 of file track.h.

◆ _record_prepared

bool ARDOUR::Track::_record_prepared
protected

Definition at line 200 of file track.h.

◆ _record_safe_control

std::shared_ptr<AutomationControl> ARDOUR::Track::_record_safe_control
protected

Definition at line 232 of file track.h.

◆ _saved_meter_point

std::optional<MeterPoint> ARDOUR::Track::_saved_meter_point
protected

Definition at line 199 of file track.h.

◆ AlignmentStyleChanged

PBD::Signal<void()> ARDOUR::Track::AlignmentStyleChanged

Definition at line 190 of file track.h.

◆ ChanCountChanged

PBD::Signal<void()> ARDOUR::Track::ChanCountChanged

Definition at line 191 of file track.h.

◆ FreezeChange

PBD::Signal<void()> ARDOUR::Track::FreezeChange

Definition at line 186 of file track.h.

◆ pending_state

XMLNode* ARDOUR::Track::pending_state
protected

Definition at line 229 of file track.h.

◆ PlaylistAdded

PBD::Signal<void()> ARDOUR::Track::PlaylistAdded

Definition at line 188 of file track.h.

◆ PlaylistChanged

PBD::Signal<void()> ARDOUR::Track::PlaylistChanged

Definition at line 187 of file track.h.

◆ SpeedChanged

PBD::Signal<void()> ARDOUR::Track::SpeedChanged

Definition at line 189 of file track.h.


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