summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/solo_control.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-04-20 23:22:29 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:41 -0400
commit69250b64ea00671ab05d852833006e483a53cd8b (patch)
tree8b6f464e9c35271c44a98173c4d072dbf6ad507a /libs/ardour/ardour/solo_control.h
parent202ddba9e2a62fa0b5a387c139badee2757a90ce (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.h19
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 ();