summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/audioregion.h2
-rw-r--r--libs/ardour/ardour/midi_region.h1
-rw-r--r--libs/ardour/audioregion.cc2
-rw-r--r--libs/ardour/midi_region.cc8
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);