mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-24 07:27:44 +01:00
some provisional support for "real" solo-isolate behaviour, subject to more discussions with mr. oofus and others
git-svn-id: svn://localhost/ardour2/branches/3.0@6145 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
78503905d7
commit
9fa51e19b6
9 changed files with 129 additions and 100 deletions
|
|
@ -133,7 +133,6 @@ IOProcessor::state (bool full_state)
|
|||
node.add_property ("own-output", "yes");
|
||||
if (_output) {
|
||||
XMLNode& o (_output->state (full_state));
|
||||
// o.name() = X_("output");
|
||||
node.add_child_nocopy (o);
|
||||
}
|
||||
} else {
|
||||
|
|
@ -166,12 +165,21 @@ IOProcessor::set_state (const XMLNode& node, int version)
|
|||
|
||||
XMLNodeList nlist = node.children();
|
||||
XMLNodeIterator niter;
|
||||
const string instr = enum_2_string (IO::Input);
|
||||
const string outstr = enum_2_string (IO::Output);
|
||||
|
||||
if (_own_input) {
|
||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||
if ((*niter)->name() == "input") {
|
||||
io_node = (*niter);
|
||||
break;
|
||||
const XMLProperty* prop;
|
||||
if ((prop = (*niter)->property ("name")) != 0) {
|
||||
if (prop->value() == _name) {
|
||||
if ((prop = (*niter)->property ("direction")) != 0) {
|
||||
if (prop->value() == instr) {
|
||||
io_node = (*niter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -184,16 +192,25 @@ IOProcessor::set_state (const XMLNode& node, int version)
|
|||
}
|
||||
|
||||
} else {
|
||||
/* no input */
|
||||
/* no input, which is OK */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (_own_output) {
|
||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||
if ((*niter)->name() == "output") {
|
||||
io_node = (*niter);
|
||||
break;
|
||||
if ((*niter)->name() == "IO") {
|
||||
const XMLProperty* prop;
|
||||
if ((prop = (*niter)->property ("name")) != 0) {
|
||||
if (prop->value() == _name) {
|
||||
if ((prop = (*niter)->property ("direction")) != 0) {
|
||||
if (prop->value() == outstr) {
|
||||
io_node = (*niter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -205,7 +222,7 @@ IOProcessor::set_state (const XMLNode& node, int version)
|
|||
set_name (_output->name());
|
||||
}
|
||||
} else {
|
||||
/* no output */
|
||||
/* no output, which is OK */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue