summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-03-04 14:15:12 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:39 -0400
commit6b7a384e340ab363107e4ebc297fc24810b813cb (patch)
treea58d0b7c85c07d94b05e3cef1f7dac73c4de3caa /libs/ardour/ardour
parent17853bc472f3a097df53443b43cd859be356eea0 (diff)
add solo/mute logic to VCA masters
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/vca.h22
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 */