diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-03-13 20:15:50 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-03-13 20:15:50 +0000 |
commit | 359e4c86565549818be2be31ecd340c0581eb421 (patch) | |
tree | 5e829c307dbaeecd0689c9a192d621b4dc362e56 | |
parent | 0eb97bcae784ae245b63529b8df9b3c53ed66feb (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.cc | 29 |
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 |