allow drag-n-drop/copy-n-paste of aux sends

git-svn-id: svn://localhost/ardour2/branches/3.0@13847 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2013-01-15 15:42:30 +00:00
parent ccdcb135fa
commit 8f79c9c190

View File

@ -1815,17 +1815,42 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
XMLProperty const * type = (*niter)->property ("type");
XMLProperty const * role = (*niter)->property ("role");
assert (type);
assert (role);
boost::shared_ptr<Processor> p;
try {
if (type->value() == "meter" ||
type->value() == "main-outs" ||
type->value() == "amp" ||
type->value() == "intsend" || type->value() == "intreturn") {
/* do not paste meter, main outs, amp or internal send/returns */
type->value() == "intreturn") {
/* do not paste meter, main outs, amp or internal returns */
continue;
} else if (type->value() == "intsend") {
/* aux sends are OK, but those used for
* other purposes, are not.
*/
if (role->value() != "Aux") {
continue;
}
XMLNode n (**niter);
InternalSend* s = new InternalSend (*_session, _route->pannable(), _route->mute_master(),
boost::shared_ptr<Route>(), Delivery::Aux);
IOProcessor::prepare_for_reset (n, s->name());
if (s->set_state (n, Stateful::loading_state_version)) {
delete s;
return;
}
p.reset (s);
} else if (type->value() == "send") {
XMLNode n (**niter);