X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedl.C;h=7966276159becb5ca866d43e8cb4051c801c8529;hp=4cea20f53576bc1415164d4d586a381d9053773b;hb=e23393f4ff9f772ac8f47926cf490dc87a630ed4;hpb=d5a0afb9bc8562f6c2698f88ff40790009a5e63c diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C index 4cea20f5..79662761 100644 --- a/cinelerra-5.1/cinelerra/edl.C +++ b/cinelerra-5.1/cinelerra/edl.C @@ -1676,3 +1676,27 @@ int EDL::in_use(Indexable *indexable) return 0; } +int EDL::regroup(int next_id) +{ + ArrayList new_groups; + for( Track *track=tracks->first; track; track=track->next ) { + for( Edit *edit=track->edits->first; edit; edit=edit->next ) { + if( !edit->group_id ) continue; + int k = new_groups.size(); + while( --k >= 0 && new_groups[k] != edit->group_id ); + if( k >= 0 ) continue; + new_groups.append(edit->group_id); + } + } + for( Track *track=tracks->first; track; track=track->next ) { + for( Edit *edit=track->edits->first; edit; edit=edit->next ) { + if( !edit->group_id ) continue; + int k = new_groups.size(); + while( --k >= 0 && new_groups[k] != edit->group_id ); + if( k < 0 ) continue; + edit->group_id = k + next_id; + } + } + return new_groups.size(); +} +