X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=inline;f=cinelerra-5.1%2Fcinelerra%2Fedl.C;h=1c0c77b1da1a6d060e80041d7f83d02d4749b943;hb=f4cba337b328ed1842085076c3e2c8244e3a94bd;hp=4cea20f53576bc1415164d4d586a381d9053773b;hpb=c6016b2d08ac0fdda37ee6e1f59dadcfd4335388;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C index 4cea20f5..1c0c77b1 100644 --- a/cinelerra-5.1/cinelerra/edl.C +++ b/cinelerra-5.1/cinelerra/edl.C @@ -1656,6 +1656,11 @@ double EDL::get_cursor_position(int cursor_x, int pane_no) (double)local_session->view_start[pane_no] * local_session->zoom_sample / session->sample_rate; } +int64_t EDL::get_position_cursorx(double position, int pane_no) +{ + return (int64_t)(position * session->sample_rate / local_session->zoom_sample) + - local_session->view_start[pane_no]; +} int EDL::in_use(Indexable *indexable) { @@ -1676,3 +1681,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(); +} +