diff options
Diffstat (limited to 'libs/ardour/vca.cc')
-rw-r--r-- | libs/ardour/vca.cc | 27 |
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; +} |