diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-01-15 15:42:30 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-01-15 15:42:30 +0000 |
commit | 8f79c9c190bf1fd5451d2392c3c929853363e26d (patch) | |
tree | f410b18e5dff087c6057c13c906be894aa263dcd /gtk2_ardour/processor_box.cc | |
parent | ccdcb135fae503d699dba2fe7707b812c6d3b0c6 (diff) |
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
Diffstat (limited to 'gtk2_ardour/processor_box.cc')
-rw-r--r-- | gtk2_ardour/processor_box.cc | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 58c3e6a85b..7bdac0c86d 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -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); |