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:
parent
ccdcb135fa
commit
8f79c9c190
|
@ -1815,17 +1815,42 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
|
||||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||||
|
|
||||||
XMLProperty const * type = (*niter)->property ("type");
|
XMLProperty const * type = (*niter)->property ("type");
|
||||||
|
XMLProperty const * role = (*niter)->property ("role");
|
||||||
assert (type);
|
assert (type);
|
||||||
|
assert (role);
|
||||||
|
|
||||||
boost::shared_ptr<Processor> p;
|
boost::shared_ptr<Processor> p;
|
||||||
try {
|
try {
|
||||||
if (type->value() == "meter" ||
|
if (type->value() == "meter" ||
|
||||||
type->value() == "main-outs" ||
|
type->value() == "main-outs" ||
|
||||||
type->value() == "amp" ||
|
type->value() == "amp" ||
|
||||||
type->value() == "intsend" || type->value() == "intreturn") {
|
type->value() == "intreturn") {
|
||||||
/* do not paste meter, main outs, amp or internal send/returns */
|
/* do not paste meter, main outs, amp or internal returns */
|
||||||
continue;
|
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") {
|
} else if (type->value() == "send") {
|
||||||
|
|
||||||
XMLNode n (**niter);
|
XMLNode n (**niter);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user