Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / auto.C
index 4171fa83d18338a46897ff2877852550279ab9ca..f4e751aa0e7a5dc8abd840aed8456bb2784ad795 100644 (file)
@@ -2,6 +2,7 @@
 /*
  * CINELERRA
  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2003-2016 Cinelerra CV contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,6 +22,7 @@
 
 #include "auto.h"
 #include "autos.h"
+#include "edl.h"
 #include "filexml.h"
 
 Auto::Auto()
@@ -29,10 +31,11 @@ Auto::Auto()
        this->edl = 0;
        this->autos = 0;
        position = 0;
-       skip = 0;
        WIDTH = xS(10);
        HEIGHT = yS(10);
        is_default = 0;
+       id = EDL::next_id();
+       orig_id = id;
 }
 
 Auto::Auto(EDL *edl, Autos *autos)
@@ -41,10 +44,11 @@ Auto::Auto(EDL *edl, Autos *autos)
        this->edl = edl;
        this->autos = autos;
        position = 0;
-       skip = 0;
        WIDTH = xS(10);
        HEIGHT = yS(10);
        is_default = 0;
+       id = EDL::next_id();
+       orig_id = id;
 }
 
 Auto& Auto::operator=(Auto& that)
@@ -66,6 +70,7 @@ void Auto::copy(int64_t start, int64_t end, FileXML *file, int default_only)
 
 void Auto::copy_from(Auto *that)
 {
+       this->orig_id = that->orig_id;
        this->position = that->position;
 }
 
@@ -75,8 +80,11 @@ int Auto::interpolate_from(Auto *a1, Auto *a2, int64_t new_position, Auto *templ
        if( !templ ) templ = previous;
        if( !templ && this->autos )
                templ = this->autos->default_auto;
-       if( templ )
+       if( templ ) {
+               int orig_id = this->orig_id;
                copy_from(templ);
+               this->orig_id = orig_id;
+       }
        position = new_position;
        return 0;
 }