summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-01-13 10:50:49 +0100
committerRobin Gareus <robin@gareus.org>2014-01-13 10:50:49 +0100
commitbc88203ef5f343f87016a28104f6977675f2c050 (patch)
treec626c3f9b673dac9fa9ae3db64c29bed18dd007b
parentd9cf6880b6d65665a55aed212503de0820db6f40 (diff)
independent panning for external sends
-rw-r--r--gtk2_ardour/processor_box.cc6
-rw-r--r--gtk2_ardour/send_ui.cc5
-rw-r--r--libs/ardour/delivery.cc2
-rw-r--r--libs/ardour/route.cc6
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> send (new Send (*_session, _route->pannable(), _route->mute_master()));
+ boost::shared_ptr<Pannable> sendpan(new Pannable (*_session));
+ boost::shared_ptr<Send> 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<Pannable> 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<Send> 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<Pannable> 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<Pannable> sendpan (new Pannable (_session));
+ processor.reset (new Send (_session, sendpan, _mute_master));
} else {
error << string_compose(_("unknown Processor type \"%1\"; ignored"), prop->value()) << endmsg;