improve delays created by vicon drawing locks, reset_cache segv fix, gang track toolt...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edit.h
index ffdd0fe48d4848c9633917a77a7a57f899bcfd03..95dff778d00883fb3fb16d55da2c4a86fa35948f 100644 (file)
@@ -54,6 +54,7 @@ public:
        Indexable* get_source();
 // Copy from different EDL
        virtual void copy_from(Edit *edit);
+       virtual void clone_from(Edit *edit);
 // Compare with edit in same EDL
        virtual int identical(Edit &edit);
        virtual Edit& operator=(Edit& edit);
@@ -65,6 +66,8 @@ public:
        virtual void synchronize_params(Edit *edit);
 // Used by Edits::insert_edits to shift plugin keyframes
        virtual void shift_keyframes(int64_t position) {};
+       virtual int is_plugin() { return 0; }
+       virtual int is_transition() { return 0; }
 
 // Get size of frame to draw on timeline
        double picon_w();
@@ -77,45 +80,22 @@ public:
 
 // Shift in time
        virtual void shift(int64_t difference);
-       int shift_start_in(int edit_mode,
-               int64_t newposition,
-               int64_t oldposition,
-               int edit_edits,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos,
-               Edits *trim_edits);
-       int shift_start_out(int edit_mode,
-               int64_t newposition,
-               int64_t oldposition,
-               int edit_edits,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos,
-               Edits *trim_edits);
-       int shift_end_in(int edit_mode,
-               int64_t newposition,
-               int64_t oldposition,
-               int edit_edits,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos,
-               Edits *trim_edits);
-       int shift_end_out(int edit_mode,
-               int64_t newposition,
-               int64_t oldposition,
-               int edit_edits,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos,
-               Edits *trim_edits);
+
+       void trim(int64_t difference);
+       int shift_start(int edit_mode, int64_t newposition, int64_t oldposition,
+               int edit_labels, int edit_autos, int edit_plugins, Edits *trim_edits);
+       int shift_end(int edit_mode, int64_t newposition, int64_t oldposition,
+               int edit_labels, int edit_autos, int edit_plugins, Edits *trim_edits);
+       int follow_edits(int64_t start, int64_t end, int64_t cut_length,
+               int edits_moved, int rest_moved, int edit_labels, int edit_autos,
+               int edit_plugins, Edits *trim_edits);
 
        void insert_transition(char  *title);
        void detach_transition();
 // Determine if silence depending on existance of asset or plugin title
        virtual int silence();
-       void mute();
        void set_selected(int v);
+       void select_affected_edits(int v, int gang);
 
 // Media edit information
 // Units are native units for the track.
@@ -129,13 +109,13 @@ public:
        int64_t length;
 // Channel or layer of source
        int channel;
-// ID for resource pixmaps
-       int id;
+// ID for resource pixmaps, plugins
+       int id, orig_id;
 // ID for selection groups
        int group_id;
 // User defined title for timeline
        char user_title[BCTEXTLEN];
-       int is_plugin, is_selected;
+       int is_selected;
 // edge cannot be optimized
        int hard_left, hard_right;
 // title bar color
@@ -145,7 +125,6 @@ public:
        Transition *transition;
 
        Edits *edits;
-
        Track *track;
 
 // points to an object in edl->assets if set