X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Ftrack.h;h=587a8dcd1b430a4564b20517241903f2398fa1d9;hb=722defe41a6119cfe6e9f5a66fdcb2408c12a455;hp=8f68f63d05e12baa8a635fa5a890fa270eff6f81;hpb=d8a9f64bbc21e4d5dac66474bcad754f4fa9d1e7;p=ardour.git diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h index 8f68f63d05..587a8dcd1b 100644 --- a/libs/ardour/ardour/track.h +++ b/libs/ardour/ardour/track.h @@ -21,6 +21,7 @@ #include +#include "ardour/interthread_info.h" #include "ardour/route.h" #include "ardour/public_diskstream.h" @@ -50,9 +51,11 @@ class Track : public Route, public PublicDiskstream virtual void set_monitoring (MonitorChoice); MonitorChoice monitoring_choice() const { return _monitoring; } - MonitorState monitoring_state(); + MonitorState monitoring_state () const; PBD::Signal0 MonitoringChanged; + MeterState metering_state () const; + virtual int no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, bool state_changing); @@ -85,8 +88,14 @@ class Track : public Route, public PublicDiskstream virtual void freeze_me (InterThreadInfo&) = 0; virtual void unfreeze () = 0; + /** @return true if the track can be bounced, or false otherwise. + */ + virtual bool bounceable (boost::shared_ptr endpoint, bool include_endpoint) const = 0; virtual boost::shared_ptr bounce (InterThreadInfo&) = 0; - virtual boost::shared_ptr bounce_range (framepos_t start, framepos_t end, InterThreadInfo&, bool enable_processing = true) = 0; + virtual boost::shared_ptr bounce_range (framepos_t start, framepos_t end, InterThreadInfo&, + boost::shared_ptr endpoint, bool include_endpoint) = 0; + virtual int export_stuff (BufferSet& bufs, framepos_t start_frame, framecnt_t nframes, + boost::shared_ptr endpoint, bool include_endpoint, bool for_export) = 0; XMLNode& get_state(); XMLNode& get_template(); @@ -102,11 +111,6 @@ class Track : public Route, public PublicDiskstream void set_block_size (pframes_t); - /** @return true if the track can be bounced, or false if it cannot because - * it has more outputs than diskstream channels. - */ - virtual bool bounceable () const = 0; - /* PublicDiskstream interface */ boost::shared_ptr playlist (); void request_jack_monitors_input (bool); @@ -155,6 +159,7 @@ class Track : public Route, public PublicDiskstream PBD::Signal0 DiskstreamChanged; PBD::Signal0 FreezeChange; + /* Emitted when our diskstream is set to use a different playlist */ PBD::Signal0 PlaylistChanged; PBD::Signal0 RecordEnableChanged; PBD::Signal0 SpeedChanged; @@ -213,8 +218,6 @@ class Track : public Route, public PublicDiskstream void maybe_declick (BufferSet&, framecnt_t, int); - virtual bool send_silence () const; - boost::shared_ptr _rec_enable_control; framecnt_t check_initial_delay (framecnt_t nframes, framecnt_t&);