X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedl.h;h=5d08285bd5ddd2abf726c73c68618a55c009b6de;hp=6ec34c8ff51a513023adba55ae6b9fd8eb78a30f;hb=HEAD;hpb=0c086b3e7b552e0f6b06c8696d7682d9d4bd91db diff --git a/cinelerra-5.1/cinelerra/edl.h b/cinelerra-5.1/cinelerra/edl.h index 6ec34c8f..5d08285b 100644 --- a/cinelerra-5.1/cinelerra/edl.h +++ b/cinelerra-5.1/cinelerra/edl.h @@ -25,6 +25,7 @@ #include #include +#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" @@ -93,7 +94,7 @@ 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); @@ -107,21 +108,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. @@ -159,6 +168,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(); @@ -172,38 +182,26 @@ public: void delete_edit_labels(ArrayList *edits, int collapse); void move_edit_labels(ArrayList *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 *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, @@ -216,7 +214,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, @@ -225,8 +223,20 @@ public: RecordLabels *labels = 0); // Insert the clip at a point in the EDL int insert_clips(ArrayList *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, + 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); + void replace_assets(ArrayList &orig_idxbls, ArrayList &new_assets); // resequence group ids starting at next_id int regroup(int next_id); @@ -235,8 +245,9 @@ public: void get_shared_tracks(Track *track, ArrayList *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 @@ -266,8 +277,7 @@ public: void rescale_proxy(int orig_scale, int new_scale); void set_proxy(int new_scale, int use_scaler, ArrayList *orig_assets, ArrayList *proxy_assets); - void add_proxy(int use_scaler, - ArrayList *orig_assets, ArrayList *proxy_assets); + void add_proxy(ArrayList *orig_assets, ArrayList *proxy_assets); Asset *get_proxy_asset(); Track *add_new_track(int data_type); @@ -296,4 +306,12 @@ public: EDL *parent_edl; }; +// remap plugin shares in collect/paste effects +class edl_shared : public ArrayList { public: int trk; }; +class edl_shared_list : public ArrayList {}; +class edl_SharedLocations : public ArrayList { +public: + void add(int trk, int plg); +}; + #endif