43 class RecordEnableControl;
44 class RecordSafeControl;
45 class MidiNoteTracker;
94 virtual bool bounceable (std::shared_ptr<Processor> endpoint,
bool include_endpoint)
const = 0;
115 std::shared_ptr<Processor> endpoint,
bool include_endpoint,
116 std::string
const&
name =
"",
bool prefix_track_name =
false);
119 std::shared_ptr<Processor> endpoint,
bool include_endpoint,
bool for_export,
bool for_freeze,
126 std::shared_ptr<AutomationControl>
rec_safe_control()
const {
return _record_safe_control; }
140 return std::dynamic_pointer_cast<Track> (shared_from_this());
179 return use_new_playlist (data_type());
206 : state (st), processor (proc) {}
215 : have_mementos(false)
static const uint32_t num_types
std::list< std::shared_ptr< Processor > > ProcessorList
int use_playlist(DataType, std::shared_ptr< Playlist >, bool set_orig=true)
void reset_write_sources(bool mark_write_complete)
AlignChoice _alignment_choice
void use_captured_sources(SourceList &, CaptureInfos const &)
void time_domain_changed()
virtual void freeze_me(InterThreadInfo &)=0
void transport_stopped_wallclock(struct tm &, time_t, bool)
bool declick_in_progress() const
int seek(samplepos_t, bool complete_refill=false)
std::shared_ptr< AutomationControl > _record_enable_control
void request_input_monitoring(bool)
void transport_looped(samplepos_t)
bool overwrite_existing_buffers()
void chan_count_changed()
int use_new_playlist(DataType)
void adjust_capture_buffering()
std::shared_ptr< AutomationControl > _record_safe_control
virtual int set_state(const XMLNode &, int version)
void internal_playback_seek(samplecnt_t)
samplepos_t current_capture_start() const
int find_and_use_playlist(DataType, PBD::ID const &)
std::string steal_write_source_name()
PBD::Signal< void()> PlaylistChanged
int use_default_new_playlist()
virtual void unfreeze()=0
void update_input_meter()
virtual std::shared_ptr< Region > bounce(InterThreadInfo &itt, std::string const &name)
std::optional< MeterPoint > _saved_meter_point
std::shared_ptr< AutomationControl > rec_safe_control() const
PBD::Signal< void()> AlignmentStyleChanged
FreezeState freeze_state() const
std::shared_ptr< Track > shared_ptr()
PBD::Signal< void()> PlaylistAdded
PBD::Signal< void()> ChanCountChanged
bool set_name(const std::string &str)
PBD::Signal< void()> FreezeChange
bool pending_overwrite() const
void use_captured_audio_sources(SourceList &, CaptureInfos const &)
void adjust_playback_buffering()
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 void set_state_part_two()=0
bool set_processor_state(XMLNode const &node, int version, XMLProperty const *prop, ProcessorList &new_order, bool &must_configure)
AlignChoice alignment_choice() const
virtual void record_enable_changed(bool, PBD::Controllable::GroupControlDisposition)
void set_pending_overwrite(OverwriteReason)
std::shared_ptr< Playlist > playlist()
float capture_buffer_load() const
Track(Session &, std::string name, PresentationInfo::Flag f=PresentationInfo::Flag(0), TrackMode m=Normal, DataType default_type=DataType::AUDIO)
bool _pending_name_change
float playback_buffer_load() const
bool can_internal_playback_seek(samplecnt_t)
void use_captured_midi_sources(SourceList &, CaptureInfos const &)
std::string _diskstream_name
void set_align_style(AlignStyle, bool force=false)
static void zero_diskstream_id_in_xml(XMLNode &)
FreezeRecord _freeze_record
PBD::Signal< void()> SpeedChanged
void non_realtime_locate(samplepos_t)
virtual std::shared_ptr< Region > 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 void record_safe_changed(bool, PBD::Controllable::GroupControlDisposition)
std::list< std::shared_ptr< Source > > & last_capture_sources()
bool can_be_record_enabled()
void set_align_choice(AlignChoice, bool force=false)
samplecnt_t get_captured_samples(uint32_t n=0) const
std::shared_ptr< AutomationControl > rec_enable_control() const
int do_flush(RunContext, bool force=false)
AlignStyle alignment_style() const
bool can_be_record_safe()
void ensure_input_monitoring(bool)
void set_block_size(pframes_t)
virtual bool bounceable(std::shared_ptr< Processor > endpoint, bool include_endpoint) const =0
void parameter_changed(std::string const &p)
samplepos_t get_capture_start_sample(uint32_t n=0) const
XMLNode & playlist_state() const
void set_align_choice_from_io()
virtual void monitoring_changed(bool, PBD::Controllable::GroupControlDisposition)
XMLNode & state(bool save_template) const
int resync_take_name(std::string newname="")
int prep_record_enabled(bool)
samplepos_t current_capture_end() const
GtkImageIconNameData name
PBD::PropertyDescriptor< timepos_t > start
std::vector< std::shared_ptr< Source > > SourceList
Temporal::samplecnt_t samplecnt_t
std::vector< CaptureInfo * > CaptureInfos
Temporal::samplepos_t samplepos_t
DEFINE_ENUM_CONVERT(ARDOUR::Track::FreezeState)
FreezeRecordProcessorInfo(XMLNode &st, std::shared_ptr< Processor > proc)
std::shared_ptr< Processor > processor
std::vector< FreezeRecordProcessorInfo * > processor_info
std::shared_ptr< Playlist > playlist