add an plugin API to query generic-gui grid-layout
[ardour.git] / libs / ardour / ardour / mute_control.h
index f7a7814f0059fa6319f8215c987dbb18a97499c3..909f0cbf02ab7d394dbffbe9f6a424d3ca1fbc09 100644 (file)
@@ -23,6 +23,9 @@
 
 #include <boost/shared_ptr.hpp>
 
+#include "ardour/slavable_automation_control.h"
+
+#include "ardour/mute_master.h"
 #include "ardour/libardour_visibility.h"
 
 namespace ARDOUR {
@@ -54,17 +57,25 @@ class LIBARDOUR_API MuteControl : public SlavableAutomationControl
 
        bool muted () const;
        bool muted_by_self () const;
+       bool muted_by_masters () const;
+       bool muted_by_self_or_masters () const {
+               return muted_by_self() || muted_by_masters ();
+       }
 
        bool muted_by_others_soloing () const;
-       bool muted_by_others () const;
 
        void set_mute_points (MuteMaster::MutePoint);
        MuteMaster::MutePoint mute_points () const;
 
+       void automation_run (framepos_t start, pframes_t nframes);
+
   protected:
-       void master_changed (bool, PBD::Controllable::GroupControlDisposition);
+       void master_changed (bool, PBD::Controllable::GroupControlDisposition, boost::shared_ptr<AutomationControl>);
        void actually_set_value (double, PBD::Controllable::GroupControlDisposition group_override);
 
+       void pre_remove_master (boost::shared_ptr<AutomationControl>);
+       void post_add_master (boost::shared_ptr<AutomationControl>);
+
   private:
        Muteable& _muteable;
 };