use notification of what was changed in MidiRegion::post_set() call
[ardour.git] / libs / ardour / ardour / midi_region.h
index dae984c33106df27a1270a788b9ffca4430f6b43..650c7c9b2e1329b809eece02ea30ad976a28ab37 100644 (file)
@@ -117,6 +117,7 @@ class MidiRegion : public Region
 
   private:
        friend class RegionFactory;
+        PBD::Property<Evoral::MusicalTime> _length_beats;
 
        MidiRegion (const SourceList&);
        MidiRegion (boost::shared_ptr<const MidiRegion>, frameoffset_t offset = 0, bool offset_relative = true);
@@ -129,11 +130,14 @@ 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 ();
 
        void set_position_internal (framepos_t pos, bool allow_bbt_recompute);
+        void set_length_internal (framecnt_t len);
+        void update_length_beats ();
 
        void model_changed ();
        void model_automation_state_changed (Evoral::Parameter const &);
@@ -143,6 +147,8 @@ class MidiRegion : public Region
        PBD::ScopedConnection _model_connection;
        PBD::ScopedConnection _source_connection;
         PBD::ScopedConnection _model_contents_connection;
+
+        double _last_length_beats;
 };
 
 } /* namespace ARDOUR */