the big Route structure refactor. !!!! THIS WILL ***NOT LOAD*** PRIOR 3.0 or 2.X...
[ardour.git] / libs / ardour / ardour / track.h
index b524c5d5871f6e1640051c00bcbb14901b2738e4..aca7c6f968a7aed060cc1f1a04ddb20122073d8a 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <boost/shared_ptr.hpp>
 
-#include <ardour/route.h>
+#include "ardour/route.h"
 
 namespace ARDOUR {
 
@@ -29,11 +29,12 @@ class Session;
 class Diskstream;
 class Playlist;
 class RouteGroup;
+class Region;
 
 class Track : public Route
 {
   public:
-       Track (Session&, string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal, DataType default_type = DataType::AUDIO);
+       Track (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal, DataType default_type = DataType::AUDIO);
 
        virtual ~Track ();
        
@@ -43,23 +44,23 @@ class Track : public Route
        virtual int set_mode (TrackMode m) { return false; }
        virtual bool can_use_mode (TrackMode m, bool& bounce_required) { return false; }
        sigc::signal<void> TrackModeChanged;
-
-       virtual int roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, 
-               nframes_t offset, int declick, bool can_record, bool rec_monitors_input) = 0;
        
-       virtual int no_roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, 
-               nframes_t offset, bool state_changing, bool can_record, bool rec_monitors_input) = 0;
+       int no_roll (nframes_t nframes, sframes_t start_frame, sframes_t end_frame, 
+                    bool state_changing, bool can_record, bool rec_monitors_input);
        
-       virtual int silent_roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, 
-               nframes_t offset, bool can_record, bool rec_monitors_input) = 0;
+       int silent_roll (nframes_t nframes, sframes_t start_frame, sframes_t end_frame, 
+                       bool can_record, bool rec_monitors_input);
 
+       virtual int roll (nframes_t nframes, sframes_t start_frame, sframes_t end_frame, 
+                         int declick, bool can_record, bool rec_monitors_input) = 0;
+       
        void toggle_monitor_input ();
 
        bool can_record();
 
        boost::shared_ptr<Diskstream> diskstream() const { return _diskstream; }
 
-       virtual int use_diskstream (string name) = 0;
+       virtual int use_diskstream (std::string name) = 0;
        virtual int use_diskstream (const PBD::ID& id) = 0;
 
        nframes_t update_total_latency();
@@ -77,11 +78,12 @@ class Track : public Route
        virtual void unfreeze () = 0;
 
        virtual boost::shared_ptr<Region> bounce (InterThreadInfo&) = 0;
-       virtual boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&) = 0;
+       virtual boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&, bool enable_processing = true) = 0;
 
        XMLNode&    get_state();
        XMLNode&    get_template();
        virtual int set_state(const XMLNode& node) = 0;
+       static void zero_diskstream_id_in_xml (XMLNode&);
 
        boost::shared_ptr<PBD::Controllable> rec_enable_control() { return _rec_enable_control; }
 
@@ -110,7 +112,6 @@ class Track : public Route
            XMLNode                      state;
            boost::shared_ptr<Processor> processor;
            PBD::ID                      id;
-           UndoAction                   memento;
        };
 
        struct FreezeRecord {
@@ -121,7 +122,7 @@ class Track : public Route
            ~FreezeRecord();
 
            boost::shared_ptr<Playlist>        playlist;
-           vector<FreezeRecordProcessorInfo*> processor_info;
+           std::vector<FreezeRecordProcessorInfo*> processor_info;
            bool                               have_mementos;
            FreezeState                        state;
            gain_t                          gain;