summaryrefslogtreecommitdiff
path: root/libs/ardour/vca.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-04-24 21:47:52 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:41 -0400
commit83e51ee69b6b95574f160d4024995d6ad7cdfab5 (patch)
treea130f38171510a12ce51cdd162c95b796e5ea228 /libs/ardour/vca.cc
parent69f67b6198995f5bc46991212d73e6a1149b868f (diff)
add Slavable API for VCA assign/unassign
Diffstat (limited to 'libs/ardour/vca.cc')
-rw-r--r--libs/ardour/vca.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/libs/ardour/vca.cc b/libs/ardour/vca.cc
index 0e33dca6e2..2ab84d5570 100644
--- a/libs/ardour/vca.cc
+++ b/libs/ardour/vca.cc
@@ -152,3 +152,30 @@ VCA::clear_all_solo_state ()
{
_solo_control->clear_all_solo_state ();
}
+
+int
+VCA::assign_controls (boost::shared_ptr<VCA> vca)
+{
+ _gain_control->add_master (vca->gain_control());
+ _solo_control->add_master (vca->solo_control());
+ _mute_control->add_master (vca->mute_control());
+
+ return 0;
+}
+
+int
+VCA::unassign_controls (boost::shared_ptr<VCA> vca)
+{
+ if (!vca) {
+ /* unassign from all */
+ _gain_control->clear_masters ();
+ _solo_control->clear_masters ();
+ _mute_control->clear_masters ();
+ } else {
+ _gain_control->remove_master (vca->gain_control());
+ _solo_control->remove_master (vca->solo_control());
+ _mute_control->remove_master (vca->mute_control());
+ }
+
+ return 0;
+}