summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/stripable.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-04-08 16:49:47 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:40 -0400
commit653ae4acd639fef149314fe6f8c7a0d862afae40 (patch)
treeba32ff0efd9b105c207ad7e3b2e89d73e76b4355 /libs/ardour/ardour/stripable.h
parentc107f1ab56270f4485ca2a787d575c2b5b53cfcf (diff)
universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
Diffstat (limited to 'libs/ardour/ardour/stripable.h')
-rw-r--r--libs/ardour/ardour/stripable.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/libs/ardour/ardour/stripable.h b/libs/ardour/ardour/stripable.h
index e97fe79103..f68cb07b91 100644
--- a/libs/ardour/ardour/stripable.h
+++ b/libs/ardour/ardour/stripable.h
@@ -26,13 +26,19 @@
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>
-#include "ardour/gain_control.h"
#include "ardour/session_object.h"
namespace ARDOUR {
class AutomationControl;
+class GainControl;
class PeakMeter;
+class SoloControl;
+class MuteControl;
+class PhaseControl;
+class SoloIsolateControl;
+class SoloSafeControl;
+class MonitorControl;
/* This is a virtual base class for any object that needs to be potentially
* represented by a control-centric user interface using the general model of a
@@ -58,12 +64,13 @@ class Stripable : public SessionObject {
virtual boost::shared_ptr<GainControl> gain_control() const = 0;
- virtual boost::shared_ptr<AutomationControl> solo_control() const = 0;
- virtual boost::shared_ptr<AutomationControl> mute_control() const = 0;
- virtual boost::shared_ptr<AutomationControl> phase_control() const = 0;
- virtual boost::shared_ptr<AutomationControl> trim_control() const = 0;
+ virtual boost::shared_ptr<SoloControl> solo_control() const = 0;
+ virtual boost::shared_ptr<MuteControl> mute_control() const = 0;
- virtual boost::shared_ptr<AutomationControl> monitoring_control() const = 0;
+ virtual boost::shared_ptr<PhaseControl> phase_control() const = 0;
+ virtual boost::shared_ptr<GainControl> trim_control() const = 0;
+
+ virtual boost::shared_ptr<MonitorControl> monitoring_control() const = 0;
virtual boost::shared_ptr<AutomationControl> recenable_control() const { return boost::shared_ptr<AutomationControl>(); }
/* "well-known" controls for panning. Any or all of these may return
@@ -131,6 +138,9 @@ class Stripable : public SessionObject {
* the route.
*/
virtual boost::shared_ptr<AutomationControl> master_send_enable_controllable () const = 0;
+
+ virtual bool muted_by_others_soloing () const = 0;
+ virtual bool muted_by_others () const = 0;
};