dynamic playback & capture buffer resizing (though transport is stopped first)
[ardour.git] / libs / ardour / ardour / route.h
index b4a392c23b4ee22d78ec3b60856f1232bf113c75..3d4f7f139a19287a4c9d025c2e62a7aedd92ed29 100644 (file)
@@ -43,6 +43,7 @@
 #include "ardour/types.h"
 #include "ardour/mute_master.h"
 #include "ardour/route_group_member.h"
+#include "ardour/graphnode.h"
 
 namespace ARDOUR {
 
@@ -56,7 +57,7 @@ class Send;
 class InternalReturn;
 class MonitorProcessor;
 
-class Route : public SessionObject, public AutomatableControls, public RouteGroupMember
+class Route : public SessionObject, public AutomatableControls, public RouteGroupMember, public GraphNode
 {
   public:
 
@@ -123,17 +124,10 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
        void inc_gain (gain_t delta, void *src);
 
        void set_mute_points (MuteMaster::MutePoint);
-       MuteMaster::MutePoint mute_points() const { return _mute_points; }
+       MuteMaster::MutePoint mute_points () const;
 
        bool muted () const;
-       bool self_muted () const;
-       bool muted_by_others () const;
-
-        bool path_muted_by_others() const { return _path_muted_by_others > 0; }
-        void mod_path_muted_by_others (int delta);
-
        void set_mute (bool yn, void* src);
-        void mod_muted_by_others (int delta);
 
        /* controls use set_solo() to modify this route's solo state
         */
@@ -377,12 +371,6 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
   protected:
        friend class Session;
 
-        void set_graph_level (int32_t);
-        int32_t graph_level() const { return _graph_level; } 
-        void check_physical_connections ();
-        // this functions may ONLY be called during a route resort
-        bool physically_connected () const { return _physically_connected; }
-
        void catch_up_on_solo_mute_override ();
        void mod_solo_by_others_upstream (int32_t);
        void mod_solo_by_others_downstream (int32_t);
@@ -436,13 +424,9 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
        boost::shared_ptr<SoloControllable> _solo_control;
        boost::shared_ptr<MuteControllable> _mute_control;
        boost::shared_ptr<MuteMaster> _mute_master;
-       MuteMaster::MutePoint _mute_points;
-        volatile uint32_t     _path_muted_by_others;
     
        std::string    _comment;
        bool           _have_internal_generator;
-        bool           _physically_connected; // valid ONLY during a route resort
-        int32_t        _graph_level;
        bool           _solo_safe;
        DataType       _default_type;
         FedBy          _fed_by;
@@ -457,7 +441,8 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
        void passthru_silence (sframes_t start_frame, sframes_t end_frame,
                               nframes_t nframes, int declick);
 
-       void silence (nframes_t nframes);
+       void silence (nframes_t);
+       void silence_unlocked (nframes_t);
 
        ChanCount processor_max_streams;
        uint32_t _remote_control_id;
@@ -493,6 +478,8 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
 
        void set_self_solo (bool yn);
        void set_mute_master_solo ();
+
+       void set_processor_positions ();
 };
 
 } // namespace ARDOUR