X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftracks.C;h=101e7cdb8dbd9e274df7336381164901d9b8795b;hb=271d07e4385f187b88ffcd986e9ecf5635a51718;hp=d904d5d6b330df4d660b61d6d05d24990a736f62;hpb=9a75aafbc51be29b49351a51e9084bb34d255c0d;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/tracks.C b/cinelerra-5.1/cinelerra/tracks.C index d904d5d6..101e7cdb 100644 --- a/cinelerra-5.1/cinelerra/tracks.C +++ b/cinelerra-5.1/cinelerra/tracks.C @@ -787,3 +787,39 @@ void Tracks::move_tracks(Track *src, Track *dst, int n) } } +double Tracks::align_timecodes() +{ + double offset = -1; + 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=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); + } +} +