diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2017-02-02 11:02:10 -0600 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2017-02-02 11:02:10 -0600 |
commit | b759bae0cde1661d4d12f370facbf5b8189eacc9 (patch) | |
tree | e74e02967bd46a5eb05e8c78557a4bcebdf7e5f8 | |
parent | 71003b02353ea090902bdd5623d42da141fa25ad (diff) |
Right-click on a VCA to assign it to the selected channels.
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 16 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/vca_master_strip.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/vca_master_strip.h | 2 |
5 files changed, 36 insertions, 4 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index af56b4fc5b..1a82d7025b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -426,6 +426,22 @@ MixerStrip::~MixerStrip () _entered_mixer_strip = NULL; } +void +MixerStrip::vca_assign (boost::shared_ptr<ARDOUR::VCA> vca) +{ + boost::shared_ptr<Slavable> sl = boost::dynamic_pointer_cast<Slavable> ( route() ); + if (sl) + sl->assign(vca); +} + +void +MixerStrip::vca_unassign (boost::shared_ptr<ARDOUR::VCA> vca) +{ + boost::shared_ptr<Slavable> sl = boost::dynamic_pointer_cast<Slavable> ( route() ); + if (sl) + sl->unassign(vca); +} + bool MixerStrip::mixer_strip_enter_event (GdkEventCrossing* /*ev*/) { diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index abafb3b1f3..e40c38ff40 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -185,6 +185,9 @@ class MixerStrip : public AxisView, public RouteUI, public Gtk::EventBox Gtk::Table mute_solo_table; Gtk::Table bottom_button_table; + void vca_assign (boost::shared_ptr<ARDOUR::VCA>); + void vca_unassign (boost::shared_ptr<ARDOUR::VCA>); + void meter_changed (); void monitor_changed (); diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 59507b7ffc..c42c426aee 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -3087,26 +3087,22 @@ void Mixer_UI::vca_assign (boost::shared_ptr<VCA> vca) { set_axis_targets_for_operation (); -#if 0 BOOST_FOREACH(AxisView* r, _axis_targets) { MixerStrip* ms = dynamic_cast<MixerStrip*> (r); if (ms) { ms->vca_assign (vca); } } -#endif } void Mixer_UI::vca_unassign (boost::shared_ptr<VCA> vca) { set_axis_targets_for_operation (); -#if 0 BOOST_FOREACH(AxisView* r, _axis_targets) { MixerStrip* ms = dynamic_cast<MixerStrip*> (r); if (ms) { ms->vca_unassign (vca); } } -#endif } diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc index d3f28cfb67..5e96010c3c 100644 --- a/gtk2_ardour/vca_master_strip.cc +++ b/gtk2_ardour/vca_master_strip.cc @@ -449,6 +449,9 @@ VCAMasterStrip::build_context_menu () items.push_back (MenuElem (_("Rename"), sigc::mem_fun (*this, &VCAMasterStrip::start_name_edit))); items.push_back (MenuElem (_("Color..."), sigc::mem_fun (*this, &VCAMasterStrip::start_color_edit))); items.push_back (SeparatorElem()); + items.push_back (MenuElem (_("Assign Selected Channels"), sigc::mem_fun (*this, &VCAMasterStrip::assign_all_selected))); + items.push_back (MenuElem (_("Drop Selected Channels"), sigc::mem_fun (*this, &VCAMasterStrip::unassign_all_selected))); + items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Drop All Slaves"), sigc::mem_fun (*this, &VCAMasterStrip::drop_all_slaves))); items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Remove"), sigc::mem_fun (*this, &VCAMasterStrip::remove))); @@ -487,6 +490,18 @@ VCAMasterStrip::remove () } void +VCAMasterStrip::assign_all_selected () +{ + Mixer_UI::instance()->do_vca_assign (_vca); +} + +void +VCAMasterStrip::unassign_all_selected () +{ + Mixer_UI::instance()->do_vca_unassign (_vca); +} + +void VCAMasterStrip::drop_all_slaves () { _vca->Drop (); /* EMIT SIGNAL */ diff --git a/gtk2_ardour/vca_master_strip.h b/gtk2_ardour/vca_master_strip.h index 177425570e..6cc728ea52 100644 --- a/gtk2_ardour/vca_master_strip.h +++ b/gtk2_ardour/vca_master_strip.h @@ -99,6 +99,8 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox void self_delete (); void remove (); void drop_all_slaves (); + void assign_all_selected (); + void unassign_all_selected (); void parameter_changed (std::string const& p); void set_button_names (); |