switch move/swap tracks, add mv trk shortcut, update msg
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / tracks.h
index 7ba9826710bfa0d02a21d43178cd1960fc67427e..cc1486d828f8dd32d852612ab4271a812d02cafb 100644 (file)
@@ -49,24 +49,21 @@ public:
        int load(FileXML *xml,
                int &track_offset,
                uint32_t load_flags);
-       void move_edits(ArrayList<Edit*> *edits,
-               Track *track,
-               double position,
-               int edit_labels,
-               int edit_plugins,
-               int edit_autos,
-               int behaviour);
-       void move_effect(Plugin *plugin,
-               Track *track,
-               int64_t position);
-       void move_effect(Plugin *plugin,
-               PluginSet *plugin_set,
-               int64_t position);
+       void move_edits(ArrayList<Edit*> *edits, Track *track, double position,
+               int edit_labels, int edit_plugins, int edit_autos, int mode);
+       void move_group(EDL *group, Track *first_track, double position, int overwrite);
+       void move_effect(Plugin *plugin, Track *track, int64_t position);
+       void move_effect(Plugin *plugin, PluginSet *plugin_set, int64_t position);
 
 // Construct a list of all the recordable edits which start on position
-       void get_affected_edits(ArrayList<Edit*> *drag_edits,
-               double position,
-               Track *start_track);
+       void clear_selected_edits();
+       int clear_hard_edges(double start, double end);
+       void get_selected_edits(ArrayList<Edit*> *drag_edits);
+       void select_edits(double start, double end);
+       int next_group_id();
+       int new_group(int id);
+       int set_group_selected(int id, int v);
+       int del_group(int id);
 
        void get_automation_extents(float *min,
                float *max,
@@ -76,15 +73,20 @@ public:
 
        void equivalent_output(Tracks *tracks, double *result);
 
-       int move_track_up(Track *track);        // move recordable tracks up
-       int move_track_down(Track *track);      // move recordable tracks down
-       int move_tracks_up();                   // move recordable tracks up
-       int move_tracks_down();                 // move recordable tracks down
+       void roll_tracks(Track *src, Track *dst, int n);
+       int roll_track_up(Track *track);
+       int roll_track_down(Track *track);
+       int roll_tracks_up();
+       int roll_tracks_down();
+       int move_track_up(Track *track);
+       int move_track_down(Track *track);
+       int move_tracks_up();
+       int move_tracks_down();
        void paste_audio_transition(PluginServer *server);
        void paste_video_transition(PluginServer *server, int first_track = 0);
 
 // Only tests effects
-       int plugin_exists(Plugin *plugin);
+       Plugin *plugin_exists(int plugin_id);
        int track_exists(Track *track);
 
        void paste_transition(PluginServer *server, Edit *dest_edit);
@@ -104,10 +106,17 @@ public:
 // Update y pixels after a zoom
        void update_y_pixels(Theme *theme);
 // Total number of tracks where the following toggles are selected
-       void select_all(int type,
-               int value);
-       void translate_projector(float offset_x, float offset_y);
-               int total_of(int type);
+       void select_all(int type, int value);
+
+       void translate_fauto_xy(int fauto, float dx, float dy, int all);
+       void translate_projector(float dx, float dy, int all=0);
+       void translate_camera(float dx, float dy, int all=0);
+       void crop_resize(float x, float y, float z);
+       void crop_shrink(float x, float y, float z);
+       double align_timecodes();
+
+       int total_of(int type);
+       Track* get_track_by_id(int id);
 // add a track
        Track* add_audio_track(int above, Track *dst_track);
        Track* add_video_track(int above, Track *dst_track);
@@ -115,9 +124,11 @@ public:
 //     Track* add_audio_track(int to_end = 1);
 //     Track* add_video_track(int to_end = 1);
 // delete any track
-       int delete_track(Track* track);
+       int delete_track(Track *track, int gang=-1);
 // detach shared effects referencing module
        int detach_shared_effects(int module);
+// detach all corresponding effects in gang
+       int detach_ganged_effects(Plugin *plugin);
 
        EDL *edl;
 
@@ -164,18 +175,10 @@ public:
        void copy_from(Tracks *tracks);
 
 // ================================== EDL editing
-       int copy(double start,
-               double end,
-               int all,
-               FileXML *file,
-               const char *output_path = "");
-
-
+       int copy(int copy_flags, double start, double end,
+               FileXML *file, const char *output_path = "");
 
-       int copy_assets(FileXML *xml,
-               double start,
-               double end,
-               int all);
+       int copy_assets(int copy_flags, FileXML *xml, double start, double end);
        int blade(double position);
        int clear(double start, double end, int clear_plugins, int edit_autos);
        void clear_automation(double selectionstart,
@@ -221,13 +224,9 @@ public:
        int popup_transition(int cursor_x, int cursor_y);
        int select_auto(int cursor_x, int cursor_y);
        int move_auto(int cursor_x, int cursor_y, int shift_down);
-       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,
@@ -251,6 +250,8 @@ public:
        void set_transition_length(double start, double end, double length);
        void set_transition_length(Transition *transition, double length);
        void paste_transitions(double start, double end, int track_type, char* title);
+       void update_idxbl_length(int id, double dt);
+       void create_keyframes(double position, int mask, int mode);
 
 // ================================== accounting
 
@@ -267,7 +268,6 @@ public:
        Track* number(int number);      // pointer to track number
        Track *get(int idx, int data_type);
 
-
 private:
 };