X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsolo_control.h;h=3f0f522fc3589d4bd54778893f5162c49c9fd538;hb=eaa1dacf5fc9537cfff36e2339bd07aab348aa2e;hp=bcb01344a4f2c86bebbf2278509a148e7bfafe81;hpb=69250b64ea00671ab05d852833006e483a53cd8b;p=ardour.git diff --git a/libs/ardour/ardour/solo_control.h b/libs/ardour/ardour/solo_control.h index bcb01344a4..3f0f522fc3 100644 --- a/libs/ardour/ardour/solo_control.h +++ b/libs/ardour/ardour/solo_control.h @@ -39,6 +39,8 @@ class LIBARDOUR_API SoloControl : public SlavableAutomationControl double get_value () const; + bool can_solo() const; + /* Export additional API so that objects that only get access * to a Controllable/AutomationControl can do more fine-grained * operations with respect to solo. Obviously, they would need @@ -60,8 +62,17 @@ class LIBARDOUR_API SoloControl : public SlavableAutomationControl /* API to check different aspects of solo substate */ + bool self_soloed () const { + return _self_solo; + } + bool soloed_by_masters () const { + return get_masters_value(); + } + bool soloed_by_self_or_masters () const { + return self_soloed() || get_masters_value (); + } bool soloed_by_others () const { - return _soloed_by_others_downstream || _soloed_by_others_downstream || get_masters_value (); + return _soloed_by_others_downstream || _soloed_by_others_upstream || get_masters_value (); } uint32_t soloed_by_others_upstream () const { return _soloed_by_others_upstream; @@ -69,9 +80,6 @@ class LIBARDOUR_API SoloControl : public SlavableAutomationControl uint32_t soloed_by_others_downstream () const { return _soloed_by_others_downstream; } - bool self_soloed () const { - return _self_solo; - } bool soloed() const { return self_soloed() || soloed_by_others(); } /* The session object needs to respond to solo