18 new shapewipe transitions from rafa, rework savefile/confirm for nested edl edits
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edit.C
index e9e9f1b467e1e337ebd6f8b8535c10d17558f636..56329af3caecc76d71c32c7092bad0429ee6e57c 100644 (file)
@@ -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
@@ -383,8 +391,8 @@ int Edit::picon_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)