19 #ifndef __ardour_track_h__
20 #define __ardour_track_h__
22 #include <boost/shared_ptr.hpp>
46 bool set_name (
const std::string& str);
47 void resync_track_name ();
68 int declick,
bool& need_butler) = 0;
72 virtual DataType data_type ()
const = 0;
76 void use_new_diskstream ();
88 FreezeState freeze_state()
const;
91 virtual void unfreeze () = 0;
104 virtual int set_state (
const XMLNode&,
int version);
105 static void zero_diskstream_id_in_xml (
XMLNode&);
109 bool record_enabled()
const;
110 void set_record_enabled (
bool yn,
void *src);
111 void prep_record_enabled (
bool yn,
void *src);
113 bool using_diskstream_id (
PBD::ID)
const;
119 void request_input_monitoring (
bool);
120 void ensure_input_monitoring (
bool);
121 bool destructive ()
const;
122 std::list<boost::shared_ptr<Source> > & last_capture_sources ();
123 void set_capture_offset ();
124 std::string steal_write_source_name ();
125 void reset_write_sources (
bool,
bool force =
false);
126 float playback_buffer_load ()
const;
127 float capture_buffer_load ()
const;
129 int do_flush (
RunContext,
bool force =
false);
130 void set_pending_overwrite (
bool);
131 int seek (
framepos_t,
bool complete_refill =
false);
135 void non_realtime_input_change ();
137 void non_realtime_set_speed ();
138 int overwrite_existing_buffers ();
139 framecnt_t get_captured_frames (uint32_t n = 0)
const;
142 bool realtime_set_speed (
double,
bool);
143 void transport_stopped_wallclock (
struct tm &, time_t,
bool);
144 bool pending_overwrite ()
const;
145 double speed ()
const;
147 void set_slaved (
bool);
149 framepos_t get_capture_start_frame (uint32_t n = 0)
const;
154 void playlist_modified ();
156 void set_align_style (
AlignStyle,
bool force=
false);
157 void set_align_choice (
AlignChoice,
bool force=
false);
158 int use_copy_playlist ();
159 int use_new_playlist ();
160 void adjust_playback_buffering ();
161 void adjust_capture_buffering ();
183 : state (st), processor (proc) {}
192 : have_mementos(false)
206 void set_value (
double);
212 virtual void set_state_part_two () = 0;
228 void diskstream_playlist_changed ();
229 void diskstream_record_enable_changed ();
230 void diskstream_speed_changed ();
231 void diskstream_alignment_style_changed ();
232 void parameter_changed (std::string
const & p);
PBD::Signal0< void > TrackModeChanged
FreezeRecord _freeze_record
PBD::Signal0< void > DiskstreamChanged
LIBARDOUR_API PBD::PropertyDescriptor< bool > hidden
PBD::Signal0< void > FreezeChange
MeterPoint _saved_meter_point
boost::weak_ptr< Track > track
virtual int set_mode(TrackMode)
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
boost::shared_ptr< AutomationControl > rec_enable_control()
boost::shared_ptr< Playlist > playlist
PBD::Signal0< void > AlignmentStyleChanged
boost::shared_ptr< RecEnableControl > _rec_enable_control
std::vector< FreezeRecordProcessorInfo * > processor_info
boost::shared_ptr< Processor > processor
PBD::Signal0< void > SpeedChanged
MonitorChoice _monitoring
PBD::Signal0< void > PlaylistChanged
FreezeRecordProcessorInfo(XMLNode &st, boost::shared_ptr< Processor > proc)
MonitorChoice monitoring_choice() const
PBD::Signal0< void > MonitoringChanged
std::string _diskstream_name
PBD::Signal0< void > RecordEnableChanged
boost::shared_ptr< Diskstream > _diskstream
bool needs_butler() const
static LilvNode * get_value(LilvWorld *world, const LilvNode *subject, const LilvNode *predicate)
LIBARDOUR_API bool init(bool with_vst, bool try_optimization, const char *localedir)
virtual bool can_use_mode(TrackMode, bool &)