summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-05-29 23:42:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-05-29 23:42:35 +0000
commit77f03c5a272da44d1bff43303a696e91f07e8bc3 (patch)
treedb881ad16d2ac899f20202777992ff595e4f2ed9 /libs/ardour/route.cc
parent89b76d122c16c97d653479c17054286da25c9e88 (diff)
fix some (all? not likely) problems with dragging close to 2^32-1 frames
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@1924 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc25
1 files changed, 15 insertions, 10 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index ad3077d9a0..3f9fa2737f 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1675,20 +1675,25 @@ Route::_set_state (const XMLNode& node, bool call_base)
}
}
- XMLNodeList redirect_nodes;
-
- for (niter = nlist.begin(); niter != nlist.end(); ++niter){
+ if (ports_legal) {
- child = *niter;
+ /* if ports are not legal, this will happen in set_deferred_state() */
+
+ XMLNodeList redirect_nodes;
+
+ for (niter = nlist.begin(); niter != nlist.end(); ++niter){
+
+ child = *niter;
+
+ if (child->name() == X_("Send") || child->name() == X_("Insert")) {
+ redirect_nodes.push_back(child);
+ }
- if (child->name() == X_("Send") || child->name() == X_("Insert")) {
- redirect_nodes.push_back(child);
}
-
+
+ _set_redirect_states (redirect_nodes);
}
- _set_redirect_states(redirect_nodes);
-
for (niter = nlist.begin(); niter != nlist.end(); ++niter){
child = *niter;
@@ -1814,7 +1819,7 @@ Route::_set_redirect_states(const XMLNodeList &nlist)
--last;
if (prev_last == last) {
- cerr << "Could not fully restore state as some redirects were not possible to create" << endl;
+ warning << _name << ": could not fully restore state as some redirects were not possible to create" << endmsg;
continue;
}