From bc88203ef5f343f87016a28104f6977675f2c050 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 13 Jan 2014 10:50:49 +0100 Subject: [PATCH] independent panning for external sends --- gtk2_ardour/processor_box.cc | 6 ++++-- gtk2_ardour/send_ui.cc | 5 +---- libs/ardour/delivery.cc | 2 +- libs/ardour/route.cc | 6 ++++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index b0e5e55250..98bb3f13cd 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -1403,7 +1403,8 @@ ProcessorBox::choose_insert () void ProcessorBox::choose_send () { - boost::shared_ptr send (new Send (*_session, _route->pannable(), _route->mute_master())); + boost::shared_ptr sendpan(new Pannable (*_session)); + boost::shared_ptr send (new Send (*_session, sendpan, _route->mute_master())); /* make an educated guess at the initial number of outputs for the send */ ChanCount outs = (_session->master_out()) @@ -2068,8 +2069,9 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr } else if (type->value() == "send") { + boost::shared_ptr sendpan(new Pannable (*_session)); XMLNode n (**niter); - Send* s = new Send (*_session, _route->pannable(), _route->mute_master()); + Send* s = new Send (*_session, sendpan, _route->mute_master()); IOProcessor::prepare_for_reset (n, s->name()); diff --git a/gtk2_ardour/send_ui.cc b/gtk2_ardour/send_ui.cc index 1fead73084..54663dbe0a 100644 --- a/gtk2_ardour/send_ui.cc +++ b/gtk2_ardour/send_ui.cc @@ -52,10 +52,7 @@ SendUI::SendUI (Gtk::Window* parent, boost::shared_ptr s, Session* session _vbox.set_border_width (5); _vbox.pack_start (_hbox, false, false, false); - // until sends have their own Pannable, don't show this - // because it controls the Route Pannable which confuses - // users (among others) - // _vbox.pack_start (_panners, false, false); + _vbox.pack_start (_panners, false, false); io = manage (new IOSelector (parent, session, s->output())); diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index 26d2cf3acd..e4c39271f5 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -396,7 +396,7 @@ Delivery::reset_panner () if (_panshell) { _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs())); - if (_role == Main || _role == Aux) { + if (_role == Main || _role == Aux || _role == Send) { _panshell->pannable()->set_panner (_panshell->panner()); } } diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index ea67fe6073..a036c8feb0 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1069,7 +1069,8 @@ Route::add_processor_from_xml_2X (const XMLNode& node, int version) } else if (node.name() == "Send") { - processor.reset (new Send (_session, _pannable, _mute_master)); + boost::shared_ptr sendpan (new Pannable (_session)); + processor.reset (new Send (_session, sendpan, _mute_master)); } else { @@ -2564,7 +2565,8 @@ Route::set_processor_state (const XMLNode& node) } else if (prop->value() == "send") { - processor.reset (new Send (_session, _pannable, _mute_master)); + boost::shared_ptr sendpan (new Pannable (_session)); + processor.reset (new Send (_session, sendpan, _mute_master)); } else { error << string_compose(_("unknown Processor type \"%1\"; ignored"), prop->value()) << endmsg; -- 2.30.2