X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedit.C;h=f06194f8a1de251b2472662176155ac76a1efeaa;hp=e9e9f1b467e1e337ebd6f8b8535c10d17558f636;hb=fbdd13b462256ed4f3b35dc114385fe0b0de0dcd;hpb=686bc04a488847170d80ec603f8c33962a7aa928 diff --git a/cinelerra-5.1/cinelerra/edit.C b/cinelerra-5.1/cinelerra/edit.C index e9e9f1b4..f06194f8 100644 --- a/cinelerra-5.1/cinelerra/edit.C +++ b/cinelerra-5.1/cinelerra/edit.C @@ -52,6 +52,7 @@ Edit::Edit(EDL *edl, Track *track) this->track = track; if(track) this->edits = track->edits; id = EDL::next_id(); + orig_id = id; } Edit::Edit(EDL *edl, Edits *edits) @@ -61,6 +62,7 @@ Edit::Edit(EDL *edl, Edits *edits) this->edits = edits; if(edits) this->track = edits->track; id = EDL::next_id(); + orig_id = id; } Edit::~Edit() @@ -83,7 +85,6 @@ void Edit::reset() channel = 0; user_title[0] = 0; nested_edl = 0; - is_plugin = 0; is_selected = 0; hard_left = 0; hard_right = 0; @@ -254,6 +255,7 @@ void Edit::set_selected(int v) void Edit::copy_from(Edit *edit) { + this->orig_id = edit->orig_id; this->nested_edl = edl->nested_edls.get_nested(edit->nested_edl); this->asset = edl->assets->update(edit->asset); this->startsource = edit->startsource; @@ -276,6 +278,12 @@ void Edit::copy_from(Edit *edit) this->channel = edit->channel; } +void Edit::clone_from(Edit *edit) +{ + copy_from(edit); + edit->orig_id = edit->id; +} + void Edit::equivalent_output(Edit *edit, int64_t *result) { // End of edit changed @@ -371,20 +379,20 @@ double Edit::picon_w() w = nested_edl->session->output_w; h = nested_edl->session->output_h; } - return w>0 && h>0 ? ((double)edl->local_session->zoom_track*w)/h : 0; + return w>0 && h>0 ? ((double)track->data_h*w)/h : 0; } int Edit::picon_h() { - return edl->local_session->zoom_track; + return track->data_h; } int Edit::dump(FILE *fp) { fprintf(fp," EDIT %p\n", this); fflush(fp); - fprintf(fp," nested_edl=%p %s asset=%p %s\n", - nested_edl, nested_edl ? nested_edl->path : "", + fprintf(fp," id %d, orig_id %d, nested_edl=%p %s asset=%p %s\n", + id, orig_id, nested_edl, nested_edl ? nested_edl->path : "", asset, asset ? asset->path : ""); fflush(fp); fprintf(fp," channel %d, color %08x, hard lt/rt %d/%d" @@ -653,7 +661,7 @@ int Edit::select_handle(float view_start, float zoom_units, int cursor_x, int cu int64_t pixel1, pixel2; pixel1 = left; - pixel2 = pixel1 + 10; + pixel2 = pixel1 + xS(10); // test left edit // cursor_x is faked in acanvas @@ -665,7 +673,7 @@ int Edit::select_handle(float view_start, float zoom_units, int cursor_x, int cu //int64_t endproject = startproject + length; pixel2 = right; - pixel1 = pixel2 - 10; + pixel1 = pixel2 - xS(10); // test right edit if(cursor_x >= pixel1 && cursor_x <= pixel2)