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 (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 ds (new MidiDiskstream (_session, *child)); + ds->do_refill_with_alloc (); + set_diskstream (ds); + } + } + pending_state = const_cast (&node); if (_session.state_of_the_state() & Session::Loading) {