diff options
-rw-r--r-- | libs/ardour/ardour/audioregion.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/midi_region.h | 1 | ||||
-rw-r--r-- | libs/ardour/audioregion.cc | 2 | ||||
-rw-r--r-- | libs/ardour/midi_region.cc | 8 |
4 files changed, 11 insertions, 2 deletions
diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h index 460d76b551..0776669874 100644 --- a/libs/ardour/ardour/audioregion.h +++ b/libs/ardour/ardour/audioregion.h @@ -197,7 +197,7 @@ class AudioRegion : public Region PBD::Property<gain_t> _scale_amplitude; void register_properties (); - void post_set (); + void post_set (const PBD::PropertyChange&); void init (); void set_default_fades (); diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index 53ffb4497c..650c7c9b2e 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -130,6 +130,7 @@ class MidiRegion : public Region MidiStateTracker* tracker = 0) const; void register_properties (); + void post_set (const PBD::PropertyChange&); void recompute_at_start (); void recompute_at_end (); diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 5c213bfb7c..9de1de1279 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -224,7 +224,7 @@ AudioRegion::~AudioRegion () } void -AudioRegion::post_set () +AudioRegion::post_set (const PropertyChange& /*ignored*/) { if (!_sync_marked) { _sync_position = _start; diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index e487cae2f5..02d9f7d398 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -124,6 +124,14 @@ MidiRegion::clone () } void +MidiRegion::post_set (const PropertyChange& pc) +{ + if (pc.contains (Properties::length) || pc.contains (Properties::position)) { + update_length_beats (); + } +} + +void MidiRegion::set_length_internal (framecnt_t len) { Region::set_length_internal (len); |