summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/midi_track.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index 9fc2755a16..745fa75688 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -80,7 +80,7 @@ MidiTrack::use_new_diskstream ()
ds->do_refill_with_alloc ();
ds->set_block_size (_session.get_block_size ());
- set_diskstream (boost::dynamic_pointer_cast<MidiDiskstream> (ds));
+ set_diskstream (ds);
}
void
@@ -150,6 +150,14 @@ MidiTrack::_set_state (const XMLNode& node, int version, bool call_base)
}
}
+ if (version >= 3000) {
+ if ((child = find_named_node (node, X_("Diskstream"))) != 0) {
+ boost::shared_ptr<MidiDiskstream> ds (new MidiDiskstream (_session, *child));
+ ds->do_refill_with_alloc ();
+ set_diskstream (ds);
+ }
+ }
+
pending_state = const_cast<XMLNode*> (&node);
if (_session.state_of_the_state() & Session::Loading) {