port 7.2 mods: align_edits foreground plugin refresh_frame tweak, rework soundlevel...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / track.h
index bb1081e755f8d834c7532d5a91b0e6c70d0a2358..c2c43302f9aceb470f4b74bdb704328fe5ee3d9a 100644 (file)
@@ -71,6 +71,13 @@ public:
        void equivalent_output(Track *track, double *result);
        int get_mixer_id();
 
        void equivalent_output(Track *track, double *result);
        int get_mixer_id();
 
+       void get_fauto_xyz(int fauto, float &x, float &y, float &z);
+       void set_fauto_xyz(int fauto, float x, float y, float z);
+       void get_projector(float &x, float &y, float &z);
+       void set_projector(float x, float y, float z);
+       void get_camera(float &x, float &y, float &z);
+       void set_camera(float x, float y, float z);
+
        virtual void copy_from(Track *track);
        Track& operator=(Track& track);
        virtual PluginSet* new_plugins() { return 0; };
        virtual void copy_from(Track *track);
        Track& operator=(Track& track);
        virtual PluginSet* new_plugins() { return 0; };
@@ -105,7 +112,7 @@ public:
                double edl_length);
        void shuffle_edits(double start, double end, int first_track);
        void reverse_edits(double start, double end, int first_track);
                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<double> *times);
+       void align_edits(double start, double end, Track *master_track);
 // Optimize editing
        void optimize();
        int is_muted(int64_t position, int direction);  // Test muting status
 // Optimize editing
        void optimize();
        int is_muted(int64_t position, int direction);  // Test muting status
@@ -139,7 +146,7 @@ public:
 // Called by playable tracks to test for playable server.
 // Descends the plugin tree without creating a virtual console.
 // Used by PlayableTracks::is_playable.
 // 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, int depth=0);
 
 // Used by PlayableTracks::is_playable
 // Returns 1 if the track is in the output boundaries.
 
 // Used by PlayableTracks::is_playable
 // Returns 1 if the track is in the output boundaries.
@@ -155,7 +162,7 @@ public:
 
        virtual int copy_settings(Track *track);
        void shift_keyframes(int64_t position, int64_t length);
 
        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 shift_effects(int64_t position, int64_t length, int edit_autos, Edits *trim_edits);
        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);
        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);
@@ -179,6 +186,8 @@ public:
        char title[BCTEXTLEN];
        int play;
        int record;
        char title[BCTEXTLEN];
        int play;
        int record;
+// mask enable bit flags
+       int masks;
 // Nudge in track units.  Positive shifts track earlier in time.  This way
 // the position variables only need to add the nudge.
        int64_t nudge;
 // Nudge in track units.  Positive shifts track earlier in time.  This way
 // the position variables only need to add the nudge.
        int64_t nudge;
@@ -193,18 +202,19 @@ public:
        virtual int dump(FILE *fp);
 
 // ===================================== editing
        virtual int dump(FILE *fp);
 
 // ===================================== editing
-       int copy(double start, double end,
+       int copy(int copy_flags, double start, double end,
                FileXML *file, const char *output_path = "");
                FileXML *file, const char *output_path = "");
-       int copy_assets(double start,
-               double end,
-               ArrayList<Asset*> *asset_list);
+       int copy_assets(double start, double end, ArrayList<Asset*> *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 &current_channel) { return 0; };
        int blade(double position);
        int clear(double start, double end,
                int edit_edits, int edit_labels, int clear_plugins,
        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 &current_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);
+               int edit_autos, Edits *trim_edits);
+       int clear(int64_t start, int64_t end,
+               int edit_edits, int edit_labels, int clear_plugins,
+               int edit_autos, Edits *trim_edits);
 // Returns the point to restart background rendering at.
 // -1 means nothing changed.
        void clear_automation(double selectionstart, double selectionend,
 // Returns the point to restart background rendering at.
 // -1 means nothing changed.
        void clear_automation(double selectionstart, double selectionend,
@@ -238,6 +248,7 @@ public:
                int clear_labels, int clear_plugins, int edit_autos,
                double &distance);
        int paste_silence(double start, double end, int edit_plugins, int edit_autos);
                int clear_labels, int clear_plugins, int edit_autos,
                double &distance);
        int paste_silence(double start, double end, int edit_plugins, int edit_autos);
+       int paste_silence(int64_t start, int64_t end, int edit_plugins, int edit_autos);
        virtual int select_translation(int cursor_x, int cursor_y) { return 0; };  // select video coordinates for frame
        virtual int update_translation(int cursor_x, int cursor_y, int shift_down) { return 0; };  // move video coordinates
        int select_auto(AutoConf *auto_conf, int cursor_x, int cursor_y);
        virtual int select_translation(int cursor_x, int cursor_y) { return 0; };  // select video coordinates for frame
        virtual int update_translation(int cursor_x, int cursor_y, int shift_down) { return 0; };  // move video coordinates
        int select_auto(AutoConf *auto_conf, int cursor_x, int cursor_y);
@@ -253,13 +264,9 @@ public:
        int popup_transition(int cursor_x, int cursor_y);
 
 // Return 1 if the left handle was selected 2 if the right handle was selected 3 if the track isn't recordable
        int popup_transition(int cursor_x, int cursor_y);
 
 // Return 1 if the left handle was selected 2 if the right handle was selected 3 if the track isn't recordable
-       int modify_edithandles(double oldposition,
-               double newposition,
-               int currentend,
-               int handle_mode,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos);
+       int modify_edithandles(double oldposition, double newposition,
+               int currentend, int handle_mode, int edit_labels,
+               int edit_plugins, int edit_autos, int group_id);
        int modify_pluginhandles(double oldposition,
                double newposition,
                int currentend,
        int modify_pluginhandles(double oldposition,
                double newposition,
                int currentend,