X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedl.h;h=8a96155e1933338cc11d3a83e80dacf29f019745;hp=12d08afed7a7eb1ae4afa048861a9d071521dfd5;hb=2e48b660e37eb5c661264d601211e16cb6cd6e89;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd diff --git a/cinelerra-5.1/cinelerra/edl.h b/cinelerra-5.1/cinelerra/edl.h index 12d08afe..8a96155e 100644 --- a/cinelerra-5.1/cinelerra/edl.h +++ b/cinelerra-5.1/cinelerra/edl.h @@ -29,6 +29,7 @@ #include "assets.inc" #include "autoconf.inc" #include "bchash.inc" +#include "binfolder.h" #include "edit.inc" #include "edits.inc" #include "edl.inc" @@ -40,7 +41,7 @@ #include "localsession.inc" #include "maxchannels.h" #include "mutex.inc" -#include "nestededls.inc" +#include "clipedls.h" #include "playabletracks.inc" #include "playbackconfig.h" #include "pluginserver.h" @@ -50,6 +51,7 @@ #include "theme.inc" #include "tracks.inc" #include "vedit.inc" +#include "zwindow.h" // Loading and saving are built on load and copy except for automation: @@ -79,14 +81,11 @@ public: void boundaries(); // Create tracks using existing configuration int create_default_tracks(); - int load_xml(FileXML *file, - uint32_t load_flags); - int save_xml(FileXML *xml, - const char *output_path, - int is_clip, - int is_vwindow); - int load_audio_config(FileXML *file, int append_mode, uint32_t load_flags); - int load_video_config(FileXML *file, int append_mode, uint32_t load_flags); + int load_xml(FileXML *file, uint32_t load_flags); + int read_xml(FileXML *file, uint32_t load_flags); + int save_xml(FileXML *xml, const char *output_path); + int load_audio_config(FileXML *file, int append_mode, uint32_t load_flags); + int load_video_config(FileXML *file, int append_mode, uint32_t load_flags); // Return 1 if rendering requires a virtual console. int get_use_vconsole(VEdit* *playable_edit, @@ -94,12 +93,35 @@ public: int direction, PlayableTracks *playable_tracks); -// Convert position to frames if cursor alignment is enabled +// Convert position to frame boundry 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 + double get_cursor_position(int cursor_x, int pane_no); +// increase track w/h to at least session w/h + void retrack(); // Scale all sample values since everything is locked to audio void rechannel(); void resample(double old_rate, double new_rate, int data_type); + + int copy(double start, double end, int all, + FileXML *file, const char *output_path, int rewind_it); + int copy(int all, FileXML *file, const char *output_path, int rewind_it); + + int copy_clip(double start, double end, int all, + 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_nested_edl(double start, double end, int all, + 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_vwindow_edl(double start, double end, int all, + FileXML *file, const char *output_path, int rewind_it); + int copy_vwindow_edl(int all, FileXML *file, const char *output_path, int rewind_it); + void copy_tracks(EDL *edl); // Copies project path, folders, EDLSession, and LocalSession from edl argument. // session_only - used by preferences and format specify @@ -108,6 +130,8 @@ public: int copy_all(EDL *edl); void copy_assets(EDL *edl); void copy_clips(EDL *edl); + void copy_nested(EDL *edl); + void copy_mixers(EDL *edl); // Copy pan and fade settings from edl void synchronize_params(EDL *edl); // Determine if the positions are equivalent if they're within half a frame @@ -118,24 +142,32 @@ public: // Return the number of seconds from the beginning of this which are // equivalent to the argument. // If they're completely equivalent, -1 is returned; -// This is used by BRender. +// This is used by BRender + BatchRender. double equivalent_output(EDL *edl); // Set project path for filename prefixes in the assets - void set_path(char *path); + void set_path(const char *path); // Set points and labels void set_inpoint(double position); void set_outpoint(double position); + void unset_inoutpoint(); // Redraw resources during index builds void set_index_file(Indexable *indexable); // Add assets from the src to the destination void update_assets(EDL *src); void optimize(); +// return next/prev edit starting from position + double next_edit(double position); + double prev_edit(double position); // Debug int dump(FILE *fp=stdout); static int next_id(); -// Create a new folder if it doesn't exist already - void new_folder(const char *folder); - void delete_folder(const char *folder); +// folders + BinFolder *get_folder(int no); + int get_folder_number(const char *title); + const char *get_folder_name(int no); + int new_folder(const char *title, int is_clips); + int delete_folder(const char *title); + void modify_edithandles(double oldposition, double newposition, int currentend, @@ -159,31 +191,27 @@ public: 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, // Ignore recordable status of tracks for saving - int is_clip, - int is_vwindow, - FileXML *file, - const char *output_path, - int rewind_it); // Rewind EDL for easy pasting - void paste_silence(double start, - double end, + 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); + void copy_indexables(EDL *edl); + EDL *new_nested(EDL *edl, const char *path); + EDL *create_nested_clip(EDL *nested); + void create_nested(EDL *nested); + void paste_silence(double start, double end, int edit_labels /* = 1 */, int edit_plugins, int edit_autos); void remove_from_project(ArrayList *assets); void remove_from_project(ArrayList *clips); - int clear(double start, - double end, + int blade(double position); + int clear(double start, double end, int clear_labels, int clear_plugins, int edit_autos); + void deglitch(double position); // Insert the asset at a point in the EDL void insert_asset(Asset *asset, EDL *nested_edl, @@ -228,24 +256,27 @@ public: // Adds to list of EDLs & increase garbage collection counter // Does nothing if EDL already exists void append_vwindow_edl(EDL *edl, int increase_counter); + 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); + Asset *get_proxy_asset(); // Titles of all subfolders - ArrayList folders; -// Clips - ArrayList clips; -// Nested EDLs - NestedEDLs *nested_edls; + BinFolders folders; +// Clips, Nested EDLs + ClipEDLs clips, nested_edls; // EDLs being shown in VWindows ArrayList vwindow_edls; // is the vwindow_edl shared and therefore should not be deleted in destructor // int vwindow_edl_shared; + Mixers mixers; // Media files // Shared between all EDLs Assets *assets; - - Tracks *tracks; Labels *labels; // Shared between all EDLs in a tree, for projects. @@ -253,17 +284,8 @@ public: // Specific to this EDL, for clips. LocalSession *local_session; - - - - - // Use parent Assets if nonzero EDL *parent_edl; - - - static Mutex *id_lock; - }; #endif