diff options
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r-- | libs/ardour/session_state.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index c782882c0f..32a4a50cb4 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -2932,6 +2932,16 @@ Session::restore_history (string snapshot_name) } else { error << "FIXME: Failed to downcast MidiSource for DeltaCommand" << endmsg; } + } else if (n->name() == "DiffCommand") { + PBD::ID id(n->property("midi-source")->value()); + boost::shared_ptr<MidiSource> midi_source = + boost::dynamic_pointer_cast<MidiSource, Source>(source_by_id(id)); + if(midi_source) { + ut->add_command(new MidiModel::DiffCommand(midi_source->model(), *n)); + } else { + error << "FIXME: Failed to downcast MidiSource for DeltaCommand" << endmsg; + } + } else { error << string_compose(_("Couldn't figure out how to make a Command out of a %1 XMLNode."), n->name()) << endmsg; } |