diff options
author | Carl Hetherington <carl@carlh.net> | 2012-04-15 21:04:44 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-04-15 21:04:44 +0000 |
commit | 8367cacf150be852b9baf308caebe23603f36ff6 (patch) | |
tree | 688fbdb9ded2775baf1618f09ce1313fab040445 /libs/ardour/midi_region.cc | |
parent | 23973bae24b7f569e26c7f869a103aacbaf66ab2 (diff) |
Update MidiRegion::_start_beats on trimming the front of a MIDI region; reset _start_beats with _start on MidiRegion::fix_negative_start(). May help with #4736.
git-svn-id: svn://localhost/ardour2/branches/3.0@11984 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_region.cc')
-rw-r--r-- | libs/ardour/midi_region.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index 092915cefb..c61185fe3a 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -153,7 +153,7 @@ void MidiRegion::post_set (const PropertyChange& pc) { Region::post_set (pc); - + if (pc.contains (Properties::length) && !pc.contains (Properties::length_beats)) { update_length_beats (); } else if (pc.contains (Properties::start) && !pc.contains (Properties::start_beats)) { @@ -424,6 +424,7 @@ MidiRegion::fix_negative_start () model()->insert_silence_at_start (c.from (-_start)); _start = 0; + _start_beats = 0; } /** Transpose the notes in this region by a given number of semitones */ @@ -433,3 +434,10 @@ MidiRegion::transpose (int semitones) BeatsFramesConverter c (_session.tempo_map(), _start); model()->transpose (c.from (_start), c.from (_start + _length), semitones); } + +void +MidiRegion::set_start_internal (framecnt_t s) +{ + Region::set_start_internal (s); + set_start_beats_from_start_frames (); +} |