add independent panner for internal (Aux) sends

This commit is contained in:
Robin Gareus
2014-01-13 10:48:37 +01:00
parent 0c384b7c21
commit 0559c1babb
4 changed files with 16 additions and 12 deletions

View File

@@ -1893,16 +1893,8 @@ MixerStrip::show_send (boost::shared_ptr<Send> send)
panner_ui().set_panner (_current_delivery->panner_shell(), _current_delivery->panner());
panner_ui().set_available_panners(boost::shared_ptr<ARDOUR::Route>(), std::map<std::string,std::string>());
panner_ui().setup_pan ();
/* make sure the send has audio output */
if (_current_delivery->output() && _current_delivery->output()->n_ports().n_audio() > 0) {
panners.show_all ();
} else {
panners.hide_all ();
}
panners.show_all ();
input_button.set_sensitive (false);
group_button.set_sensitive (false);

View File

@@ -46,6 +46,7 @@
#include "ardour/internal_return.h"
#include "ardour/internal_send.h"
#include "ardour/plugin_insert.h"
#include "ardour/pannable.h"
#include "ardour/port_insert.h"
#include "ardour/profile.h"
#include "ardour/return.h"
@@ -2051,8 +2052,9 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
continue;
}
boost::shared_ptr<Pannable> sendpan(new Pannable (*_session));
XMLNode n (**niter);
InternalSend* s = new InternalSend (*_session, _route->pannable(), _route->mute_master(),
InternalSend* s = new InternalSend (*_session, sendpan, _route->mute_master(),
boost::shared_ptr<Route>(), Delivery::Aux);
IOProcessor::prepare_for_reset (n, s->name());

View File

@@ -329,6 +329,9 @@ Delivery::state (bool full_state)
if (_panshell) {
node.add_child_nocopy (_panshell->get_state ());
if (_panshell->pannable()) {
node.add_child_nocopy (_panshell->pannable()->get_state ());
}
}
return node;
@@ -358,6 +361,11 @@ Delivery::set_state (const XMLNode& node, int version)
reset_panner ();
XMLNode* pannnode = node.child (X_("Pannable"));
if (_panshell->panner() && pannnode) {
_panshell->pannable()->set_state (*pannnode, version);
}
return 0;
}

View File

@@ -2547,7 +2547,8 @@ Route::set_processor_state (const XMLNode& node)
if (prop->value() == "intsend") {
processor.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<Route>(), Delivery::Role (0)));
boost::shared_ptr<Pannable> sendpan (new Pannable (_session));
processor.reset (new InternalSend (_session, sendpan, _mute_master, boost::shared_ptr<Route>(), Delivery::Role (0)));
} else if (prop->value() == "ladspa" || prop->value() == "Ladspa" ||
prop->value() == "lv2" ||
@@ -2753,7 +2754,8 @@ Route::add_aux_send (boost::shared_ptr<Route> route, boost::shared_ptr<Processor
{
Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
listener.reset (new InternalSend (_session, _pannable, _mute_master, route, Delivery::Aux));
boost::shared_ptr<Pannable> sendpan (new Pannable (_session));
listener.reset (new InternalSend (_session, sendpan, _mute_master, route, Delivery::Aux));
}
add_processor (listener, before);