X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftracks.C;h=d8357e2f61d8e865d1eebd62d2b3671de7c5c2f3;hb=22c6251d37911a11e322bf7518e6a992ea0bb6c7;hp=101e7cdb8dbd9e274df7336381164901d9b8795b;hpb=84ac8a2bb3357c04a3f67cf763b0f61ddbbd021d;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/tracks.C b/cinelerra-5.1/cinelerra/tracks.C index 101e7cdb..d8357e2f 100644 --- a/cinelerra-5.1/cinelerra/tracks.C +++ b/cinelerra-5.1/cinelerra/tracks.C @@ -126,6 +126,20 @@ void Tracks::get_selected_edits(ArrayList *drag_edits) } } +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, @@ -322,8 +336,7 @@ int Tracks::delete_track(Track *track, int gang) 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; }