nframes_t length() const { return _length; }
layer_t layer () const { return _layer; }
+ /* these two are valid ONLY during a StateChanged signal handler */
+
+ nframes_t last_position() const { return _last_position; }
+ nframes_t last_length() const { return _last_length; }
+
nframes64_t ancestral_start () const { return _ancestral_start; }
nframes64_t ancestral_length () const { return _ancestral_length; }
float stretch() const { return _stretch; }
+ float shift() const { return _shift; }
- void set_ancestral_data (nframes64_t start, nframes64_t length, float stretch);
+ void set_ancestral_data (nframes64_t start, nframes64_t length, float stretch, float shift);
nframes_t sync_offset(int& dir) const;
nframes_t sync_position() const;
void set_position (nframes_t, void *src);
void set_position_on_top (nframes_t, void *src);
void special_set_position (nframes_t);
- void nudge_position (long, void *src);
+ void nudge_position (nframes64_t, void *src);
bool at_natural_position () const;
void move_to_natural_position (void *src);
void first_edit ();
virtual bool verify_start (nframes_t) = 0;
- virtual bool verify_start_and_length (nframes_t, nframes_t) = 0;
+ virtual bool verify_start_and_length (nframes_t, nframes_t&) = 0;
virtual bool verify_start_mutable (nframes_t&_start) = 0;
- virtual bool verify_length (nframes_t) = 0;
+ virtual bool verify_length (nframes_t&) = 0;
virtual void recompute_at_start () = 0;
virtual void recompute_at_end () = 0;
nframes_t _start;
nframes_t _length;
+ nframes_t _last_length;
nframes_t _position;
+ nframes_t _last_position;
Flag _flags;
nframes_t _sync_position;
layer_t _layer;
nframes64_t _ancestral_start;
nframes64_t _ancestral_length;
float _stretch;
+ float _shift;
};
} /* namespace ARDOUR */