From e6cb65a171e9455a94fb9e43409c9d178759d431 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 25 Dec 2015 17:11:47 +0100 Subject: allow to add plugin(s) to all selected routes --- gtk2_ardour/mixer_ui.cc | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gtk2_ardour/mixer_ui.cc') diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 73b128ca6b..22bb71945a 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -205,6 +205,7 @@ Mixer_UI::Mixer_UI () favorite_plugins_display.set_can_focus (false); favorite_plugins_display.add_object_drag (favorite_plugins_columns.plugin.index(), "PluginPresetPtr"); favorite_plugins_display.set_drag_column (favorite_plugins_columns.name.index()); + favorite_plugins_display.signal_row_activated().connect (sigc::mem_fun (*this, &Mixer_UI::plugin_row_activated)); favorite_plugins_scroller.add (favorite_plugins_display); favorite_plugins_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); @@ -2327,6 +2328,39 @@ Mixer_UI::sync_treeview_from_favorite_order () } } +void +Mixer_UI::plugin_row_activated (const TreeModel::Path& path, TreeViewColumn* column) +{ + if (!_session || _selection.routes.empty()) { + return; + } + + TreeIter iter; + if (!(iter = favorite_plugins_model->get_iter (path))) { + return; + } + + ARDOUR::PluginPresetPtr ppp = (*iter)[favorite_plugins_columns.plugin]; + PluginInfoPtr pip = ppp->_pip; + + for (RouteUISelection::iterator i = _selection.routes.begin(); i != _selection.routes.end(); ++i) { + boost::shared_ptr rt = (*i)->route(); + if (!rt) { continue; } + + PluginPtr p = pip->load (*_session); + if (!p) { continue; } + + if (ppp->_preset.valid) { + p->load_preset (ppp->_preset); + } + + Route::ProcessorStreams err; + boost::shared_ptr processor (new PluginInsert (*_session, p)); + rt->add_processor_by_index (processor, -1, &err, Config->get_new_plugins_active ()); + } +} + + bool PluginTreeStore::row_drop_possible_vfunc(const Gtk::TreeModel::Path& dest, const Gtk::SelectionData& data) const { -- cgit v1.2.3