diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-03-09 10:26:09 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-31 15:30:40 -0400 |
commit | 8eb45c518dd61594ca059c3751ca9de0f71ecb15 (patch) | |
tree | 37ccef2cbb6bd620aaebf7ebbcc91a5aced37a9b /libs/ardour/ardour/route.h | |
parent | 91f8c0be5424b615a33ef3e6e418ba3a1ace4613 (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.h | 22 |
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); |