summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-01-15 15:42:30 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2013-01-15 15:42:30 +0000
commit8f79c9c190bf1fd5451d2392c3c929853363e26d (patch)
treef410b18e5dff087c6057c13c906be894aa263dcd /gtk2_ardour
parentccdcb135fae503d699dba2fe7707b812c6d3b0c6 (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')
-rw-r--r--gtk2_ardour/processor_box.cc29
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);