diff options
author | David Robillard <d@drobilla.net> | 2007-07-31 02:16:46 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-07-31 02:16:46 +0000 |
commit | bb33e5d9f805dadf96cf988de9fcc5c89545add7 (patch) | |
tree | 9db98c772d176f12937bca49d448c28b0ce6e1cc /libs | |
parent | ea5a4eac105d50000969aa08a35ccd49a40ccd86 (diff) |
Get MidiRegionView's hands on MidiModel for editing operations to come.
MIDI select rectangle.
Add notes on a proper click only (not mouse down).
Fix crash when dragging from region to outside region.
git-svn-id: svn://localhost/ardour2/trunk@2196 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/midi_source.h | 6 | ||||
-rw-r--r-- | libs/ardour/midi_source.cc | 1 | ||||
-rw-r--r-- | libs/ardour/smf_source.cc | 5 |
3 files changed, 5 insertions, 7 deletions
diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index 9917a0cb42..ba4fe99604 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -77,7 +77,7 @@ class MidiSource : public Source void set_note_mode(NoteMode mode) { if (_model) _model->set_note_mode(mode); } virtual bool model_loaded() const { return _model_loaded; } - MidiModel* model() { return _model; } + boost::shared_ptr<MidiModel> model() { return _model; } protected: virtual nframes_t read_unlocked (MidiRingBuffer& dst, nframes_t start, nframes_t cnt, nframes_t stamp_offset) const = 0; @@ -88,8 +88,8 @@ class MidiSource : public Source mutable uint32_t _read_data_count; ///< modified in read() mutable uint32_t _write_data_count; ///< modified in write() - MidiModel* _model; - bool _model_loaded; + boost::shared_ptr<MidiModel> _model; + bool _model_loaded; private: bool file_changed (string path); diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc index 238bf4f481..09e574c2ed 100644 --- a/libs/ardour/midi_source.cc +++ b/libs/ardour/midi_source.cc @@ -66,7 +66,6 @@ MidiSource::MidiSource (Session& s, const XMLNode& node) MidiSource::~MidiSource () { - delete _model; } XMLNode& diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index eac782853f..d9a46ec782 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -805,7 +805,7 @@ SMFSource::load_model(bool lock, bool force_reload) } if (! _model) { - _model = new MidiModel(_session); + _model = boost::shared_ptr<MidiModel>(new MidiModel(_session)); } else { cerr << "SMFSource: Reloading model." << endl; _model->clear(); @@ -855,7 +855,6 @@ SMFSource::load_model(bool lock, bool force_reload) void SMFSource::destroy_model() { - delete _model; - _model = NULL; + _model.reset(); } |