summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2012-10-12 09:25:20 +0000
committerHans Baier <hansfbaier@googlemail.com>2012-10-12 09:25:20 +0000
commite3fb47d990b40f0cbbb96c07ae4772169898bfe0 (patch)
tree397ca6bf9935ce2b1cf3314de5f4138777b9bed4
parent6009ad30602019cb41c64ef95362747489bdb834 (diff)
make sure routes instrument info initializes correctly
git-svn-id: svn://localhost/ardour2/branches/3.0@13254 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/route.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 99da5ea63a..9c051c2369 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1594,7 +1594,9 @@ void
Route::reset_instrument_info ()
{
boost::shared_ptr<Processor> instr = the_instrument();
- _instrument_info.set_internal_instrument (instr);
+ if (instr) {
+ _instrument_info.set_internal_instrument (instr);
+ }
}
/** Caller must hold process lock */
@@ -2025,7 +2027,6 @@ Route::set_state (const XMLNode& node, int version)
processor_state.add_child_copy (*child);
}
-
if (child->name() == X_("Pannable")) {
if (_pannable) {
_pannable->set_state (*child, version);
@@ -2045,6 +2046,9 @@ Route::set_state (const XMLNode& node, int version)
set_processor_state (processor_state);
+ // this looks up the internal instrument in processors
+ reset_instrument_info();
+
if ((prop = node.property ("self-solo")) != 0) {
set_self_solo (string_is_affirmative (prop->value()));
}