add Slavable API for VCA assign/unassign
[ardour.git] / libs / ardour / vca.cc
index 0e33dca6e2b15734265efd593168dbed87289522..2ab84d55705bb1410afdf24689c9b49292c2ef23 100644 (file)
@@ -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;
+}