upgrade libvpx+lv2, fix dbl tap play bug, add multi nest/unnest clips, add del top...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edl.h
index 4befb9ffbb3100a0f6e7f430ee4b759df05f7408..0798b408164c6889a2b626ec30b266e98d03cb10 100644 (file)
@@ -97,8 +97,9 @@ public:
        double frame_align(double position, int round);
 // frame align if cursor alignment is enabled
        double align_to_frame(double position, int round);
-// get position under cursor in pane
+// get position under cursor in pane, and inverse
        double get_cursor_position(int cursor_x, int pane_no);
+       int64_t get_position_cursorx(double position, int pane_no);
 
 // increase track w/h to at least session w/h
        void retrack();
@@ -106,21 +107,29 @@ public:
        void rechannel();
        void resample(double old_rate, double new_rate, int data_type);
 
-       int copy(double start, double end, int all,
+       int copy(int copy_flags, double start, double end,
                FileXML *file, const char *output_path, int rewind_it);
-       int copy(int all, FileXML *file, const char *output_path, int rewind_it);
+       int copy(int copy_flags, FileXML *file, const char *output_path,
+               int rewind_it);
 
-       int copy_clip(double start, double end, int all,
+       int copy_clip(int copy_flags, double start, double end,
                FileXML *file, const char *output_path, int rewind_it);
-       int copy_clip(int all, FileXML *file, const char *output_path, int rewind_it);
+       int copy_clip(int copy_flags, FileXML *file, const char *output_path,
+               int rewind_it);
 
-       int copy_nested_edl(double start, double end, int all,
+       int copy_nested(int copy_flags, double start, double end,
                FileXML *file, const char *output_path, int rewind_it);
-       int copy_nested_edl(int all, FileXML *file, const char *output_path, int rewind_it);
+       int copy_nested(int copy_flags, FileXML *file, const char *output_path,
+               int rewind_it);
 
-       int copy_vwindow_edl(double start, double end, int all,
+       int copy_vwindow(int copy_flags, double start, double end,
                FileXML *file, const char *output_path, int rewind_it);
-       int copy_vwindow_edl(int all, FileXML *file, const char *output_path, int rewind_it);
+       int copy_vwindow(int copy_flags, FileXML *file, const char *output_path,
+               int rewind_it);
+
+       int copy_xml(int copy_flags, double start, double end,
+               FileXML *file, const char *closer, const char *output_path,
+               int rewind_it);
 
        void copy_tracks(EDL *edl);
 // Copies project path, folders, EDLSession, and LocalSession from edl argument.
@@ -158,6 +167,7 @@ public:
 // return next/prev edit starting from position
        double next_edit(double position);
        double prev_edit(double position);
+       double skip_silence(double position);
 // Debug
        int dump(FILE *fp=stdout);
        static int next_id();
@@ -167,35 +177,24 @@ public:
        const char *get_folder_name(int no);
        int new_folder(const char *title, int is_clips);
        int delete_folder(const char *title);
+       void delete_edits(ArrayList<Edit*>*, int);
+       void delete_edit_labels(ArrayList<Edit*> *edits, int collapse);
+       void move_edit_labels(ArrayList<Edit*> *edits, double dist);
 
-       void modify_edithandles(double oldposition,
-               double newposition,
-               int currentend,
-               int handle_mode,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos);
+       void modify_edithandles(double oldposition, double newposition,
+               int currentend, int handle_mode, int edit_labels,
+               int edit_plugins, int edit_autos, int group_id);
 
-       void modify_pluginhandles(double oldposition,
-               double newposition,
-               int currentend,
-               int handle_mode,
-               int edit_labels,
-               int edit_autos,
-               Edits *trim_edits);
-
-       int trim_selection(double start,
-               double end,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos);
+       void modify_pluginhandles(double oldposition, double newposition,
+               int currentend, int handle_mode, int edit_labels,
+               int edit_autos, Edits *trim_edits);
+
+       int trim_selection(double start, double end,
+               int edit_labels, int edit_plugins, int edit_autos);
 
 // Editing functions
-       int copy_assets(double start, double end,
-               FileXML *file, int all, const char *output_path);
-       int copy(double start, double end, int all,
-               const char *closer, FileXML *file,
-               const char *output_path, int rewind_it);
+       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 *create_nested_clip(EDL *nested);
@@ -223,6 +222,16 @@ public:
        int insert_clips(ArrayList<EDL*> *new_edls, int load_mode, 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,
+               double *start_position, Track **start_track,
+               int edit_labels, int edit_autos, int edit_plugins);
+       EDL *selected_edits_to_clip(int packed, double *start_position, Track **start_track);
+       void selected_edits_to_clipboard(int packed);
+       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);
+// resequence group ids starting at next_id
+       int regroup(int next_id);
 
        void get_shared_plugins(Track *source, ArrayList<SharedLocation*> *plugin_locations,
                int omit_recordable, int data_type);
@@ -263,6 +272,7 @@ public:
        void add_proxy(int use_scaler,
                ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets);
        Asset *get_proxy_asset();
+       Track *add_new_track(int data_type);
 
 // Titles of all subfolders
        BinFolders folders;