}
}
+void Tracks::select_edits(double start, double end)
+{
+ for( Track *track=first; track; track=track->next ) {
+ if( !track->is_armed() ) continue;
+ int64_t start_pos = track->to_units(start, 0);
+ int64_t end_pos = track->to_units(end, 0);
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ if( start_pos >= edit->startproject+edit->length ) continue;
+ if( edit->startproject >= end_pos ) continue;
+ edit->is_selected = 1;
+ }
+ }
+}
+
void Tracks::get_automation_extents(float *min,
float *max,
double start,
gang = edl->session->gang_tracks != GANG_NONE ? 1 : 0;
Track *nxt = track->next;
if( gang ) {
- while( track && !track->master && track->previous )
- track = track->previous;
+ track = track->gang_master();
while( nxt && !nxt->master )
nxt = nxt->next;
}
return 0;
}
-void Tracks::move_tracks(Track *src, Track *dst, int n)
+void Tracks::roll_tracks(Track *src, Track *dst, int n)
{
if( src == dst ) return;
while( --n >= 0 && src ) {
double Tracks::align_timecodes()
{
double offset = -1;
- for( Track *track=edl->tracks->first; track; track=track->next ) {
+ for( Track *track=first; track; track=track->next ) {
if( !track->is_armed() ) continue;
double early_offset = track->edits->early_timecode();
if( offset < 0 || offset > early_offset )
offset = early_offset;
}
if( offset >= 0 ) {
- for( Track *track=edl->tracks->first; track; track=track->next ) {
+ for( Track *track=first; track; track=track->next ) {
if( !track->is_armed() ) continue;
track->edits->align_timecodes(offset);
}
return offset;
}
+void Tracks::update_idxbl_length(int id, double dt)
+{
+ for( Track *track=first; track; track=track->next ) {
+ if( !track->is_armed() ) continue;
+ int64_t du = track->to_units(dt,0);
+ track->edits->update_idxbl_length(id, du);
+ track->optimize();
+ }
+}
+
+void Tracks::create_keyframes(double position, int mask, int mode)
+{
+ for( Track *track=first; track; track=track->next ) {
+ if( !track->is_armed() ) continue;
+ track->create_keyframes(position, mask, mode);
+ }
+}
+