diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-04-20 23:22:29 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-31 15:30:41 -0400 |
commit | 69250b64ea00671ab05d852833006e483a53cd8b (patch) | |
tree | 8b6f464e9c35271c44a98173c4d072dbf6ad507a /libs/ardour/ardour/solo_control.h | |
parent | 202ddba9e2a62fa0b5a387c139badee2757a90ce (diff) |
move ever close to working master/slave logic, this time with audio testing
Diffstat (limited to 'libs/ardour/ardour/solo_control.h')
-rw-r--r-- | libs/ardour/ardour/solo_control.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/libs/ardour/ardour/solo_control.h b/libs/ardour/ardour/solo_control.h index 78ce7c56be..bcb01344a4 100644 --- a/libs/ardour/ardour/solo_control.h +++ b/libs/ardour/ardour/solo_control.h @@ -74,6 +74,14 @@ class LIBARDOUR_API SoloControl : public SlavableAutomationControl } bool soloed() const { return self_soloed() || soloed_by_others(); } + /* The session object needs to respond to solo + changes, but to do so accurately it needs to know if we transition + into or out of solo. The normal Changed signal doesn't make that + possible. + */ + + int32_t transitioned_into_solo () const { return _transition_into_solo; } + void clear_all_solo_state (); int set_state (XMLNode const&, int); @@ -86,11 +94,12 @@ class LIBARDOUR_API SoloControl : public SlavableAutomationControl void post_add_master (boost::shared_ptr<AutomationControl>); private: - Soloable& _soloable; - Muteable& _muteable; - bool _self_solo; - uint32_t _soloed_by_others_upstream; - uint32_t _soloed_by_others_downstream; + Soloable& _soloable; + Muteable& _muteable; + bool _self_solo; + uint32_t _soloed_by_others_upstream; + uint32_t _soloed_by_others_downstream; + int32_t _transition_into_solo; void set_self_solo (bool yn); void set_mute_master_solo (); |