Fix the horrible mess that was anything related to sources and paths.
[ardour.git] / libs / ardour / ardour / track.h
index 06ce39889642b70ee7e64ca2bcf53d2442dbbaeb..566153d02f82eb8ad9529ef1868c2238d809b0c6 100644 (file)
@@ -29,6 +29,7 @@ class Session;
 class Diskstream;
 class Playlist;
 class RouteGroup;
+class Region;
 
 class Track : public Route
 {
@@ -76,14 +77,14 @@ class Track : public Route
        virtual void freeze (InterThreadInfo&) = 0;
        virtual void unfreeze () = 0;
 
-       virtual void bounce (InterThreadInfo&) = 0;
-       virtual void bounce_range (nframes_t start, nframes_t end, InterThreadInfo&) = 0;
+       virtual boost::shared_ptr<Region> bounce (InterThreadInfo&) = 0;
+       virtual boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&) = 0;
 
        XMLNode&    get_state();
        XMLNode&    get_template();
        virtual int set_state(const XMLNode& node) = 0;
 
-       PBD::Controllable& rec_enable_control() { return _rec_enable_control; }
+       boost::shared_ptr<PBD::Controllable> rec_enable_control() { return _rec_enable_control; }
 
        bool record_enabled() const;
        void set_record_enable (bool yn, void *src);
@@ -124,6 +125,9 @@ class Track : public Route
            vector<FreezeRecordProcessorInfo*> processor_info;
            bool                               have_mementos;
            FreezeState                        state;
+           gain_t                          gain;
+           AutoState                       gain_automation_state;
+           AutoState                       pan_automation_state;
        };
 
        struct RecEnableControllable : public PBD::Controllable {
@@ -141,8 +145,9 @@ class Track : public Route
        XMLNode*              pending_state;
        sigc::connection      recenable_connection;
        sigc::connection      ic_connection;
-       RecEnableControllable _rec_enable_control;
        bool                  _destructive;
+       
+       boost::shared_ptr<RecEnableControllable> _rec_enable_control;
 };
 
 }; /* namespace ARDOUR*/