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;
Evoral::Range<framepos_t> last_range () const {
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());
}
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);
void trim_end (framepos_t new_position);
void trim_to (framepos_t position, framecnt_t length);
+ virtual void fade_range (framepos_t, framepos_t) {}
+
void cut_front (framepos_t new_position);
void cut_end (framepos_t new_position);
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;
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&);
bool verify_start (framepos_t);
bool verify_start_and_length (framepos_t, framecnt_t&);
bool verify_start_mutable (framepos_t&_start);
- bool verify_length (framecnt_t);
+ bool verify_length (framecnt_t&);
virtual void recompute_at_start () = 0;
virtual void recompute_at_end () = 0;