summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-03-13 20:15:50 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-03-13 20:15:50 +0000
commit359e4c86565549818be2be31ecd340c0581eb421 (patch)
tree5e829c307dbaeecd0689c9a192d621b4dc362e56
parent0eb97bcae784ae245b63529b8df9b3c53ed66feb (diff)
use new design for processor drag-n-drop
git-svn-id: svn://localhost/ardour2/branches/3.0@11671 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/processor_box.cc29
1 files changed, 22 insertions, 7 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index 935f7b26db..9a23a4d02a 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -1806,8 +1806,12 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
} else if (type->value() == "send") {
XMLNode n (**niter);
- Send::make_unique (n, *_session);
- Send* s = new Send (*_session, _route->pannable(), _route->mute_master());
+ uint32_t bslot;
+ string name = Send::name_and_id_new_send (*_session, Delivery::Send, bslot);
+ Send* s = new Send (*_session, name, bslot, _route->pannable(), _route->mute_master());
+
+ Send::make_unique (n);
+
if (s->set_state (n, Stateful::loading_state_version)) {
delete s;
return;
@@ -1815,12 +1819,15 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
p.reset (s);
-
} else if (type->value() == "return") {
XMLNode n (**niter);
- Return::make_unique (n, *_session);
- Return* r = new Return (*_session);
+ uint32_t bslot;
+
+ string name = Return::name_and_id_new_return (*_session, bslot);
+ Return* r = new Return (*_session, name, bslot);
+
+ Return::make_unique (n);
if (r->set_state (n, Stateful::loading_state_version)) {
delete r;
@@ -1832,10 +1839,18 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
} else if (type->value() == "port") {
XMLNode n (**niter);
- p.reset (new PortInsert (*_session, _route->pannable (), _route->mute_master ()));
- if (p->set_state (n, Stateful::loading_state_version)) {
+ uint32_t bslot;
+ string name = PortInsert::name_and_id_new_insert (*_session, bslot);
+
+ PortInsert* pi = new PortInsert (*_session, name, bslot, _route->pannable (), _route->mute_master ());
+
+ PortInsert::make_unique (n);
+
+ if (pi->set_state (n, Stateful::loading_state_version)) {
return;
}
+
+ p.reset (pi);
} else {
/* XXX its a bit limiting to assume that everything else