mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-21 06:06:25 +01:00
Fixes to get legacy 2.x sends working.
git-svn-id: svn://localhost/ardour2/branches/3.0@3624 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
01f18f325f
commit
44fd104ada
2 changed files with 46 additions and 13 deletions
|
|
@ -73,26 +73,40 @@ int
|
|||
IOProcessor::set_state (const XMLNode& node)
|
||||
{
|
||||
const XMLProperty *prop;
|
||||
const XMLNode *io_node = 0;
|
||||
|
||||
Processor::set_state(node);
|
||||
|
||||
XMLNodeList nlist = node.children();
|
||||
XMLNodeIterator niter;
|
||||
bool have_io = false;
|
||||
|
||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||
if ((*niter)->name() == IO::state_node_name) {
|
||||
have_io = true;
|
||||
_io->set_state(**niter);
|
||||
io_node = (*niter);
|
||||
break;
|
||||
} else if ((*niter)->name() == "Redirect") {
|
||||
XMLNodeList rlist = (*niter)->children();
|
||||
XMLNodeIterator riter;
|
||||
|
||||
// legacy sessions: use IO name
|
||||
if ((prop = node.property ("name")) == 0) {
|
||||
set_name(_io->name());
|
||||
for (riter = rlist.begin(); riter != rlist.end(); ++riter) {
|
||||
if ( (*riter)->name() == IO::state_node_name) {
|
||||
warning << _("Found legacy IO in a redirect") << endmsg;
|
||||
io_node = (*riter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!have_io) {
|
||||
if (io_node) {
|
||||
_io->set_state(*io_node);
|
||||
|
||||
// legacy sessions: use IO name
|
||||
if ((prop = node.property ("name")) == 0) {
|
||||
set_name(_io->name());
|
||||
}
|
||||
|
||||
} else {
|
||||
error << _("XML node describing a redirect is missing an IO node") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue