summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/route.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-03-09 10:26:09 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:40 -0400
commit8eb45c518dd61594ca059c3751ca9de0f71ecb15 (patch)
tree37ccef2cbb6bd620aaebf7ebbcc91a5aced37a9b /libs/ardour/ardour/route.h
parent91f8c0be5424b615a33ef3e6e418ba3a1ace4613 (diff)
rearrange AutomationControl and RouteAutomationControl to get more shared logic and consistent master/slave behaviour
Diffstat (limited to 'libs/ardour/ardour/route.h')
-rw-r--r--libs/ardour/ardour/route.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index f819ddac63..8902665170 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -477,6 +477,18 @@ public:
boost::weak_ptr<Route> _route;
};
+ class BooleanRouteAutomationControl : public RouteAutomationControl {
+ public:
+ BooleanRouteAutomationControl (const std::string& name,
+ AutomationType atype,
+ boost::shared_ptr<AutomationList> alist,
+ boost::shared_ptr<Route> route)
+ : RouteAutomationControl (name, atype, alist, route) {}
+ protected:
+ double get_masters_value_locked() const;
+
+ };
+
class GainControllable : public GainControl {
public:
GainControllable (Session& session,
@@ -501,7 +513,7 @@ public:
boost::weak_ptr<Route> _route;
};
- class SoloControllable : public RouteAutomationControl {
+ class SoloControllable : public BooleanRouteAutomationControl {
public:
SoloControllable (std::string name, boost::shared_ptr<Route>);
void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
@@ -511,7 +523,7 @@ public:
void _set_value (double, PBD::Controllable::GroupControlDisposition group_override);
};
- struct MuteControllable : public RouteAutomationControl {
+ struct MuteControllable : public BooleanRouteAutomationControl {
public:
MuteControllable (std::string name, boost::shared_ptr<Route>);
void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
@@ -526,7 +538,7 @@ public:
void _set_value (double, PBD::Controllable::GroupControlDisposition group_override);
};
- class LIBARDOUR_API PhaseControllable : public RouteAutomationControl {
+ class LIBARDOUR_API PhaseControllable : public BooleanRouteAutomationControl {
public:
PhaseControllable (std::string name, boost::shared_ptr<Route>);
void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
@@ -539,7 +551,7 @@ public:
void _set_value (double, PBD::Controllable::GroupControlDisposition group_override);
};
- class LIBARDOUR_API SoloIsolateControllable : public RouteAutomationControl {
+ class LIBARDOUR_API SoloIsolateControllable : public BooleanRouteAutomationControl {
public:
SoloIsolateControllable (std::string name, boost::shared_ptr<Route>);
void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
@@ -549,7 +561,7 @@ public:
void _set_value (double, PBD::Controllable::GroupControlDisposition group_override);
};
- class LIBARDOUR_API SoloSafeControllable : public RouteAutomationControl {
+ class LIBARDOUR_API SoloSafeControllable : public BooleanRouteAutomationControl {
public:
SoloSafeControllable (std::string name, boost::shared_ptr<Route>);
void set_value (double, PBD::Controllable::GroupControlDisposition group_override);