rework proxy scaler, fix crop-gui coord, video_data tweak for proxy_format
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edl.h
index 5e184d22965f18bdd76545a315a5c4806971f8e0..361996cae599f1407495444fe22859cf7683e03a 100644 (file)
@@ -93,12 +93,13 @@ public:
                int direction,
                PlayableTracks *playable_tracks);
 
-// Convert position to frame boundry times
+// Convert position to frame boundary times
        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);
@@ -212,7 +211,7 @@ public:
                int clear_labels,
                int clear_plugins,
                int edit_autos);
-       void deglitch(double position);
+       int clear_hard_edges(double start, double end);
 // Insert the asset at a point in the EDL
        void insert_asset(Asset *asset,
                EDL *nested_edl,
@@ -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);
@@ -260,8 +269,7 @@ public:
        void rescale_proxy(int orig_scale, int new_scale);
        void set_proxy(int new_scale, int use_scaler,
                ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets);
-       void add_proxy(int use_scaler,
-               ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets);
+       void add_proxy(ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets);
        Asset *get_proxy_asset();
        Track *add_new_track(int data_type);