Right-click on a VCA to assign it to the selected channels.

This commit is contained in:
Ben Loftis 2017-02-02 11:02:10 -06:00
parent 71003b0235
commit b759bae0cd
5 changed files with 36 additions and 4 deletions

View file

@ -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*/)
{

View file

@ -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 ();

View file

@ -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
}

View file

@ -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)));
@ -486,6 +489,18 @@ VCAMasterStrip::remove ()
_session->vca_manager().remove_vca (_vca);
}
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 ()
{

View file

@ -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 ();