diff options
author | David Robillard <d@drobilla.net> | 2007-08-01 23:18:56 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-08-01 23:18:56 +0000 |
commit | 874f3bbf8b4b8bb3e92f31c96623b1bcb4dd5c8a (patch) | |
tree | b649f164fa22e8a05b9d70c7022e1c1e02829223 /libs | |
parent | 6698f5f686bef82b0c9568558c83a3b9b3344700 (diff) |
Fix note delete crash bug.
Fix midi recording crash bug.
git-svn-id: svn://localhost/ardour2/trunk@2216 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/midi_source.h | 1 | ||||
-rw-r--r-- | libs/ardour/midi_source.cc | 8 | ||||
-rw-r--r-- | libs/ardour/smf_source.cc | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index ba4fe99604..c812f465ea 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -90,6 +90,7 @@ class MidiSource : public Source boost::shared_ptr<MidiModel> _model; bool _model_loaded; + bool _writing; private: bool file_changed (string path); diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc index 09e574c2ed..59aeddf831 100644 --- a/libs/ardour/midi_source.cc +++ b/libs/ardour/midi_source.cc @@ -46,6 +46,7 @@ MidiSource::MidiSource (Session& s, string name) : Source (s, name, DataType::MIDI) , _model(new MidiModel(s)) , _model_loaded (false) + , _writing (false) { _read_data_count = 0; _write_data_count = 0; @@ -55,6 +56,7 @@ MidiSource::MidiSource (Session& s, const XMLNode& node) : Source (s, node) , _model(new MidiModel(s)) , _model_loaded (false) + , _writing (false) { _read_data_count = 0; _write_data_count = 0; @@ -131,6 +133,8 @@ MidiSource::mark_streaming_midi_write_started (NoteMode mode) _model->set_note_mode(mode); _model->start_write(); } + + _writing = true; } void @@ -138,6 +142,8 @@ MidiSource::mark_streaming_write_started () { if (_model) _model->start_write(); + + _writing = true; } void @@ -145,5 +151,7 @@ MidiSource::mark_streaming_write_completed () { if (_model) _model->end_write(false); // FIXME: param? + + _writing = false; } diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index 4ae1cd34ab..686fb96af3 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -796,6 +796,9 @@ SMFSource::read_var_len() const void SMFSource::load_model(bool lock, bool force_reload) { + if (_writing) + return; + if (lock) Glib::Mutex::Lock lm (_lock); |