Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edl.h
index 361996cae599f1407495444fe22859cf7683e03a..5d08285bd5ddd2abf726c73c68618a55c009b6de 100644 (file)
@@ -25,6 +25,7 @@
 #include <stdio.h>
 #include <stdint.h>
 
+#include "arraylist.h"
 #include "asset.inc"
 #include "assets.inc"
 #include "autoconf.inc"
@@ -47,7 +48,7 @@
 #include "pluginserver.h"
 #include "preferences.inc"
 #include "recordlabel.inc"
-#include "sharedlocation.inc"
+#include "sharedlocation.h"
 #include "theme.inc"
 #include "tracks.inc"
 #include "vedit.inc"
@@ -196,9 +197,11 @@ public:
        int copy_assets(int copy_flags, double start, double end,
                FileXML *file, const char *output_path);
        void copy_indexables(EDL *edl);
-       EDL *new_nested(EDL *edl, const char *path);
+       EDL *new_nested_clip(EDL *edl, const char *path);
+       EDL *get_nested_edl(const char *path);
        EDL *create_nested_clip(EDL *nested);
        void create_nested(EDL *nested);
+       void overwrite_clip(EDL *clip);
        void paste_silence(double start, double end,
                int edit_labels /* = 1 */,
                int edit_plugins,
@@ -220,6 +223,9 @@ public:
                RecordLabels *labels = 0);
 // Insert the clip at a point in the EDL
        int insert_clips(ArrayList<EDL*> *new_edls, int load_mode, Track *first_track = 0);
+// copy/paste group of effects
+       int collect_effects(EDL *&group);
+       int insert_effects(EDL *group, Track *first_track=0);
 // Add a copy of EDL* to the clip array.  Returns the copy.
        EDL* add_clip(EDL *edl);
        EDL *selected_edits_to_clip(int packed,
@@ -230,6 +236,7 @@ public:
        void paste_edits(EDL *clip, Track *first_track, double position, int overwrite,
                int edit_edits, int edit_labels, int edit_autos, int edit_plugins);
        void paste_edits(EDL *clip, Track *first_track, double position, int overwrite);
+       void replace_assets(ArrayList<Indexable*> &orig_idxbls, ArrayList<Asset*> &new_assets);
 // resequence group ids starting at next_id
        int regroup(int next_id);
 
@@ -238,8 +245,9 @@ public:
        void get_shared_tracks(Track *track, ArrayList<SharedLocation*> *module_locations,
                int omit_recordable, int data_type);
 
-    int get_tracks_height(Theme *theme);
-    int64_t get_tracks_width();
+       int get_tracks_height(Theme *theme);
+       int64_t get_tracks_width();
+
 // Return dimensions for canvas if smaller dimensions has zoom of 1
        void calculate_conformed_dimensions(int single_channel, float &w, float &h);
 // Get the total output size scaled to aspect ratio
@@ -298,4 +306,12 @@ public:
        EDL *parent_edl;
 };
 
+// remap plugin shares in collect/paste effects
+class edl_shared : public ArrayList<int> { public: int trk; };
+class edl_shared_list : public ArrayList<edl_shared> {};
+class edl_SharedLocations : public ArrayList<SharedLocation> {
+public:
+       void add(int trk, int plg);
+};
+
 #endif