X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrack.h;h=baa4218be642563612795595d9fa2d266f560fd6;hp=c8e561ff4465197282af29d69f160be6527eaf1a;hb=502b6f3b6fd04f6b01c6d70dcb81aa304dd0db1c;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd diff --git a/cinelerra-5.1/cinelerra/track.h b/cinelerra-5.1/cinelerra/track.h index c8e561ff..baa4218b 100644 --- a/cinelerra-5.1/cinelerra/track.h +++ b/cinelerra-5.1/cinelerra/track.h @@ -69,6 +69,7 @@ public: virtual int load_header(FileXML *file, uint32_t load_flags) { return 0; }; virtual int load_derived(FileXML *file, uint32_t load_flags) { return 0; }; void equivalent_output(Track *track, double *result); + int get_mixer_id(); virtual void copy_from(Track *track); Track& operator=(Track& track); @@ -89,36 +90,22 @@ public: void get_source_dimensions(double position, int &w, int &h); // Editing - void insert_asset(Asset *asset, - EDL *nested_edl, - double length, - double position, - int track_number); - Plugin* insert_effect(const char *title, - SharedLocation *shared_location, - KeyFrame *keyframe, - PluginSet *plugin_set, - double start, - double length, - int plugin_type); - void insert_plugin_set(Track *track, - int64_t position, - int64_t min_length, - int edit_autos); + void insert_asset(Asset *asset, EDL *nested_edl, + double length, double position, int track_number); + Plugin* insert_effect(const char *title, SharedLocation *shared_location, + KeyFrame *keyframe, PluginSet *plugin_set, + double start, double length, int plugin_type); + void insert_plugin_set(Track *track, int64_t position, + int64_t min_length, int edit_autos); void detach_effect(Plugin *plugin); // Insert a track from another EDL - void insert_track(Track *track, - double position, - int replace_default, - int edit_plugins, - int edit_autos, + void insert_track(Track *track, double position, + int replace_default, int edit_plugins, int edit_autos, // Pad pasted sections to a minimum of this length. double edl_length); void shuffle_edits(double start, double end, int first_track); void reverse_edits(double start, double end, int first_track); - void align_edits(double start, - double end, - ArrayList *times); + void align_edits(double start, double end, ArrayList *times); // Optimize editing void optimize(); int is_muted(int64_t position, int direction); // Test muting status @@ -136,20 +123,14 @@ public: virtual double from_units(int64_t position); - // Positions are identical for handle modifications virtual int identical(int64_t sample1, int64_t sample2) { return 0; }; // Get the plugin belonging to the set. Plugin* get_current_plugin(double position, - int plugin_set, - int direction, - int convert_units, - int use_nudge); + int plugin_set, int direction, int convert_units, int use_nudge); Plugin* get_current_transition(double position, - int direction, - int convert_units, - int use_nudge); + int direction, int convert_units, int use_nudge); // detach shared effects referencing module void detach_shared_effects(int module); @@ -158,33 +139,25 @@ public: // Called by playable tracks to test for playable server. // Descends the plugin tree without creating a virtual console. // Used by PlayableTracks::is_playable. - int is_synthesis(int64_t position, - int direction); + int is_synthesis(int64_t position, int direction); // Used by PlayableTracks::is_playable // Returns 1 if the track is in the output boundaries. - virtual int is_playable(int64_t position, - int direction); + virtual int is_playable(int64_t position, int direction); // Test direct copy conditions common to all the rendering routines virtual int direct_copy_possible(int64_t start, int direction, int use_nudge); // Used by PlayableTracks::is_playable int plugin_used(int64_t position, int64_t direction); - - - - +// align to frame boundary + int64_t frame_align(int64_t position, int round); virtual int copy_settings(Track *track); void shift_keyframes(int64_t position, int64_t length); void shift_effects(int64_t position, int64_t length, int edit_autos); - void change_plugins(SharedLocation &old_location, - SharedLocation &new_location, - int do_swap); - void change_modules(int old_location, - int new_location, - int do_swap); + void change_plugins(SharedLocation &old_location, SharedLocation &new_location, int do_swap); + void change_modules(int old_location, int new_location, int do_swap); int plugin_exists(Plugin *plugin); EDL *edl; @@ -213,31 +186,12 @@ public: int data_type; - - - - - - - - - - - - - - - - - int load_automation(FileXML *file); int load_edits(FileXML *file); virtual int change_channels(int oldchannels, int newchannels) { return 0; }; virtual int dump(FILE *fp); - - // ===================================== editing int copy(double start, double end, FileXML *file, const char *output_path = ""); @@ -245,64 +199,43 @@ public: double end, ArrayList *asset_list); virtual int copy_derived(int64_t start, int64_t end, FileXML *file) { return 0; }; - virtual int paste_derived(int64_t start, int64_t end, int64_t total_length, FileXML *file, int ¤t_channel) { return 0; }; - int clear(double start, - double end, - int edit_edits, - int edit_labels, - int clear_plugins, - int edit_autos, - int convert_units, - Edits *trim_edits); + virtual int paste_derived(int64_t start, int64_t end, + int64_t total_length, FileXML *file, int ¤t_channel) { return 0; }; + int blade(double position); + int clear(double start, double end, + int edit_edits, int edit_labels, int clear_plugins, + int edit_autos, int convert_units, Edits *trim_edits); // Returns the point to restart background rendering at. // -1 means nothing changed. - void clear_automation(double selectionstart, - double selectionend, + void clear_automation(double selectionstart, double selectionend, int shift_autos /* = 1 */, int default_only /* = 0 */); - void set_automation_mode(double selectionstart, - double selectionend, + void set_automation_mode(double selectionstart, double selectionend, int mode); virtual int clear_automation_derived(AutoConf *auto_conf, - double selectionstart, - double selectionend, + double selectionstart, double selectionend, int shift_autos = 1) { return 0; }; virtual int clear_derived(double start, double end) { return 0; }; - int copy_automation(double selectionstart, - double selectionend, - FileXML *file, - int default_only, - int active_only); + int copy_automation(double selectionstart, double selectionend, + FileXML *file, int default_only, int active_only); virtual int copy_automation_derived(AutoConf *auto_conf, - double selectionstart, - double selectionend, + double selectionstart, double selectionend, FileXML *file) { return 0; }; - int paste_automation(double selectionstart, - double total_length, - double frame_rate, - int64_t sample_rate, - FileXML *file, - int default_only, - int active_only); - virtual int paste_automation_derived(double selectionstart, - double selectionend, - double total_length, - FileXML *file, - int shift_autos, - int ¤t_pan) { return 0; }; + int paste_automation(double selectionstart, double total_length, + double frame_rate, int64_t sample_rate, FileXML *file, + int default_only, int active_only); + virtual int paste_automation_derived(double selectionstart, double selectionend, + double total_length, FileXML *file, int shift_autos, int ¤t_pan) { return 0; }; int paste_auto_silence(double start, double end); virtual int paste_auto_silence_derived(int64_t start, int64_t end) { return 0; }; int scale_time(float rate_scale, int scale_edits, int scale_autos, int64_t start, int64_t end); virtual int scale_time_derived(float rate_scale, int scale_edits, int scale_autos, int64_t start, int64_t end) { return 0; }; int purge_asset(Asset *asset); int asset_used(Asset *asset); - int clear_handle(double start, - double end, - int clear_labels, - int clear_plugins, - int edit_autos, + int clear_handle(double start, double end, + int clear_labels, int clear_plugins, int edit_autos, double &distance); int paste_silence(double start, double end, int edit_plugins, int edit_autos); virtual int select_translation(int cursor_x, int cursor_y) { return 0; }; // select video coordinates for frame @@ -374,9 +307,7 @@ public: int pixel; // pixel position from top of track view // Dimensions of this track if video int track_w, track_h; - - - + int mixer_id; private: // Identification of the track