closing in on pin management.
[ardour.git] / libs / ardour / ardour / region.h
index 071cae91279e574f2a30c42cdc4d4b0e681ef22b..9df4bdee7ada370a995db2e878871c62ee7849b9 100644 (file)
@@ -132,14 +132,13 @@ class LIBARDOUR_API Region
 
        frameoffset_t sync_offset (int& dir) const;
        framepos_t sync_position () const;
-       framepos_t sync_point () const;
 
        framepos_t adjust_to_sync (framepos_t) const;
 
        /* first_frame() is an alias; last_frame() just hides some math */
 
        framepos_t first_frame () const { return _position; }
-       framepos_t last_frame ()  const { return _position + _length; }
+       framepos_t last_frame ()  const { return _position + _length - 1; }
 
        /** Return the earliest possible value of _position given the
         *  value of _start within the region's sources
@@ -151,9 +150,9 @@ class LIBARDOUR_API Region
        framepos_t latest_possible_frame () const;
 
        Evoral::Range<framepos_t> last_range () const {
-               return Evoral::Range<framepos_t> (_last_position, _last_position + _last_length);
+               return Evoral::Range<framepos_t> (_last_position, _last_position + _last_length - 1);
        }
-       
+
        Evoral::Range<framepos_t> range () const {
                return Evoral::Range<framepos_t> (first_frame(), last_frame());
        }
@@ -212,6 +211,7 @@ class LIBARDOUR_API Region
        void set_length (framecnt_t);
        void set_start (framepos_t);
        void set_position (framepos_t);
+       void set_initial_position (framepos_t);
        void special_set_position (framepos_t);
        virtual void update_after_tempo_map_change ();
        void nudge_position (frameoffset_t);
@@ -354,7 +354,7 @@ class LIBARDOUR_API Region
        virtual void set_position_internal (framepos_t pos, bool allow_bbt_recompute);
        virtual void set_length_internal (framecnt_t);
        virtual void set_start_internal (framecnt_t);
-       
+
        DataType _type;
 
        PBD::Property<bool>        _sync_marked;
@@ -366,15 +366,15 @@ class LIBARDOUR_API Region
        PBD::Property<framepos_t>  _position;
        /** Sync position relative to the start of our file */
        PBD::Property<framepos_t>  _sync_position;
-       
+
        SourceList              _sources;
        /** Used when timefx are applied, so we can always use the original source */
        SourceList              _master_sources;
 
        AnalysisFeatureList     _transients;
-       
+
        boost::weak_ptr<ARDOUR::Playlist> _playlist;
-       
+
   private:
        void mid_thaw (const PBD::PropertyChange&);