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
/* 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;
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