From 76e7a89a512fd43b1cf18ab802cbcc913b5c5a6d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 20 Dec 2010 16:11:23 +0000 Subject: [PATCH] use notification of what was changed in MidiRegion::post_set() call git-svn-id: svn://localhost/ardour2/branches/3.0@8307 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/audioregion.h | 2 +- libs/ardour/ardour/midi_region.h | 1 + libs/ardour/audioregion.cc | 2 +- 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 _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 @@ -123,6 +123,14 @@ MidiRegion::clone () return boost::dynamic_pointer_cast (RegionFactory::create (ms, plist, true)); } +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) { -- 2.30.2