diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-04-11 15:49:52 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-04-11 15:49:52 +0000 |
commit | aae8262a363b3d7b85b5baa3b2d0ffb07e604b73 (patch) | |
tree | f482717d2f895f3d9fb3b3f7faa5a4648c3b58d0 /libs/ardour/midi_source.cc | |
parent | cb413146428ce5db5e281d70f2b3b7df27c1aaab (diff) |
* persistent undo for MIDI edits works now
* fixed bug: dragging of notes beyond left region bounds made it disappear (unsigned int wrap around)
git-svn-id: svn://localhost/ardour2/branches/3.0@3249 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_source.cc')
-rw-r--r-- | libs/ardour/midi_source.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc index 7b2c4009bb..aa93729d37 100644 --- a/libs/ardour/midi_source.cc +++ b/libs/ardour/midi_source.cc @@ -49,7 +49,7 @@ sigc::signal<void,MidiSource *> MidiSource::MidiSourceCreated; MidiSource::MidiSource (Session& s, string name) : Source (s, name, DataType::MIDI) , _timeline_position(0) - , _model(new MidiModel(*this)) + , _model(new MidiModel(this)) , _writing (false) { _read_data_count = 0; @@ -59,7 +59,7 @@ MidiSource::MidiSource (Session& s, string name) MidiSource::MidiSource (Session& s, const XMLNode& node) : Source (s, node) , _timeline_position(0) - , _model(new MidiModel(*this)) + , _model(new MidiModel(this)) , _writing (false) { _read_data_count = 0; @@ -192,12 +192,13 @@ MidiSource::session_saved() newsrc->set_timeline_position(_timeline_position); _model->write_to(newsrc); + // cyclic dependency here, ugly :( newsrc->set_model(_model); - _model.reset(); + _model->set_midi_source(newsrc.get()); newsrc->flush_header(); newsrc->flush_footer(); - + Switched.emit(newsrc); } } |