diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-03-04 14:15:12 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-31 15:30:39 -0400 |
commit | 6b7a384e340ab363107e4ebc297fc24810b813cb (patch) | |
tree | a58d0b7c85c07d94b05e3cef1f7dac73c4de3caa /libs/ardour/ardour | |
parent | 17853bc472f3a097df53443b43cd859be356eea0 (diff) |
add solo/mute logic to VCA masters
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/vca.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libs/ardour/ardour/vca.h b/libs/ardour/ardour/vca.h index 4359899f6f..526cfa0110 100644 --- a/libs/ardour/ardour/vca.h +++ b/libs/ardour/ardour/vca.h @@ -52,6 +52,18 @@ class LIBARDOUR_API VCA : public SessionHandleRef, public PBD::StatefulDestructi XMLNode& get_state(); int set_state (XMLNode const&, int version); + void add_solo_mute_target (boost::shared_ptr<Route>); + void remove_solo_mute_target (boost::shared_ptr<Route>); + + void set_solo (bool yn); + bool soloed () const; + + void set_mute (bool yn); + bool muted () const; + + PBD::Signal0<void> SoloChange; + PBD::Signal0<void> MuteChange; + static std::string default_name_template (); static int next_vca_number (); static std::string xml_node_name; @@ -60,8 +72,18 @@ class LIBARDOUR_API VCA : public SessionHandleRef, public PBD::StatefulDestructi uint32_t _number; std::string _name; boost::shared_ptr<GainControl> _control; + RouteList solo_mute_targets; + PBD::ScopedConnectionList solo_mute_connections; + mutable Glib::Threads::RWLock solo_mute_lock; + bool _solo_requested; + bool _mute_requested; static gint next_number; + + void solo_mute_target_going_away (boost::weak_ptr<Route>); + bool soloed_locked () const; + bool muted_locked () const; + }; } /* namespace */ |