X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Froute.h;h=0afafe82eb22fa0e40cd3c06526e4a6352d9e51e;hb=5531c834963726d5a35db078e17a7508f2b9d72d;hp=f819ddac63458b654bcd1bc9fa54df0c0a8ed195;hpb=04e26fe7e6cf0ae4d85a5527b30b5e1196966465;p=ardour.git diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index f819ddac63..0afafe82eb 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -350,14 +350,8 @@ public: framecnt_t signal_latency() const { return _signal_latency; } PBD::Signal0 active_changed; - PBD::Signal0 phase_invert_changed; PBD::Signal0 denormal_protection_changed; - PBD::Signal1 listen_changed; - PBD::Signal2 solo_changed; - PBD::Signal0 solo_safe_changed; - PBD::Signal0 solo_isolated_changed; PBD::Signal0 comment_changed; - PBD::Signal0 mute_changed; PBD::Signal0 mute_points_changed; /** track numbers - assigned by session @@ -477,6 +471,18 @@ public: boost::weak_ptr _route; }; + class BooleanRouteAutomationControl : public RouteAutomationControl { + public: + BooleanRouteAutomationControl (const std::string& name, + AutomationType atype, + boost::shared_ptr alist, + boost::shared_ptr route) + : RouteAutomationControl (name, atype, alist, route) {} + protected: + double get_masters_value_locked() const; + + }; + class GainControllable : public GainControl { public: GainControllable (Session& session, @@ -501,7 +507,7 @@ public: boost::weak_ptr _route; }; - class SoloControllable : public RouteAutomationControl { + class SoloControllable : public BooleanRouteAutomationControl { public: SoloControllable (std::string name, boost::shared_ptr); void set_value (double, PBD::Controllable::GroupControlDisposition group_override); @@ -511,7 +517,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); void set_value (double, PBD::Controllable::GroupControlDisposition group_override); @@ -520,13 +526,12 @@ public: /* Pretend to change value, but do not affect actual route mute. */ void set_superficial_value(bool muted); - private: boost::weak_ptr _route; 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); void set_value (double, PBD::Controllable::GroupControlDisposition group_override); @@ -539,7 +544,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); void set_value (double, PBD::Controllable::GroupControlDisposition group_override); @@ -549,7 +554,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); void set_value (double, PBD::Controllable::GroupControlDisposition group_override);