add independent panner for internal (Aux) sends
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user